class Pakyow::Data::Sources::Relational::Associations::Through

@api private

Attributes

joining_source[RW]
joining_source_name[R]

Public Class Methods

new(association, joining_source_name:) click to toggle source
# File lib/pakyow/data/sources/relational/associations/through.rb, line 26
def initialize(association, joining_source_name:)
  @association, @joining_source_name = association, Support.inflector.pluralize(joining_source_name).to_sym

  @internal = false
end

Public Instance Methods

dependent_source_names() click to toggle source
# File lib/pakyow/data/sources/relational/associations/through.rb, line 36
def dependent_source_names
  [@association.associated_source_name, @joining_source_name]
end
internal!() click to toggle source
# File lib/pakyow/data/sources/relational/associations/through.rb, line 60
def internal!
  @internal = true
end
internal?() click to toggle source
# File lib/pakyow/data/sources/relational/associations/through.rb, line 56
def internal?
  @internal == true
end
left_foreign_key_field() click to toggle source
# File lib/pakyow/data/sources/relational/associations/through.rb, line 44
def left_foreign_key_field
  :"#{left_name}_#{@association.associated_source.primary_key_field}"
end
left_name() click to toggle source
# File lib/pakyow/data/sources/relational/associations/through.rb, line 40
def left_name
  Support.inflector.singularize(@association.name).to_sym
end
right_foreign_key_field() click to toggle source
# File lib/pakyow/data/sources/relational/associations/through.rb, line 52
def right_foreign_key_field
  :"#{right_name}_#{@association.source.primary_key_field}"
end
right_name() click to toggle source
# File lib/pakyow/data/sources/relational/associations/through.rb, line 48
def right_name
  Support.inflector.singularize(@association.associated_name).to_sym
end
type() click to toggle source
# File lib/pakyow/data/sources/relational/associations/through.rb, line 32
def type
  :through
end