Class: Shokkenki::Consumer::Stubber::RestfulMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/shokkenki/consumer/stubber/restful_middleware.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.delete(&block) ⇒ Object



10
11
12
# File 'lib/shokkenki/consumer/stubber/restful_middleware.rb', line 10

def self.delete &block
  handlers[:delete] = block
end

.get(&block) ⇒ Object



14
15
16
# File 'lib/shokkenki/consumer/stubber/restful_middleware.rb', line 14

def self.get &block
  handlers[:get] = block
end

.handlersObject



18
19
20
# File 'lib/shokkenki/consumer/stubber/restful_middleware.rb', line 18

def self.handlers
  @handlers ||= {}
end

.post(&block) ⇒ Object



6
7
8
# File 'lib/shokkenki/consumer/stubber/restful_middleware.rb', line 6

def self.post &block
  handlers[:post] = block
end

Instance Method Details

#allowed_methodsObject



27
28
29
# File 'lib/shokkenki/consumer/stubber/restful_middleware.rb', line 27

def allowed_methods
  self.class.handlers.keys.map {|k| k.to_s.upcase }
end

#call(env) ⇒ Object



22
23
24
25
# File 'lib/shokkenki/consumer/stubber/restful_middleware.rb', line 22

def call env
  handler = self.class.handlers[env['REQUEST_METHOD'].downcase.to_sym]
  handler ? instance_exec(env, &handler) : [405, {'Allow' => allowed_methods.join(', ')}, []]
end