Sha256: 214fe70387e0c516831b9f6bca7dcee124c051595a23d5947a1d46d6641c7cbc

Contents?: true

Size: 581 Bytes

Versions: 8

Compression:

Stored size: 581 Bytes

Contents

module A9n
  class HashExt
    class << self
      # Hash#deep_symbolize_keys
      # based on
      # https://github.com/svenfuchs/i18n/blob/master/lib/i18n/core_ext/hash.rb
      def deep_symbolize_keys(hash)
        hash.inject({}) { |result, (key, value)|
          value = deep_symbolize_keys(value) if value.is_a?(::Hash)
          result[(key.to_sym rescue key) || key] = value
          result
        }
      end

      def merge(*items)
        return nil if items.compact.empty?
        items.compact.inject({}){|sum, item| sum.merge!(item)}
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
a9n-0.4.2 lib/a9n/ext/hash.rb
a9n-0.4.1 lib/a9n/ext/hash.rb
a9n-0.4.0 lib/a9n/ext/hash.rb
a9n-0.3.4 lib/a9n/ext/hash.rb
a9n-0.3.3 lib/a9n/ext/hash.rb
a9n-0.3.2 lib/a9n/ext/hash.rb
a9n-0.3.1 lib/a9n/ext/hash.rb
a9n-0.3.0 lib/a9n/ext/hash.rb