Sha256: bb60141c8998e80fe1efb5b2a31511ff81ce43338f6451e4543952c3587eab18

Contents?: true

Size: 585 Bytes

Versions: 1

Compression:

Stored size: 585 Bytes

Contents

# adapted from https://raw.github.com/rails/rails/master/activesupport/lib/active_support/core_ext/hash/keys.rb
class Hash
  def deep_transform_both!(&block)
    keys.each do |key|
      value = delete(key)
      self[yield(key)] = value.is_a?(Hash) ? value.deep_transform_both!(&block) : yield(value)
    end
    self
  end

  def deep_stringify_keys_and_values!
    exceptable_data_types = [Fixnum, Float, String]
    deep_transform_both! do |element|
      if exceptable_data_types.include?(element.class)
        element
      else
        element.to_s
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
yogi_berra-0.1.4 lib/keys.rb