Sha256: 4c9adad4ca01502226c93c02030a2cc89c6ffea438f89bb077f424e0650ddc77

Contents?: true

Size: 818 Bytes

Versions: 10

Compression:

Stored size: 818 Bytes

Contents

module Fanforce::Base::InternalUtils

  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

  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

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
fanforce-base-1.2.3 lib/fanforce/base/internal_utils.rb
fanforce-base-1.2.2 lib/fanforce/base/internal_utils.rb
fanforce-base-1.2.1 lib/fanforce/base/internal_utils.rb
fanforce-base-1.2.0 lib/fanforce/base/internal_utils.rb
fanforce-base-1.1.0 lib/fanforce/base/internal_utils.rb
fanforce-base-1.0.4 lib/fanforce/base/internal_utils.rb
fanforce-base-1.0.3 lib/fanforce/base/internal_utils.rb
fanforce-base-1.0.2 lib/fanforce/base/internal_utils.rb
fanforce-base-1.0.1 lib/fanforce/base/internal_utils.rb
fanforce-base-1.0.0 lib/fanforce/base/internal_utils.rb