module Hashie::Extensions::IndifferentAccess
def self.included(base)
def self.included(base) Hashie::Extensions::Dash::IndifferentAccess::ClassMethods.tap do |extension| base.extend(extension) if base <= Hashie::Dash && !base.singleton_class.included_modules.include?(extension) end base.class_eval do alias_method :regular_writer, :[]= unless method_defined?(:regular_writer) alias_method :[]=, :indifferent_writer alias_method :store, :indifferent_writer %w(default update replace fetch delete key? values_at).each do |m| alias_method "regular_#{m}", m unless method_defined?("regular_#{m}") alias_method m, "indifferent_#{m}" end %w(include? member? has_key?).each do |key_alias| alias_method key_alias, :indifferent_key? end class << self def [](*) super.convert! end def try_convert(*) (hash = super) && self[hash] end end end end