class Cequel::Record::BelongsToAssociation

Represents a parent association declared by {Associations::ClassMethods#belongs_to belongs_to}

@see Associations::ClassMethods#parent_association @since 1.0.0

Attributes

association_class_name[R]

@return [String] name of parent class

foreign_keys[R]

@return [Array] array of foreign key symbols

name[R]

@return [Symbol] name of the association

owner_class[R]

@return [Class] child class that declared `belongs_to`

Public Class Methods

new(owner_class, name, options = {}) click to toggle source

@param owner_class [Class] child class that declared `belongs_to` @param name [Symbol] name of the association @param options [Options] options for association @option options [String] :class_name name of parent class

@api private

# File lib/cequel/record/belongs_to_association.rb, line 34
def initialize(owner_class, name, options = {})
  options.assert_valid_keys(:class_name, :foreign_key)

  @foreign_keys = Array(options.fetch(:foreign_key, [])).map { |x| x.to_sym }
  @owner_class, @name = owner_class, name.to_sym
  @association_class_name =
    options.fetch(:class_name, @name.to_s.classify)
end

Public Instance Methods

association_class() click to toggle source

@return [Class] parent class declared by `belongs_to`

# File lib/cequel/record/belongs_to_association.rb, line 46
def association_class
  @association_class ||= association_class_name.constantize
end
instance_variable_name() click to toggle source

@return [Symbol] instance variable name to use for storing the parent

instance in a record

@api private

# File lib/cequel/record/belongs_to_association.rb, line 56
def instance_variable_name
  @instance_variable_name ||= :"@#{name}"
end