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