Sha256: 8755f41e066222380dcfebf38b96e9915658e5c1093dca05c1cf2d559a8d5c93

Contents?: true

Size: 635 Bytes

Versions: 1

Compression:

Stored size: 635 Bytes

Contents

class Hash
  def recursively_symbolize_keys!
    self.symbolize_keys!
    self.values.each do |v|
      if v.is_a? Hash
        v.recursively_symbolize_keys!
      elsif v.is_a? Array
        v.recursively_symbolize_keys!
      end
    end
    self
  end
  
  def optional_reverse_merge!(defaults,required=[],symbolize=true)
    defaults.recursively_symbolize_keys! if symbolize
    return self.reverse_merge!(defaults) if self.blank?
    defaults.each_pair do |k,v|
      if self[k]
        self[k].reverse_merge!(defaults[k])
      else
        self[k] = defaults[k] if required.include? k
      end
    end
    return self
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
social_engine-0.0.1 lib/social_engine/core_ext/hash.rb