Sha256: f0e7ab1c2af7e8584252db606108f7ff835a629fe1159e656603ea1e07e2aeea
Contents?: true
Size: 817 Bytes
Versions: 2
Compression:
Stored size: 817 Bytes
Contents
module SQLTree::Node class Source < Base attr_accessor :table_reference, :joins def initialize(table_reference, joins = []) @table_reference, @joins = table_reference, joins end def table table_reference.table end def table_alias table_reference.table_alias end def to_sql sql = table_reference.to_sql sql << ' ' << joins.map { |j| j.to_sql }.join(' ') if joins.any? return sql end def ==(other) other.table_reference = self.table_reference && other.joins == self.joins end def self.parse(tokens) source = self.new(SQLTree::Node::TableReference.parse(tokens)) while tokens.peek && tokens.peek.join? source.joins << SQLTree::Node::Join.parse(tokens) end return source end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sql_tree-0.1.0 | lib/sql_tree/node/source.rb |
sql_tree-0.0.3 | lib/sql_tree/node/source.rb |