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