Add `ProjectHoneypot::Rack` class to DRY

master
Guillaume Dott 2015-05-27 11:09:44 +02:00
parent 707b115428
commit 415f7c9d24
4 changed files with 31 additions and 30 deletions

View File

@ -1,6 +1,7 @@
require 'net/dns'
require "project_honeypot/url"
require "project_honeypot/base"
require "project_honeypot/rack"
require "project_honeypot/rack/header"
require "project_honeypot/rack/forbidden"

View File

@ -0,0 +1,10 @@
module ProjectHoneypot
class Rack
def initialize(app, options={})
@app = app
raise ArgumentError, 'Must specify an API key' unless options[:api_key]
ProjectHoneypot.api_key = options[:api_key]
end
end
end

View File

@ -1,12 +1,6 @@
module ProjectHoneypot::Rack
class Forbidden
def initialize(app, options={})
@app = app
raise ArgumentError, 'Must specify an API key' unless options[:api_key]
ProjectHoneypot.api_key = options[:api_key]
end
module ProjectHoneypot
class Rack
class Forbidden < Rack
def call(env)
request = ::Rack::Request.new(env)
url = ProjectHoneypot.lookup(request.ip)
@ -18,4 +12,5 @@ module ProjectHoneypot::Rack
end
end
end
end
end

View File

@ -1,12 +1,6 @@
module ProjectHoneypot::Rack
class Header
def initialize(app, options={})
@app = app
raise ArgumentError, 'Must specify an API key' unless options[:api_key]
ProjectHoneypot.api_key = options[:api_key]
end
module ProjectHoneypot
class Rack
class Header < Rack
def call(env)
request = ::Rack::Request.new(env)
url = ProjectHoneypot.lookup(request.ip)
@ -16,4 +10,5 @@ module ProjectHoneypot::Rack
@app.call(request.env)
end
end
end
end