class Rack::Way::Router::RequestBuilder
Public Class Methods
new(env)
click to toggle source
# File lib/rack-way/router/request_builder.rb, line 5 def initialize(env) @env = env end
Public Instance Methods
call(route = nil)
click to toggle source
# File lib/rack-way/router/request_builder.rb, line 9 def call(route = nil) request = Rack::Request.new(@env) return request if route.nil? return request unless route.has_params? update_request_params(request, route) end
Private Instance Methods
is_a_integer_string?(string)
click to toggle source
# File lib/rack-way/router/request_builder.rb, line 38 def is_a_integer_string?(string) string =~ /\A[-+]?[0-9]*\.?[0-9]+\Z/ end
update_request_param(request, word, param)
click to toggle source
# File lib/rack-way/router/request_builder.rb, line 42 def update_request_param(request, word, param) request.update_param(word.sub(':', '').to_sym, param) end
update_request_params(request, route)
click to toggle source
# File lib/rack-way/router/request_builder.rb, line 20 def update_request_params(request, route) splitted_request_path = request.path.split('/') route .splitted_path .each .with_index do |route_word, route_word_position| if route_word.start_with?(':') param = splitted_request_path[route_word_position] param = param.to_i if is_a_integer_string?(param) update_request_param(request, route_word, param) end end request end