class Dart::Relation

Attributes

associations[R]
column_names[R]
table_name[R]

Public Class Methods

new(table, columns) click to toggle source
# File lib/dart/core/relation.rb, line 8
def initialize(table, columns)
  @table_name   = table.to_s.freeze
  @column_names = columns.map(&:to_s).map(&:freeze)
  @associations = []
end

Public Instance Methods

add_association(ass) click to toggle source
# File lib/dart/core/relation.rb, line 38
def add_association(ass)
  associations << ass
end
all_associations() click to toggle source

@return [Array<Association>] list of all associations on this relation

# File lib/dart/core/relation.rb, line 15
def all_associations
  associations
end
child_associations() click to toggle source
# File lib/dart/core/relation.rb, line 34
def child_associations
  associations.select { |a| a.is_a?(OneToManyAssociation) }
end
direct_associations() click to toggle source

@return [Array<Association>] list of all direct (many_to_one or one_to_many) associations on this relation

# File lib/dart/core/relation.rb, line 20
def direct_associations
  # associations - join_associations
  parent_associations + child_associations
end
join_associations() click to toggle source

@return [Array<Association>] list of all join (many_to_many) associations on this relation

# File lib/dart/core/relation.rb, line 26
def join_associations
  associations.select { |a| a.is_a?(ManyToManyAssociation) }
end
parent_associations() click to toggle source
# File lib/dart/core/relation.rb, line 30
def parent_associations
  associations.select { |a| a.is_a?(ManyToOneAssociation) }
end
to_s() click to toggle source
# File lib/dart/core/relation.rb, line 42
def to_s
  table_name
end