Sha256: 3c36f4f36ac204dbc22f2107973d8ad732911ed0684c4ff606dd7ffa3374b6cb

Contents?: true

Size: 915 Bytes

Versions: 23

Compression:

Stored size: 915 Bytes

Contents

module MyJohnDeere
  class HashUtils
    def self.transform_hash(original, options={}, &block)
      original.inject({}){|result, (key,value)|
        value = if (options[:deep] && Hash === value) 
                  transform_hash(value, options, &block)
                else 
                  if Array === value
                    value.map{|v| transform_hash(v, options, &block)}
                  else
                    value
                  end
                end
        block.call(result,key,value)
        result
      }
    end

    # Convert keys to strings
    def self.stringify_keys(in_hash)
      transform_hash(in_hash) {|hash, key, value|
        hash[key.to_s] = value
      }
    end

    # Convert keys to strings, recursively
    def self.deep_stringify_keys(in_hash)
      transform_hash(in_hash, :deep => true) {|hash, key, value|
        hash[key.to_s] = value
      }
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
myjohndeere-0.1.11 lib/myjohndeere/hash_utils.rb
myjohndeere-0.1.10 lib/myjohndeere/hash_utils.rb
myjohndeere-0.1.9 lib/myjohndeere/hash_utils.rb
myjohndeere-0.1.8 lib/myjohndeere/hash_utils.rb
myjohndeere-0.1.7 lib/myjohndeere/hash_utils.rb
myjohndeere-0.1.6 lib/myjohndeere/hash_utils.rb
myjohndeere-0.1.5 lib/myjohndeere/hash_utils.rb
myjohndeere-0.1.4 lib/myjohndeere/hash_utils.rb
myjohndeere-0.1.3 lib/myjohndeere/hash_utils.rb
myjohndeere-0.1.2 lib/myjohndeere/hash_utils.rb
myjohndeere-0.1.1 lib/myjohndeere/hash_utils.rb
myjohndeere-0.1.0 lib/myjohndeere/hash_utils.rb
myjohndeere-0.0.11 lib/myjohndeere/hash_utils.rb
myjohndeere-0.0.10 lib/myjohndeere/hash_utils.rb
myjohndeere-0.0.9 lib/myjohndeere/hash_utils.rb
myjohndeere-0.0.8 lib/myjohndeere/hash_utils.rb
myjohndeere-0.0.7 lib/myjohndeere/hash_utils.rb
myjohndeere-0.0.6 lib/myjohndeere/hash_utils.rb
myjohndeere-0.0.5 lib/myjohndeere/hash_utils.rb
myjohndeere-0.0.4 lib/myjohndeere/hash_utils.rb