class DDQL::TokenType::SubQueryAlias
Public Class Methods
new()
click to toggle source
Calls superclass method
DDQL::TokenType::new
# File lib/ddql/token_type.rb, line 469 def initialize super(name: :sub_query_alias, pattern: /AS\s+(?<sub_query_alias>#{FACTOR_PATTERN})/) trimming! end
Public Instance Methods
as_hash(data)
click to toggle source
# File lib/ddql/token_type.rb, line 474 def as_hash(data) factor, desc = data.split(':', 2) desc = factor unless desc {name => {factor: factor, desc: desc}} end
parse(parser, token, expression: nil)
click to toggle source
# File lib/ddql/token_type.rb, line 480 def parse(parser, token, expression: nil) if expression.nil? raise 'expected AS to be part of an ALIAS expression' end if expression && expression.key?(:sub_query_expression) expression[:sub_query] = parser.class.parse(expression[:sub_query_expression]) expression.delete :sub_query_expression end expression.merge(as_hash(token.data)) end
post_process(parser:, expression:)
click to toggle source
# File lib/ddql/token_type.rb, line 491 def post_process(parser:, expression:) token = parser.consume TokenType::SUB_Q_ALIAS 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 497 def supports_post_processing? true end