class ActiveSupport::HashWithIndifferentAccess

def select(*args, &block)

def select(*args, &block)
  return to_enum(:select) unless block_given?
  dup.tap { |hash| hash.select!(*args, &block) }
end