class G2R::RDBMS::JoinTable

Public Class Methods

new(source_table, relationship, target_table) click to toggle source
Calls superclass method
# File lib/graph2relational/rdbms-join-table.rb, line 6
def initialize(source_table, relationship, target_table)
  # parent initialization
  super("")

  # additiional initialization
  table_name = "#{source_table}_#{relationship}_#{target_table}"
  @name = RDBMS.transform_name(table_name)

  @source_table = RDBMS.transform_name(source_table)
  @target_table = RDBMS.transform_name(target_table)
end

Public Instance Methods

columns() click to toggle source

Additionally return the source and target column ids plus all defined columns

Calls superclass method
# File lib/graph2relational/rdbms-join-table.rb, line 19
def columns
  [source_column, target_column] + super
end
source_column() click to toggle source
# File lib/graph2relational/rdbms-join-table.rb, line 23
def source_column
  Column.new(source_table + "_id").foreign_key(source_table)
end
source_table() click to toggle source

ACESSORS

# File lib/graph2relational/rdbms-join-table.rb, line 38
def source_table
  @source_table
end
target_column() click to toggle source
# File lib/graph2relational/rdbms-join-table.rb, line 27
def target_column
  if source_table != target_table
    Column.new(target_table + "_id").foreign_key(target_table)
  else
    Column.new(target_table + "_id_2").foreign_key(target_table)
  end
end
target_table() click to toggle source
# File lib/graph2relational/rdbms-join-table.rb, line 42
def target_table
  @target_table
end