Sha256: 2fe50b3cefed79c5c9236ddc32b2b2d386a66b9489c0682a6651eb78e00cca47

Contents?: true

Size: 524 Bytes

Versions: 10

Compression:

Stored size: 524 Bytes

Contents

class Hash
  def recursive_symbolize_keys!
    symbolize_keys!
    # symbolize each hash in .values
    values.each { |h| h.recursive_symbolize_keys! if h.is_a?(Hash) }
    # symbolize each hash inside an array in .values
    values.select{ |v| v.is_a?(Array) }.flatten.each { |h| h.recursive_symbolize_keys! if h.is_a?(Hash) }
    self
  end

  def deep_reject_key!(key)
    keys.each { |k| delete(k) if k == key || self[k] == self[key] }

    values.each { |v| v.deep_reject_key!(key) if v.is_a? Hash }
    self
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
tenon-2.1.0 config/initializers/class_extensions/hash.rb
tenon-2.0.8 config/initializers/class_extensions/hash.rb
tenon-2.0.7 config/initializers/class_extensions/hash.rb
tenon-2.0.6 config/initializers/class_extensions/hash.rb
tenon-2.0.5 config/initializers/class_extensions/hash.rb
tenon-2.0.4 config/initializers/class_extensions/hash.rb
tenon-2.0.3 config/initializers/class_extensions/hash.rb
tenon-2.0.2 config/initializers/class_extensions/hash.rb
tenon-2.0.1 config/initializers/class_extensions/hash.rb
tenon-2.0.0 config/initializers/class_extensions/hash.rb