class Hijacker::Middleware
Constants
- DEFAULT_BAD_URL
- DEFAULT_NOT_FOUND
- HEADER_KEY
Attributes
bad_url[R]
not_found[R]
Public Class Methods
new(app, options = {})
click to toggle source
# File lib/hijacker/middleware.rb, line 13 def initialize(app, options = {}) options = options.dup @app = app @not_found = options.delete(:not_found) || DEFAULT_NOT_FOUND @bad_url = options.delete(:bad_url) || DEFAULT_BAD_URL unless options.blank? raise "Unknown Hijacker::Middleware options #{options.keys.join(",")}" end end
Public Instance Methods
call(env)
click to toggle source
# File lib/hijacker/middleware.rb, line 24 def call(env) begin Hijacker.connect(*determine_databases(env)) rescue Hijacker::InvalidDatabase => e return not_found.call(e.database, env) rescue Hijacker::UnparseableURL => e return bad_url.call(e.message, env) end @app.call(env) end
Private Instance Methods
determine_databases(env)
click to toggle source
# File lib/hijacker/middleware.rb, line 38 def determine_databases(env) if client = env[HEADER_KEY] Hijacker::Database.find_master_and_sister_for(client) else RequestParser.from_env(env).determine_databases end end