Class: Cyrel::Expression::Alias

Inherits:
Base
  • Object
show all
Defined in:
lib/cyrel/expression/alias.rb

Overview

Represents an aliased expression (e.g., count(n) AS count_n).

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#!=, #%, #&, #*, #+, #-, #/, #<, #<=, #==, #=~, #>, #>=, #^, #|

Constructor Details

#initialize(expression, alias_name) ⇒ Alias

Returns a new instance of Alias.

Parameters:

  • expression (Cyrel::Expression::Base)

    The expression being aliased.

  • alias_name (Symbol, String)

    The alias to assign.

Raises:

  • (ArgumentError)


11
12
13
14
15
16
# File 'lib/cyrel/expression/alias.rb', line 11

def initialize(expression, alias_name)
  raise ArgumentError, 'Expression must be a Cyrel::Expression::Base' unless expression.is_a?(Base)

  @expression = expression
  @alias_name = alias_name.to_sym
end

Instance Attribute Details

#alias_nameObject (readonly)

Returns the value of attribute alias_name.



7
8
9
# File 'lib/cyrel/expression/alias.rb', line 7

def alias_name
  @alias_name
end

#expressionObject (readonly)

Returns the value of attribute expression.



7
8
9
# File 'lib/cyrel/expression/alias.rb', line 7

def expression
  @expression
end

Instance Method Details

#render(query) ⇒ String

Renders the aliased expression.

Parameters:

  • query (Cyrel::Query)

    The query object for rendering the base expression.

Returns:

  • (String)

    The Cypher string fragment (e.g., “count(n) AS count_n”).



21
22
23
24
# File 'lib/cyrel/expression/alias.rb', line 21

def render(query)
  rendered_expr = @expression.render(query)
  "#{rendered_expr} AS #{@alias_name}"
end