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