Sha256: 43fbecffc33b0cab925d4fcfe205b9db1476242e57013b6233d6b1ad224f953e
Contents?: true
Size: 969 Bytes
Versions: 2
Compression:
Stored size: 969 Bytes
Contents
module SQLTree::Node class TableReference < Base attr_accessor :table, :table_alias def initialize(table, table_alias = nil) @table, @table_alias = table, table_alias end def to_sql sql = quote_var(table) sql << " AS " << quote_var(table_alias) if table_alias return sql end def ==(other) other.table = self.table && other.table_alias == self.table_alias end def self.parse(tokens) if SQLTree::Token::Variable === tokens.next table_reference = self.new(tokens.current.literal) if tokens.peek == SQLTree::Token::AS || SQLTree::Token::Variable === tokens.peek tokens.consume(SQLTree::Token::AS) if tokens.peek == SQLTree::Token::AS table_reference.table_alias = SQLTree::Node::Variable.parse(tokens).name end return table_reference else raise SQLTree::Parser::UnexpectedToken.new(tokens.current) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sql_tree-0.0.2 | lib/sql_tree/node/table_reference.rb |
sql_tree-0.0.1 | lib/sql_tree/node/table_reference.rb |