Module: Fanforce::InternalUtils

Defined in:
lib/fanforce/utils.rb

Class Method Summary collapse

Class Method Details

.modify_keys(object, &modifier) ⇒ Object

:nodoc:



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/fanforce/utils.rb', line 78

def self.modify_keys(object, &modifier) #:nodoc:
  case object
    when Array
      object.map do |value|
        modify_keys(value, &modifier)
      end
    when Hash
      object.inject({}) do |result, (key, value)|
        new_key   = modifier.call(key)
        new_value = modify_keys(value, &modifier)
        result.merge! new_key => new_value
      end
    else
      object
  end
end

.to_param(obj, namespace = nil) ⇒ Object



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/fanforce/utils.rb', line 95

def self.to_param(obj, namespace=nil)
  if obj.is_a?(Array)
    collect { |e| to_param(e) }.join '/'
  elsif obj.is_a?(Hash)
    to_query_string(obj, namespace)
  elsif obj.is_a?(NilClass)
    obj
  elsif obj.is_a?(TrueClass)
    obj
  elsif obj.is_a?(FalseClass)
    obj
  elsif obj.is_a?(Object)
    obj.to_s
  end
end