class Rack::Transform
Constants
- VERSION
Public Class Methods
new(app) { |self| ... }
click to toggle source
# File lib/rack/transform.rb, line 5 def initialize(app) @app = app @transformers = {} yield self if block_given? end
Public Instance Methods
call(env)
click to toggle source
# File lib/rack/transform.rb, line 11 def call(env) if transformer = request_transformer(env) env = transformer.request.call(env) status, header, body = @app.call(env) transformer.response.call(status, header, body) else @app.call(env) end end
on(type, &block)
click to toggle source
# File lib/rack/transform.rb, line 21 def on(type, &block) @transformers[type] ||= Transformer.new(&block) end
Private Instance Methods
request_transformer(env)
click to toggle source
# File lib/rack/transform.rb, line 27 def request_transformer(env) if env[Rack::REQUEST_METHOD] == Rack::GET req = Rack::Request.new(env) @transformers[req.params["type"]] end end