class Rack::App::Middlewares::SetPathParams
Constants
- E
Public Class Methods
new(app, build_env)
click to toggle source
# File lib/rack/app/middlewares/set_path_params.rb, line 3 def initialize(app, build_env) @build_env = build_env @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/rack/app/middlewares/set_path_params.rb, line 10 def call(env) populate_path_params(env) correct_last_value_from_extensions(env) @app.call(env) end
Protected Instance Methods
correct_last_value_from_extensions(env)
click to toggle source
# File lib/rack/app/middlewares/set_path_params.rb, line 24 def correct_last_value_from_extensions(env) return if @build_env.endpoint.config.serializer.extnames.empty? last_index = env[E::SPLITTED_PATH_INFO].length - 1 return if @build_env.params[last_index].nil? extless(env[E::PATH_SEGMENTS_PARAMS][@build_env.params[last_index]]) end
extless(value)
click to toggle source
# File lib/rack/app/middlewares/set_path_params.rb, line 31 def extless(value) extname = File.extname(value) return unless @build_env.endpoint.config.serializer.extnames.include?(extname) value.slice!(/#{Regexp.escape(extname)}$/) unless extname.empty? end
populate_path_params(env)
click to toggle source
# File lib/rack/app/middlewares/set_path_params.rb, line 18 def populate_path_params(env) @build_env.params.each do |index, key| env[E::PATH_SEGMENTS_PARAMS][key] = env[E::SPLITTED_PATH_INFO][index] end end