module Hashie::Extensions::IndifferentAccess

def self.included(base)

def self.included(base)
  base.class_eval do
    alias_method :regular_writer, :[]=
    alias_method :[]=, :indifferent_writer
    %w(default update replace fetch delete key? values_at).each do |m|
      alias_method "regular_#{m}", m
      alias_method m, "indifferent_#{m}"
    end
    %w(include? member? has_key?).each do |key_alias|
      alias_method key_alias, :indifferent_key?
    end
  end
end