class ActiveRecord::Reflection::AbstractReflection

:nodoc:
and ThroughReflection
Holds all the methods that are shared between MacroReflection, AssociationReflection

def build_association(attributes, &block)

be passed to the class's constructor.
Returns a new, unsaved instance of the associated class. +attributes+ will
def build_association(attributes, &block)
  klass.new(attributes, &block)
end

def class_name

has_many :clients returns 'Client'
composed_of :balance, class_name: 'Money' returns 'Money'

Returns the class name for the macro.
def class_name
  @class_name ||= (options[:class_name] || derive_class_name).to_s
end

def join_keys(assoc_klass)

def join_keys(assoc_klass)
  JoinKeys.new(foreign_key, active_record_primary_key)
end

def primary_key_type

def primary_key_type
  klass.type_for_attribute(klass.primary_key)
end

def quoted_table_name

def quoted_table_name
  klass.quoted_table_name
end

def source_macro

def source_macro
  ActiveSupport::Deprecation.warn(<<-MSG.squish)
    ActiveRecord::Base.source_macro is deprecated and will be removed
    without replacement.
  MSG
  macro
end

def table_name

:nodoc:
and ThroughReflection
Holds all the methods that are shared between MacroReflection, AssociationReflection
def table_name
  klass.table_name
end