module ActiveRecord::Reflection::ClassMethods

def create_reflection(macro, name, options, active_record)

def create_reflection(macro, name, options, active_record)
  case macro
    when :has_many, :belongs_to, :has_one, :has_and_belongs_to_many
      klass = options[:through] ? ThroughReflection : AssociationReflection
      reflection = klass.new(macro, name, options, active_record)
    when :composed_of
      reflection = AggregateReflection.new(macro, name, options, active_record)
  end
  write_inheritable_hash :reflections, name => reflection
  reflection
end