class Connected::GenericConnection
A generic implementation of an Edge
Attributes
from[R]
metric[R]
state[R]
to[R]
Public Class Methods
new(from:, to:, metric: 1, state: :open)
click to toggle source
# File lib/connected/generic_connection.rb, line 10 def initialize(from:, to:, metric: 1, state: :open) validate_from(from) validate_to(to) validate_metric(metric) validate_state(state) raise 'Invalid Connection from and to same Vertex' if from == to @from = from @to = to @metric = metric @state = state end
Public Instance Methods
metric=(value)
click to toggle source
# File lib/connected/generic_connection.rb, line 24 def metric=(value) validate_metric(value) @metric = value end
state=(setting)
click to toggle source
# File lib/connected/generic_connection.rb, line 29 def state=(setting) validate_state(setting) @state = setting end
Private Instance Methods
validate_from(node)
click to toggle source
# File lib/connected/generic_connection.rb, line 36 def validate_from(node) raise 'Invalid from Node' unless node.is_a?(Vertex) end
validate_metric(num)
click to toggle source
# File lib/connected/generic_connection.rb, line 44 def validate_metric(num) raise 'Invalid metric' unless num.is_a?(Numeric) && num.positive? end
validate_state(value)
click to toggle source
# File lib/connected/generic_connection.rb, line 48 def validate_state(value) raise 'Invalid state' unless %i[open closed].include?(value) end
validate_to(node)
click to toggle source
# File lib/connected/generic_connection.rb, line 40 def validate_to(node) raise 'Invalid to Node' unless node.is_a?(Vertex) end