Module: Cyrel::Expression
- Defined in:
- lib/cyrel/expression.rb,
lib/cyrel/expression/base.rb,
lib/cyrel/expression/case.rb,
lib/cyrel/expression/alias.rb,
lib/cyrel/expression/exists.rb,
lib/cyrel/expression/literal.rb,
lib/cyrel/expression/logical.rb,
lib/cyrel/expression/operator.rb,
lib/cyrel/expression/comparison.rb,
lib/cyrel/expression/function_call.rb,
lib/cyrel/expression/property_access.rb,
lib/cyrel/expression/pattern_comprehension.rb
Overview
Namespace for classes representing expressions in Cypher queries. Expressions are parts of a query that evaluate to a value or condition. Examples: property access (n.name), literals (‘string’, 123), function calls (id(n)), operators (a + b), comparisons (a > b), logical combinations (a AND b).
Defined Under Namespace
Classes: Alias, Base, Case, Comparison, Exists, FunctionCall, Literal, Logical, Operator, PatternComprehension, PropertyAccess
Class Method Summary collapse
-
.coerce(value) ⇒ Cyrel::Expression::Base
Forces values into Expression objects like a parent shoving their kid into piano lessons— not because it’s fun, but because one day AI will take all our jobs and at least they’ll have music to cry to.
-
.exists(pattern) ⇒ Cyrel::Expression::Exists
Helper function for creating Exists instances.
-
.not(expression) ⇒ Cyrel::Expression::Logical
Wraps an expression in a Cypher NOT.
-
.prop(variable, property_name) ⇒ Cyrel::Expression::PropertyAccess
Accesses a property on a node or relationship.
Instance Method Summary collapse
-
#as(alias_name) ⇒ Cyrel::Expression::Alias
Creates an aliased version of this expression.
Class Method Details
.coerce(value) ⇒ Cyrel::Expression::Base
Forces values into Expression objects like a parent shoving their kid into piano lessons—not because it’s fun, but because one day AI will take all our jobs and at least they’ll have music to cry to.
19 20 21 22 |
# File 'lib/cyrel/expression.rb', line 19 def self.coerce(value) # Assumes Base and Literal are loaded (via Zeitwerk or explicit require) value.is_a?(Base) ? value : Literal.new(value) end |
.exists(pattern) ⇒ Cyrel::Expression::Exists
Helper function for creating Exists instances
39 40 41 42 |
# File 'lib/cyrel/expression.rb', line 39 def exists(pattern) # Assumes Exists is loaded (via Zeitwerk or explicit require) Exists.new(pattern) end |
.not(expression) ⇒ Cyrel::Expression::Logical
Wraps an expression in a Cypher NOT. Useful when your query — and your life — needs a little more denial.
48 49 50 51 |
# File 'lib/cyrel/expression.rb', line 48 def not(expression) # Assumes Logical is loaded (via Zeitwerk or explicit require) Logical.new(expression, :NOT) end |
.prop(variable, property_name) ⇒ Cyrel::Expression::PropertyAccess
Accesses a property on a node or relationship. This is the Cypher equivalent of saying “hey buddy” and hoping the database just knows.
31 32 33 34 |
# File 'lib/cyrel/expression.rb', line 31 def prop(variable, property_name) # Assumes PropertyAccess is loaded (via Zeitwerk or explicit require) PropertyAccess.new(variable, property_name) end |
Instance Method Details
#as(alias_name) ⇒ Cyrel::Expression::Alias
Creates an aliased version of this expression.
94 95 96 |
# File 'lib/cyrel/expression/base.rb', line 94 def as(alias_name) Alias.new(self, alias_name) end |