module DatastaxRails::Reflection::ClassMethods
rubocop:disable Style/Documentation
Public Instance Methods
create_reflection(macro, name, options, datastax_rails)
click to toggle source
# File lib/datastax_rails/reflection.rb, line 22 def create_reflection(macro, name, options, datastax_rails) klass = options[:through] ? ThroughReflection : AssociationReflection reflection = klass.new(macro, name, options, datastax_rails) self.reflections = reflections.merge(name => reflection) reflection end
reflect_on_all_associations(macro = nil)
click to toggle source
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
# 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()
click to toggle source
Returns an array of AssociationReflection
objects for all associations which have :autosave
enabled.
# File lib/datastax_rails/reflection.rb, line 54 def reflect_on_all_autosave_associations reflections.values.select { |reflection| reflection.options[:autosave] } end
reflect_on_association(association)
click to toggle source
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
# File lib/datastax_rails/reflection.rb, line 49 def reflect_on_association(association) reflections[association].is_a?(AssociationReflection) ? reflections[association] : nil end