class DDQL::TokenType::SubQueryGrouping

Public Class Methods

new() click to toggle source
Calls superclass method DDQL::TokenType::new
# File lib/ddql/token_type.rb, line 546
def initialize
  super(name: :sub_query_grouping, pattern: /GROUP BY\s+(?<sub_query_grouping>#{FACTOR_PATTERN})/)
  trimming!
end

Public Instance Methods

as_hash(data) click to toggle source
# File lib/ddql/token_type.rb, line 551
def as_hash(data)
  {name => {factor: data}}
end
parse(parser, token, expression: nil) click to toggle source
# File lib/ddql/token_type.rb, line 555
def parse(parser, token, expression: nil)
  if expression.nil?
    raise "expected GROUP BY to be part of an expression"
  end
  expression.merge(as_hash(token.data))
end
post_process(parser:, expression:) click to toggle source
# File lib/ddql/token_type.rb, line 562
def post_process(parser:, expression:)
  token = parser.consume TokenType::SUB_Q_GROUP
  new_expression = expression.merge!(token.parse(parser, expression: expression))
  [token, new_expression]
end
supports_post_processing?() click to toggle source
# File lib/ddql/token_type.rb, line 568
def supports_post_processing?
  true
end