Class: Tangle::Edge
- Inherits:
-
Object
- Object
- Tangle::Edge
- Includes:
- Mixin::Initialize
- Defined in:
- lib/tangle/edge.rb
Overview
An edge in an undirected graph, connecting two vertices
Direct Known Subclasses
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Attributes included from Mixin::Initialize
Instance Method Summary collapse
- #[](from_vertex) ⇒ Object
- #include?(vertex) ⇒ Boolean
-
#initialize(vertex1, vertex2 = vertex1, name: nil, **kwargs) ⇒ Edge
constructor
Create a new edge between vertices.
- #loop? ⇒ Boolean
- #walk(from_vertex) ⇒ Object
Constructor Details
#initialize(vertex1, vertex2 = vertex1, name: nil, **kwargs) ⇒ Edge
Create a new edge between vertices
Edge.new(vtx1) => Edge (loop) Edge.new(vtx1, vtx2) => Edge
End users should probably use Graph#add_edge instead.
22 23 24 25 26 |
# File 'lib/tangle/edge.rb', line 22 def initialize(vertex1, vertex2 = vertex1, name: nil, **kwargs) @name = name initialize_vertices(vertex1, vertex2) initialize_mixins(**kwargs) end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
13 14 15 |
# File 'lib/tangle/edge.rb', line 13 def name @name end |
Instance Method Details
#[](from_vertex) ⇒ Object
28 29 30 |
# File 'lib/tangle/edge.rb', line 28 def [](from_vertex) @vertices[from_vertex] end |
#include?(vertex) ⇒ Boolean
36 37 38 |
# File 'lib/tangle/edge.rb', line 36 def include?(vertex) each_vertex.include?(vertex) end |
#loop? ⇒ Boolean
40 41 42 |
# File 'lib/tangle/edge.rb', line 40 def loop? @loop end |
#walk(from_vertex) ⇒ Object
32 33 34 |
# File 'lib/tangle/edge.rb', line 32 def walk(from_vertex) @vertices.fetch(from_vertex) end |