class FriendlyRoutes::Parser
Public Class Methods
new(params, keep_all)
click to toggle source
# File lib/friendly_routes/services/parser.rb, line 5 def initialize(params, keep_all) @params = params @keep_all = keep_all @route = @params[:friendly_route] end
Public Instance Methods
call()
click to toggle source
# File lib/friendly_routes/services/parser.rb, line 11 def call return unless @route @route.dynamic_params.each do |param| parse(param) end end
Private Instance Methods
parse(param)
click to toggle source
# File lib/friendly_routes/services/parser.rb, line 20 def parse(param) prefixed_name = FriendlyRoutes::PrefixedParam.new(param.name, @route.prefix).call value = @params[prefixed_name] return unless value @params[param.name] = param.parse(value) unless @keep_all @params.delete(prefixed_name) unless param.name == prefixed_name @params.delete(:friendly_route) end end