class Mementus::Edge

Attributes

from[R]
id[R]
label[R]
to[R]

Public Class Methods

new(id: nil, from:, to:, label: :edge, props: {}) click to toggle source
# File lib/mementus/edge.rb, line 5
def initialize(id: nil, from:, to:, label: :edge, props: {})
  @id = id
  @label = label
  @props = props.freeze

  @from = if from.is_a?(Integer)
    Node.new(id: from)
  else
    from
  end

  @to = if to.is_a?(Integer)
    Node.new(id: to)
  else
    to
  end
end

Public Instance Methods

==(edge) click to toggle source
# File lib/mementus/edge.rb, line 31
def ==(edge)
  from.id == edge.from.id && to.id == edge.to.id && label == edge.label
end
Also aliased as: eql?
[](prop) click to toggle source
# File lib/mementus/edge.rb, line 23
def [](prop)
  @props[prop]
end
eql?(edge)
Alias for: ==
hash() click to toggle source
# File lib/mementus/edge.rb, line 37
def hash
  [from.id, to.id].hash
end
nodes() click to toggle source
# File lib/mementus/edge.rb, line 27
def nodes
  [@from, @to]
end