class Mandrake::Translator
A class for being delegated from the Mandrake::Builder
class @!visibility private
Public Class Methods
new()
click to toggle source
Construcsts an instance of Mandrake::Translator
# File lib/mandrake/translator.rb, line 8 def initialize @middlewares = [] end
Public Instance Methods
env()
click to toggle source
The string builder for building an expression @see Mandrake::DSL::Env
# File lib/mandrake/translator.rb, line 33 def env DSL::Env.stringify end
request()
click to toggle source
The string builder for building an expression @see Mandrake::DSL::Request
# File lib/mandrake/translator.rb, line 39 def request DSL::Request.stringify end
translate()
click to toggle source
Translates middlewares to compatible data with Rack::Builder's processing @return [Array]
# File lib/mandrake/translator.rb, line 22 def translate @middlewares.map do |middleware| if middleware.conditional? then proc{|app| Wrapper.new(app, middleware.construct(app), middleware.condition) } else proc{|app| middleware.construct(app) } end end end
use(middleware, *args, **options, &block)
click to toggle source
@overload Rack::Builder#use(middleware, *args, options = {}) @param [Hash] options The options can be included :if and :unless keys @return [Array] All registered middlewares
# File lib/mandrake/translator.rb, line 15 def use(middleware, *args, **options, &block) parameters = extract_parameters_from(options) @middlewares << Any.new(middleware, (options.empty? ? args : (args << options)), parameters, block) end
Private Instance Methods
extract_parameters_from(options)
click to toggle source
Extracts :if and :unless pairs from options @!visibility private
# File lib/mandrake/translator.rb, line 45 def extract_parameters_from(options) [:if, :unless].inject({}) do |parameters, key| expression = parameters[key] = options.delete(key) if options[key] if expression.instance_of?(Proc) && !expression.lambda? parameters[key] = instance_eval(&expression) end parameters end end