class FriendlyRoutes::Composer
Compoer will map passed params to friendly_route params
Public Class Methods
new(route, params = {})
click to toggle source
# File lib/friendly_routes/services/composer.rb, line 6 def initialize(route, params = {}) @route = route @params = params.dup end
Public Instance Methods
call()
click to toggle source
# File lib/friendly_routes/services/composer.rb, line 11 def call return unless @route @route.dynamic_params.each do |param| compose(param) end @params end
can_be_composed?()
click to toggle source
# File lib/friendly_routes/services/composer.rb, line 19 def can_be_composed? return unless @route @route.required_params.all? do |param| param.allowed? @params[param.name] end end
Private Instance Methods
compose(param)
click to toggle source
# File lib/friendly_routes/services/composer.rb, line 28 def compose(param) value = @params[param.name] return if value.nil? || param.refused?(value) prefixed_name = FriendlyRoutes::PrefixedParam.new(param.name, @route.prefix).call @params[prefixed_name] = param.compose(value) @params.delete(param.name) unless param.name == prefixed_name end