Class: Neography::Relationship

Inherits:
PropertyContainer show all
Includes:
Equal, Index, Property
Defined in:
lib/neography/relationship.rb

Instance Attribute Summary collapse

Attributes inherited from PropertyContainer

#neo_id

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Index

#add_to_index, included, #remove_from_index

Methods included from Property

#[], #[]=, #add_or_remove_ostruct_member, #attributes, #method_missing, #new_ostruct_member, #node?, #remove_ostruct_member, #reset_properties, #set_properties

Methods included from Equal

#==, #eql?

Constructor Details

#initialize(hash = nil, server = nil) ⇒ Relationship

Returns a new instance of Relationship


40
41
42
43
44
45
46
# File 'lib/neography/relationship.rb', line 40

def initialize(hash=nil, server=nil)
  super(hash)
  @start_node = hash["start"].split('/').last
  @end_node = hash["end"].split('/').last
  @rel_type = hash["type"]
  self.neo_server = server
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Neography::Property

Instance Attribute Details

#end_nodeObject

Returns the value of attribute end_node


7
8
9
# File 'lib/neography/relationship.rb', line 7

def end_node
  @end_node
end

#rel_typeObject

Returns the value of attribute rel_type


7
8
9
# File 'lib/neography/relationship.rb', line 7

def rel_type
  @rel_type
end

#start_nodeObject

Returns the value of attribute start_node


7
8
9
# File 'lib/neography/relationship.rb', line 7

def start_node
  @start_node
end

Class Method Details

.create(type, from_node, to_node, props = nil) ⇒ Object


11
12
13
14
15
16
17
# File 'lib/neography/relationship.rb', line 11

def create(type, from_node, to_node, props = nil)
  rel = Neography::Relationship.new(from_node.neo_server.create_relationship(type, from_node, to_node, props))
  rel.start_node = from_node
  rel.end_node = to_node
  rel.rel_type = type
  rel
end

.create_unique(index, key, value, type, from_node, to_node, props = nil) ⇒ Object


19
20
21
22
23
24
25
# File 'lib/neography/relationship.rb', line 19

def create_unique(index, key, value, type, from_node, to_node, props = nil)
  rel = Neography::Relationship.new(from_node.neo_server.create_unique_relationship(index, key, value, type, from_node, to_node, props))
  rel.start_node = from_node
  rel.end_node = to_node
  rel.rel_type = type
  rel
end

.load(rel, db = Neography::Rest.new) ⇒ Object

Raises:

  • (ArgumentError)

27
28
29
30
31
32
33
34
35
36
37
# File 'lib/neography/relationship.rb', line 27

def load(rel, db = Neography::Rest.new)
  raise ArgumentError.new("syntax deprecated") if rel.is_a?(Neography::Rest)

  rel = db.get_relationship(rel)
  if rel
    rel = Neography::Relationship.new(rel, db)
    rel.start_node = Neography::Node.load(rel.start_node, db)
    rel.end_node = Neography::Node.load(rel.end_node, db)
  end
  rel
end

Instance Method Details

#delObject


56
57
58
# File 'lib/neography/relationship.rb', line 56

def del
  neo_server.delete_relationship(neo_id)
end

#exist?Boolean

Returns:

  • (Boolean)

60
61
62
63
64
65
66
67
# File 'lib/neography/relationship.rb', line 60

def exist?
  begin
    start_node.neo_server.get_relationship(neo_id)
    true
  rescue Neography::RelationshipNotFoundException
    false
  end
end

#neo_serverObject


48
49
50
# File 'lib/neography/relationship.rb', line 48

def neo_server
  @neo_server ||= self.start_node.neo_server
end

#neo_server=(server) ⇒ Object


52
53
54
# File 'lib/neography/relationship.rb', line 52

def neo_server=(server)
  @neo_server = server
end

#other_node(node) ⇒ Object


69
70
71
72
73
74
75
# File 'lib/neography/relationship.rb', line 69

def other_node(node)
  if node == @start_node
    @end_node
  else
    @start_node
  end
end