Class: Neo4j::Cypher::RootClause
- Inherits:
-
Object
- Object
- Neo4j::Cypher::RootClause
- Includes:
- Clause
- Defined in:
- lib/neo4j-cypher/root.rb
Defined Under Namespace
Classes: EvalContext
Constant Summary
Constants included from Clause
Instance Attribute Summary
Attributes included from Clause
#clause_list, #clause_type, #eval_context, #expr, #insert_order
Instance Method Summary collapse
- #create_returns(last_result) ⇒ Object
- #execute(args, &cypher_dsl) ⇒ Object
-
#initialize ⇒ RootClause
constructor
A new instance of RootClause.
- #return_names ⇒ Object
- #return_value ⇒ Object
Methods included from Clause
#<=>, #alias_name, #as_alias, #as_alias?, #clause_position, #create_clause_args_for, #match_value, #match_value=, #prefix, #referenced!, #referenced?, #separator, #to_prop_string, #valid_clause?, #var_name, #var_name=
Constructor Details
#initialize ⇒ RootClause
Returns a new instance of RootClause.
6 7 8 |
# File 'lib/neo4j-cypher/root.rb', line 6 def initialize super(ClauseList.new, :root, EvalContext) end |
Instance Method Details
#create_returns(last_result) ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/neo4j-cypher/root.rb', line 23 def create_returns(last_result) if last_result.is_a?(Array) eval_context.ret(*last_result) elsif last_result.nil? eval_context.ret(clause_list.last.eval_context) unless clause_list.empty? else eval_context.ret(last_result) end end |
#execute(args, &cypher_dsl) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/neo4j-cypher/root.rb', line 10 def execute(args, &cypher_dsl) result = eval_context.instance_exec(*args, &cypher_dsl) if ![Array, Symbol].include?(result.class) return if clause_list.include?(:return) return if clause_list.include?(:with) return if clause_list.include?(:delete) return if clause_list.include?(:set) return if clause_list.include?(:remove) end create_returns(result) end |
#return_names ⇒ Object
37 38 39 40 |
# File 'lib/neo4j-cypher/root.rb', line 37 def return_names ret = clause_list.return_clause ret ? ret.return_items.map { |ri| (ri.alias_name || ri.return_value).to_sym } : [] end |
#return_value ⇒ Object
33 34 35 |
# File 'lib/neo4j-cypher/root.rb', line 33 def return_value clause_list.to_cypher end |