Class: SQLTree::Node::SetExpression

Inherits:
Expression show all
Defined in:
lib/sql_tree/node/expression.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Expression

parse_atomic

Methods inherited from Base

[], #inspect, #quote_str, #quote_var

Constructor Details

#initialize(items = []) ⇒ SetExpression

Returns a new instance of SetExpression.



138
139
140
# File 'lib/sql_tree/node/expression.rb', line 138

def initialize(items = [])
  @items = items
end

Instance Attribute Details

#itemsObject

Returns the value of attribute items.



136
137
138
# File 'lib/sql_tree/node/expression.rb', line 136

def items
  @items
end

Class Method Details

.parse(tokens) ⇒ Object



146
147
148
149
150
151
152
153
154
155
156
# File 'lib/sql_tree/node/expression.rb', line 146

def self.parse(tokens)
  tokens.consume(SQLTree::Token::LPAREN)
  items = [SQLTree::Node::Expression.parse(tokens)]
  while tokens.peek == SQLTree::Token::COMMA
    tokens.consume(SQLTree::Token::COMMA)
    items << SQLTree::Node::Expression.parse(tokens)
  end
  tokens.consume(SQLTree::Token::RPAREN)

  self.new(items)
end

Instance Method Details

#to_sqlObject



142
143
144
# File 'lib/sql_tree/node/expression.rb', line 142

def to_sql
  "(#{items.map {|i| i.to_sql}.join(', ')})"
end