class Rack::App::Middlewares::Params::Parser
Public Class Methods
new(app, descriptor)
click to toggle source
# File lib/rack/app/middlewares/params/parser.rb, line 3 def initialize(app, descriptor) @app = app @descriptor = descriptor @merged_params_descriptor = descriptor.values.reduce(:merge) end
Public Instance Methods
call(env)
click to toggle source
# File lib/rack/app/middlewares/params/parser.rb, line 9 def call(env) set_params(env) @app.call(env) end
Protected Instance Methods
parse(type, str)
click to toggle source
# File lib/rack/app/middlewares/params/parser.rb, line 36 def parse(type, str) Rack::App::Utils::Parser.parse(type, str) end
parse_params(validated_params, params)
click to toggle source
# File lib/rack/app/middlewares/params/parser.rb, line 23 def parse_params(validated_params, params) @merged_params_descriptor.each do |key, properties| next if params[key].nil? if properties[:of] validated_params[key]= [*params[key]].map{ |str| parse(properties[:of], str) } else validated_params[key]= parse(properties[:class], params[key]) end end end
set_params(env)
click to toggle source
# File lib/rack/app/middlewares/params/parser.rb, line 17 def set_params(env) params = Rack::App::Params.new(env).merged_params validated_params = (env[::Rack::App::Constants::ENV::VALIDATED_PARAMS] ||= {}) parse_params(validated_params, params) end