class Babik::QuerySet::Join::AbstractJoin

A table join

Attributes

origin_table[R]
sql[R]
target_table[R]

Public Class Methods

new(target_table, origin_table) click to toggle source

Construct a Join @param target_table [Babik::QuerySet::Join::TargetTable] target table of the join. @param origin_table [Babik::QuerySet::Join::OriginTable] origin table of the join.

# File lib/babik/queryset/lib/join/join.rb, line 32
def initialize(target_table, origin_table)
  @target_table = target_table
  @origin_table = origin_table
  _init_sql
end

Public Instance Methods

_init_sql() click to toggle source

Initialize SQL of the JOIN

# File lib/babik/queryset/lib/join/join.rb, line 39
def _init_sql
  # Create the SQL code of the join
  @sql = %(
  #{self.class::JOIN_TYPE} JOIN #{@target_table.name} #{@target_table.table_alias}
      ON #{@target_table.table_alias}.#{@target_table.key} = #{@origin_table.table_alias}.#{@origin_table.key}
  ).delete("\n").gsub(/\s{2,}/, ' ').strip
end
target_alias() click to toggle source

Return the target table alias. @return [String] Target table alias.

# File lib/babik/queryset/lib/join/join.rb, line 49
def target_alias
  @target_table.table_alias
end