Class: Rack::Disabler

Inherits:
Object
  • Object
show all
Defined in:
lib/disabler_middleware.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app, store = nil) {|_self| ... } ⇒ Disabler

Returns a new instance of Disabler.

Yields:

  • (_self)

Yield Parameters:



6
7
8
9
10
11
12
# 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

Instance Attribute Details

#responsesObject

Returns the value of attribute responses.



14
15
16
# File 'lib/disabler_middleware.rb', line 14

def responses
  @responses
end

#storeObject

Returns the value of attribute store.



14
15
16
# File 'lib/disabler_middleware.rb', line 14

def store
  @store
end

Instance Method Details

#add_response(key, val) ⇒ Object



20
21
22
# File 'lib/disabler_middleware.rb', line 20

def add_response(key,val)
  @responses[key.to_s] = val
end

#add_responses(hsh) ⇒ Object



24
25
26
# File 'lib/disabler_middleware.rb', line 24

def add_responses(hsh)
  @responses.merge!(hsh)
end

#call(env) ⇒ Object



40
41
42
# File 'lib/disabler_middleware.rb', line 40

def call(env)
  response(store.get(extract(env))) || @app.call(env)
end

#extract(env) ⇒ Object



36
37
38
# File 'lib/disabler_middleware.rb', line 36

def extract(env)
  (@extractor || lambda {|env| Rack::Request.new(env).path}).call(env)
end

#extractor(&block) ⇒ Object



32
33
34
# File 'lib/disabler_middleware.rb', line 32

def extractor(&block)
  @extractor = block
end

#response(key) ⇒ Object



28
29
30
# File 'lib/disabler_middleware.rb', line 28

def response(key)
  @responses[key]
end