Abstract base class for AggregateReflection and AssociationReflection. Objects of AggregateReflection and AssociationReflection are returned by the Reflection::ClassMethods.
| [R] | active_record | |
| [R] | name |
Returns the name of the macro. composed_of :balance, :class_name => 'Money' returns :balance has_many :clients returns :clients |
| [R] | macro |
Returns the macro type. composed_of :balance, :class_name => 'Money' returns :composed_of has_many :clients returns :has_many |
| [R] | options |
Returns the hash of options used for the macro. composed_of :balance, :class_name => 'Money' returns { :class_name => "Money" } has_many :clients returns +{}+ |
[ show source ]
# File activerecord/lib/active_record/reflection.rb, line 86
86: def initialize(macro, name, options, active_record)
87: @macro, @name, @options, @active_record = macro, name, options, active_record
88: 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.
[ show source ]
# File activerecord/lib/active_record/reflection.rb, line 126
126: def ==(other_aggregation)
127: other_aggregation.kind_of?(self.class) && name == other_aggregation.name && other_aggregation.options && active_record == other_aggregation.active_record
128: end
Returns the class name for the macro.
composed_of :balance, :class_name => 'Money' returns 'Money' has_many :clients returns 'Client'
[ show source ]
# File activerecord/lib/active_record/reflection.rb, line 120
120: def class_name
121: @class_name ||= options[:class_name] || derive_class_name
122: end
Returns the class for the macro.
composed_of :balance, :class_name => 'Money' returns the Money class has_many :clients returns the Client class
[ show source ]
# File activerecord/lib/active_record/reflection.rb, line 112
112: def klass
113: @klass ||= class_name.constantize
114: end
[ show source ]
# File activerecord/lib/active_record/reflection.rb, line 135
135: def derive_class_name
136: name.to_s.camelize
137: end