Module: DatastaxRails::Reflection::ClassMethods
- Defined in:
- lib/datastax_rails/reflection.rb
Overview
rubocop:disable Style/Documentation
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
22 23 24 25 26 27 |
# File 'lib/datastax_rails/reflection.rb', line 22 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
39 40 41 42 |
# File 'lib/datastax_rails/reflection.rb', line 39 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.
54 55 56 |
# File 'lib/datastax_rails/reflection.rb', line 54 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
49 50 51 |
# File 'lib/datastax_rails/reflection.rb', line 49 def reflect_on_association(association) reflections[association].is_a?(AssociationReflection) ? reflections[association] : nil end |