Sha256: fff77c0cf4d438ca315b37d9d719ed2e1060467275f550ac7aac6a6e1fbbdaa2

Contents?: true

Size: 571 Bytes

Versions: 9

Compression:

Stored size: 571 Bytes

Contents

module Render
  module Extensions
    class SymbolizableHash < Hash
      def initialize
        super()
      end

      def symbolize_keys!
        keys.each do |key|
          self[(key.to_sym rescue key) || key] = delete(key)
        end
        self
      end

      def symbolize_keys
        dup.symbolize_keys!
      end

      def recursively_symbolize_keys!
        symbolize_keys!
        values.each do |value|
          value.recursively_symbolize_keys! if value.respond_to?(:recursively_symbolize_keys!)
        end
        self
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
render-0.1.3 lib/render/extensions/symbolizable_hash.rb
render-0.1.2 lib/render/extensions/symbolizable_hash.rb
render-0.1.1 lib/render/extensions/symbolizable_hash.rb
render-0.1.0 lib/render/extensions/symbolizable_hash.rb
render-0.0.9 lib/render/extensions/symbolizable_hash.rb
render-0.0.8 lib/render/extensions/symbolizable_hash.rb
render-0.0.7 lib/render/extensions/symbolizable_hash.rb
render-0.0.6 lib/render/extensions/symbolizable_hash.rb
render-0.0.5 lib/render/extensions/symbolizable_hash.rb