class RenameParams::Params

Attributes

params[R]

Public Class Methods

new(params = {}, controller = nil) click to toggle source
# File lib/rename_params/params.rb, line 7
def initialize(params = {}, controller = nil)
  @params = params
  @controller = controller
end

Public Instance Methods

convert(key, converter, namespace = []) click to toggle source
# File lib/rename_params/params.rb, line 12
def convert(key, converter, namespace = [])
  converter = converter_class(converter)

  if converter && has_key?(key, namespace)
    new_value = converter.convert(get(key, namespace))
    set(key, new_value, namespace)
  end
end
move(key, target = [], namespace = []) click to toggle source
# File lib/rename_params/params.rb, line 25
def move(key, target = [], namespace = [])
  set(key, delete(key, namespace), target) if has_key?(key, namespace)
end
rename(key, new_key, namespace = []) click to toggle source
# File lib/rename_params/params.rb, line 21
def rename(key, new_key, namespace = [])
  set(new_key, delete(key, namespace), namespace) if has_key?(key, namespace)
end

Private Instance Methods

converter_class(converter) click to toggle source
# File lib/rename_params/params.rb, line 63
def converter_class(converter)
  if converter.is_a?(Hash)
    RenameParams::Converters::HashConverter.new(converter)
  elsif converter.is_a?(Proc)
    RenameParams::Converters::ProcConverter.new(converter)
  elsif converter.is_a?(Symbol)
    RenameParams::Converters::MethodConverter.new(converter, @controller)
  end
end
create_namespace(namespace) click to toggle source
# File lib/rename_params/params.rb, line 55
def create_namespace(namespace)
  params = @params
  namespace.each do |ns|
    params[ns] ||= {}
    params = params[ns]
  end
end
delete(key, namespace = []) click to toggle source
# File lib/rename_params/params.rb, line 45
def delete(key, namespace = [])
  namespaced(namespace).delete(key)
end
get(key, namespace = []) click to toggle source
# File lib/rename_params/params.rb, line 36
def get(key, namespace = [])
  namespaced(namespace)[key]
end
has_key?(key, namespace = []) click to toggle source
# File lib/rename_params/params.rb, line 40
def has_key?(key, namespace = [])
  namespaced = namespaced(namespace)
  namespaced.present? && namespaced.has_key?(key)
end
namespaced(namespace = []) click to toggle source
# File lib/rename_params/params.rb, line 49
def namespaced(namespace = [])
  params = @params
  namespace.each { |ns| params = params.present? ? params[ns] : nil }
  params
end
set(key, value, namespace = []) click to toggle source
# File lib/rename_params/params.rb, line 31
def set(key, value, namespace = [])
  create_namespace(namespace)
  namespaced(namespace)[key] = value
end