class Rack::Disabler

Attributes

responses[RW]
store[RW]

Public Class Methods

new(app,store = nil) { |self| ... } click to toggle source
# File lib/disabler_middleware.rb, line 6
def initialize(app,store = nil)
  @responses,@app,@store = {
    'freeloader' =>  [402, {}, ["Payment Required"]],
    'douchebag'  =>  [403, {}, ["Forbidden"]]
  },app,store
  yield self if block_given?
end

Public Instance Methods

add_response(key,val) click to toggle source
# File lib/disabler_middleware.rb, line 20
def add_response(key,val)
  @responses[key.to_s] = val
end
add_responses(hsh) click to toggle source
# File lib/disabler_middleware.rb, line 24
def add_responses(hsh)
  @responses.merge!(hsh)
end
call(env) click to toggle source
# File lib/disabler_middleware.rb, line 40
def call(env)
  response(store.get(extract(env))) || @app.call(env)
end
extract(env) click to toggle source
# File lib/disabler_middleware.rb, line 36
def extract(env)
  (@extractor || lambda {|env| Rack::Request.new(env).path}).call(env)
end
extractor(&block) click to toggle source
# File lib/disabler_middleware.rb, line 32
def extractor(&block)
  @extractor = block
end
response(key) click to toggle source
# File lib/disabler_middleware.rb, line 28
def response(key)
  @responses[key]
end