module Hashie::Extensions::Dash::IndifferentAccess

def self.included(base)

def self.included(base)
  base.extend ClassMethods
  base.send :include, Hashie::Extensions::IndifferentAccess
end

def self.maybe_extend(base)

def self.maybe_extend(base)
  return unless requires_class_methods?(base)
  base.extend(ClassMethods)
end

def self.requires_class_methods?(klass)

def self.requires_class_methods?(klass)
  klass <= Hashie::Dash &&
    !klass.singleton_class.included_modules.include?(ClassMethods)
end