Sha256: 5c01ca3f0331973a08a9c51bac1e6a12dfb1eb68aeb001b9b029e53488528268
Contents?: true
Size: 799 Bytes
Versions: 11
Compression:
Stored size: 799 Bytes
Contents
# frozen_string_literal: true module Buckaruby module Support # The case insensitive Hash is a Hash with case insensitive keys that # can also be accessed by using a Symbol. class CaseInsensitiveHash < Hash def initialize(constructor = {}) if constructor.is_a?(Hash) super() update(constructor) else super(constructor) end end def [](key) super(convert_key(key)) end def []=(key, value) super(convert_key(key), value) end protected def update(hash) hash.each_pair { |key, value| self[convert_key(key)] = value } end def convert_key(key) string = key.is_a?(Symbol) ? key.to_s : key string.downcase end end end end
Version data entries
11 entries across 11 versions & 1 rubygems