class FriendlyRoutes::PrefixedParams

Public Class Methods

new(params, prefix) click to toggle source
# File lib/friendly_routes/services/prefixed_params.rb, line 5
def initialize(params, prefix)
  @params = params
  @prefix = prefix
end

Public Instance Methods

call() click to toggle source
# File lib/friendly_routes/services/prefixed_params.rb, line 14
def call
  mapped(false)
end
to_s() click to toggle source
# File lib/friendly_routes/services/prefixed_params.rb, line 10
def to_s
  mapped(true).join('/')
end

Private Instance Methods

mapped(keys = true) click to toggle source
# File lib/friendly_routes/services/prefixed_params.rb, line 20
def mapped(keys = true)
  @params.map do |param|
    if param.is_a?(FriendlyRoutes::Params::Base)
      param_name(param, keys)
    else
      param
    end
  end
end
param_name(param, key = true) click to toggle source
# File lib/friendly_routes/services/prefixed_params.rb, line 30
def param_name(param, key = true)
  name = PrefixedParam.new(param.name, @prefix).call
  if key
    param.optional? ? "(:#{name})" : ":#{name}"
  else
    name
  end
end