Module: DatastaxRails::Reflection::ClassMethods
- Defined in:
- lib/datastax_rails/reflection.rb
Instance Method Summary collapse
- #create_reflection(macro, name, options, datastax_rails) ⇒ Object
-
#reflect_on_all_associations(macro = nil) ⇒ Object
Returns an array of AssociationReflection 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 AssociationReflection object for the
association
(use the symbol).
Instance Method Details
#create_reflection(macro, name, options, datastax_rails) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/datastax_rails/reflection.rb', line 21 def create_reflection(macro, name, , datastax_rails) klass = [:through] ? ThroughReflection : AssociationReflection reflection = klass.new(macro, name, , datastax_rails) self.reflections = reflections.merge(name => reflection) reflection end |
#reflect_on_all_associations(macro = nil) ⇒ Object
Returns an array of AssociationReflection 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
38 39 40 41 |
# File 'lib/datastax_rails/reflection.rb', line 38 def reflect_on_all_associations(macro = nil) association_reflections = reflections.values.grep(AssociationReflection) 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.
53 54 55 |
# File 'lib/datastax_rails/reflection.rb', line 53 def reflect_on_all_autosave_associations reflections.values.select { |reflection| reflection.[:autosave] } end |
#reflect_on_association(association) ⇒ Object
Returns the AssociationReflection 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
48 49 50 |
# File 'lib/datastax_rails/reflection.rb', line 48 def reflect_on_association(association) reflections[association].is_a?(AssociationReflection) ? reflections[association] : nil end |