Sha256: bde2236fd99b597999c4dc3f378f3f02babc31876ecf7891c9bf636c84bf6364
Contents?: true
Size: 1.53 KB
Versions: 10
Compression:
Stored size: 1.53 KB
Contents
class N4j::Traversal PARAMETERS = [:order, :uniqueness, :return_filter, :prune_evaluator, :relationships, :max_depth] attr_accessor *PARAMETERS attr_accessor :start, :return_type def initialize(opts ={}) opts.each_pair do |k,v| send "#{k}=", v if respond_to?("#{k}=") end end def return_type @return_type || 'node' end def outbound(type) self.relationships ||= [] self.relationships << {'direction' => 'out', 'type' => type} self end def inbound(type) self.relationships ||= [] self.relationships << {'direction' => 'in', 'type' => type} self end # { # "order" : "breadth_first", # "return_filter" : { # "body" : "position.endNode().getProperty('name').toLowerCase().contains('t')", # "language" : "javascript" # }, # "prune_evaluator" : { # "body" : "position.length() > 10", # "language" : "javascript" # }, # "uniqueness" : "node_global", # "relationships" : [ { # "direction" : "all", # "type" : "knows" # }, { # "direction" : "all", # "type" : "loves" # } ], # "max_depth" : 3 # } def traversal # {"relationships" => [{'direction' => 'in', 'type' => 'is_a' }]} self.class::PARAMETERS.inject({}) do |sum, n| key = :"@#{n}" val = instance_variable_defined?(key) && instance_variable_get(key) sum[n] = val if val sum end end def go N4j.batch([{:to => "#{start}/traverse/#{return_type}", :method => 'POST', :body => traversal}]) end end
Version data entries
10 entries across 10 versions & 1 rubygems