Abstract base class for AggregateReflection and AssociationReflection. Objects of AggregateReflection and AssociationReflection are returned by the Reflection::ClassMethods.
Returns the macro type.
composed_of :balance, :class_name => 'Money' returns
:composed_of has_many :clients returns
:has_many
Returns the name of the macro.
composed_of :balance, :class_name => 'Money' returns
:balance has_many :clients returns
:clients
Returns the hash of options used for the macro.
composed_of :balance, :class_name => 'Money' returns
{ :class_name => "Money" } has_many
:clients returns +{}+
# File lib/active_record/reflection.rb, line 105 def initialize(macro, name, options, active_record) @macro = macro @name = name @options = options @active_record = active_record @plural_name = active_record.pluralize_table_names ? name.to_s.pluralize : name.to_s end
Returns true if self and
other_aggregation have the same name attribute,
active_record attribute, and other_aggregation
has an options hash assigned to it.
# File lib/active_record/reflection.rb, line 132 def ==(other_aggregation) super || other_aggregation.kind_of?(self.class) && name == other_aggregation.name && other_aggregation.options && active_record == other_aggregation.active_record end
Returns the class name for the macro.
composed_of :balance, :class_name => 'Money' returns
'Money' has_many :clients returns
'Client'
# File lib/active_record/reflection.rb, line 126 def class_name @class_name ||= (options[:class_name] || derive_class_name).to_s end
Returns the class for the macro.
composed_of :balance, :class_name => 'Money' returns the
Money class has_many :clients returns the Client class
# File lib/active_record/reflection.rb, line 118 def klass @klass ||= class_name.constantize end