class Mandrake::Translator::Wrapper
A wrapper class for conditional middleware which is containing the validator @!visibility private
Attributes
env[RW]
request[RW]
Public Class Methods
new(app, middleware, condition)
click to toggle source
@!visibility private
# File lib/mandrake/translator.rb, line 88 def initialize(app, middleware, condition) @app = app @middleware = middleware add_validator(condition) end
Public Instance Methods
add_validator(condition)
click to toggle source
@param [String, Proc] condition @!visibility private
# File lib/mandrake/translator.rb, line 104 def add_validator(condition) code = condition.code if code.instance_of?(Proc) && code.lambda? singleton_class.send(:define_method, :valid?, &code) else instance_eval("def valid?; #{condition} end") end end
call(env)
click to toggle source
@param [Hash] env @!visibility private
# File lib/mandrake/translator.rb, line 96 def call(env) @env = env @request = Rack::Request.new(@env) valid? ? @middleware.call(env) : @app.call(env) end