class Neo4j::Cypher::AbstractFilter

Public Instance Methods

filter_arg(input) click to toggle source
   # File lib/neo4j-cypher/abstract_filter.rb
20 def filter_arg(input)
21   var = NodeVar.as_var(clause_list, 'x')
22 
23   if input.is_a?(Neo4j::Cypher::Property)
24     filter_input = Property.new(var)
25     filter_input.expr = 'x'
26     filter_input.eval_context
27   else
28     input.referenced!
29     var.eval_context
30   end
31 end
filter_exec(arg, &block) click to toggle source
   # File lib/neo4j-cypher/abstract_filter.rb
48 def filter_exec(arg, &block)
49   clause_list.push
50   begin
51     ret = RootClause::EvalContext.new(self).instance_exec(arg, &block)
52   rescue NoMethodError
53     if arg.kind_of?(Neo4j::Cypher::Context::Variable)
54     # Try again, maybe we are using the Ruby &: method shortcut
55       ret = FilterProp.new(arg).instance_eval(&block)
56     else
57       raise
58     end
59   end
60 
61   filter = clause_list.empty? ? ret.clause.to_cypher : clause_list.to_cypher
62   clause_list.pop
63   filter
64 end
filter_expr(input, selector_token, &block) click to toggle source
   # File lib/neo4j-cypher/abstract_filter.rb
66 def filter_expr(input, selector_token, &block)
67   expr = "(x in #{filter_value(input)}"
68   arg = filter_arg(input)
69   filter = filter_exec(arg, &block)
70   expr << "#{selector_token}#{filter})"
71   # WHERE all(x in nodes(v1) WHERE x.age > 30)
72   expr
73 end
filter_initialize(input_context, method_name, selector_token, &block) click to toggle source
   # File lib/neo4j-cypher/abstract_filter.rb
 6 def filter_initialize(input_context, method_name, selector_token, &block)
 7   input = input_context.clause
 8   fe = filter_expr(input, selector_token, &block)
 9   @cypher = "#{method_name}#{fe}"
10 end
filter_value(input) click to toggle source
   # File lib/neo4j-cypher/abstract_filter.rb
33 def filter_value(input)
34   input.is_a?(Neo4j::Cypher::Property) ? input.expr : input.return_value
35 end
return_value() click to toggle source
   # File lib/neo4j-cypher/abstract_filter.rb
12 def return_value
13   @cypher
14 end
to_cypher() click to toggle source
   # File lib/neo4j-cypher/abstract_filter.rb
16 def to_cypher
17   @cypher
18 end