Module: Ansr::DummyAssociations::ClassMethods
- Defined in:
- lib/ansr/dummy_associations.rb
Instance Method Summary collapse
- #create_reflection(macro, name, scope, options, active_record) ⇒ Object
-
#reflect_on_aggregation(aggregation) ⇒ Object
Returns the AggregateReflection object for the named
aggregation
(use the symbol). -
#reflect_on_all_aggregations ⇒ Object
Returns an array of AggregateReflection objects for all the aggregations in the class.
-
#reflect_on_all_associations(macro = nil) ⇒ Object
Returns an array of DummyAssociationReflection objects for all the associations in the class.
-
#reflect_on_all_autosave_associations ⇒ Object
Returns an array of AssociationReflection objects for all associations which have
:autosave
enabled. -
#reflect_on_association(association) ⇒ Object
Returns the DummyAssociationReflection object for the
association
(use the symbol).
Instance Method Details
#create_reflection(macro, name, scope, options, active_record) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/ansr/dummy_associations.rb', line 5 def create_reflection(macro, name, scope, , active_record) case macro when :has_many, :belongs_to, :has_one, :has_and_belongs_to_many klass = [:through] ? DummyThroughReflection : DummyAssociationReflection reflection = klass.new(macro, name, scope, , active_record) when :composed_of reflection = DummyAggregateReflection.new(macro, name, scope, , active_record) end self.reflections = self.reflections.merge(name => reflection) reflection end |
#reflect_on_aggregation(aggregation) ⇒ Object
Returns the AggregateReflection object for the named aggregation
(use the symbol).
Account.reflect_on_aggregation(:balance) # => the balance AggregateReflection
27 28 29 30 |
# File 'lib/ansr/dummy_associations.rb', line 27 def reflect_on_aggregation(aggregation) reflection = reflections[aggregation] reflection if reflection.is_a?(DummyAggregateReflection) end |
#reflect_on_all_aggregations ⇒ Object
Returns an array of AggregateReflection objects for all the aggregations in the class.
19 20 21 |
# File 'lib/ansr/dummy_associations.rb', line 19 def reflect_on_all_aggregations reflections.values.grep(DummyAggregateReflection) end |
#reflect_on_all_associations(macro = nil) ⇒ Object
Returns an array of DummyAssociationReflection objects for all the associations in the class. If you only want to reflect on a certain association type, pass in the symbol (:has_many
, :has_one
, :belongs_to
) as the first parameter.
Example:
Account.reflect_on_all_associations # returns an array of all associations
Account.reflect_on_all_associations(:has_many) # returns an array of all has_many associations
42 43 44 45 |
# File 'lib/ansr/dummy_associations.rb', line 42 def reflect_on_all_associations(macro = nil) association_reflections = reflections.values.grep(DummyAssociationReflection) macro ? association_reflections.select { |reflection| reflection.macro == macro } : association_reflections end |
#reflect_on_all_autosave_associations ⇒ Object
Returns an array of AssociationReflection objects for all associations which have :autosave
enabled.
58 59 60 |
# File 'lib/ansr/dummy_associations.rb', line 58 def reflect_on_all_autosave_associations reflections.values.select { |reflection| reflection.[:autosave] } end |
#reflect_on_association(association) ⇒ Object
Returns the DummyAssociationReflection object for the association
(use the symbol).
Account.reflect_on_association(:owner) # returns the owner AssociationReflection
Invoice.reflect_on_association(:line_items).macro # returns :has_many
52 53 54 55 |
# File 'lib/ansr/dummy_associations.rb', line 52 def reflect_on_association(association) reflection = reflections[association] reflection if reflection.is_a?(DummyAssociationReflection) end |