module Ansr::DummyAssociations::ClassMethods
Public Instance Methods
create_reflection(macro, name, scope, options, active_record)
click to toggle source
# File lib/ansr/dummy_associations.rb, line 5 def create_reflection(macro, name, scope, options, active_record) case macro when :has_many, :belongs_to, :has_one, :has_and_belongs_to_many klass = options[:through] ? DummyThroughReflection : DummyAssociationReflection reflection = klass.new(macro, name, scope, options, active_record) when :composed_of reflection = DummyAggregateReflection.new(macro, name, scope, options, active_record) end self.reflections = self.reflections.merge(name => reflection) reflection end
reflect_on_aggregation(aggregation)
click to toggle source
Returns the AggregateReflection object for the named aggregation
(use the symbol).
Account.reflect_on_aggregation(:balance) # => the balance AggregateReflection
# 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()
click to toggle source
Returns an array of AggregateReflection objects for all the aggregations in the class.
# File lib/ansr/dummy_associations.rb, line 19 def reflect_on_all_aggregations reflections.values.grep(DummyAggregateReflection) end
reflect_on_all_associations(macro = nil)
click to toggle source
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
# 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()
click to toggle source
Returns an array of AssociationReflection objects for all associations which have :autosave
enabled.
# File lib/ansr/dummy_associations.rb, line 58 def reflect_on_all_autosave_associations reflections.values.select { |reflection| reflection.options[:autosave] } end
reflect_on_association(association)
click to toggle source
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
# File lib/ansr/dummy_associations.rb, line 52 def reflect_on_association(association) reflection = reflections[association] reflection if reflection.is_a?(DummyAssociationReflection) end