Class: Neo4j::Core::Traversal::RelExpander

Inherits:
Object
  • Object
show all
Includes:
Java::OrgNeo4jGraphdb::PathExpander
Defined in:
lib/neo4j-core/traversal/rel_expander.rb

Overview

Implements the Neo4j RelationshipExpander Java interface, only used internally.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ RelExpander

Returns a new instance of RelExpander.



11
12
13
14
# File 'lib/neo4j-core/traversal/rel_expander.rb', line 11

def initialize(&block)
  @block = block
  @reversed = false
end

Instance Attribute Details

#reverseObject

Returns the value of attribute reverse.



9
10
11
# File 'lib/neo4j-core/traversal/rel_expander.rb', line 9

def reverse
  @reverse
end

#reversedObject

Returns the value of attribute reversed.



9
10
11
# File 'lib/neo4j-core/traversal/rel_expander.rb', line 9

def reversed
  @reversed
end

Class Method Details

.create_pair(&block) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/neo4j-core/traversal/rel_expander.rb', line 16

def self.create_pair(&block)
  normal = RelExpander.new(&block)
  reversed = RelExpander.new(&block)
  normal.reverse = reversed
  reversed.reversed = normal
  reversed.reverse!
  normal
end

Instance Method Details

#expand(node, _) ⇒ Object



25
26
27
# File 'lib/neo4j-core/traversal/rel_expander.rb', line 25

def expand(node, _)
  @block.arity == 1 ? @block.call(node) : @block.call(node, @reversed)
end

#reverse!Object



29
30
31
# File 'lib/neo4j-core/traversal/rel_expander.rb', line 29

def reverse!
  @reversed = true
end