class RGL::EdgePropertiesMap

Public Class Methods

new(edge_properties_map, directed) click to toggle source
   # File lib/rgl/edge_properties_map.rb
 5 def initialize(edge_properties_map, directed)
 6   @edge_properties_map = edge_properties_map
 7   @directed = directed
 8 
 9   check_properties
10 end

Public Instance Methods

edge_property(u, v) click to toggle source
   # File lib/rgl/edge_properties_map.rb
12 def edge_property(u, v)
13   if @directed
14     property = @edge_properties_map[[u, v]]
15   else
16     property = @edge_properties_map[[u, v]] || @edge_properties_map[[v, u]]
17   end
18 
19   validate_property(property, u, v)
20 
21   property
22 end

Private Instance Methods

check_properties() click to toggle source
   # File lib/rgl/edge_properties_map.rb
26 def check_properties
27   @edge_properties_map.each { |(u, v), property| validate_property(property, u, v) } if @edge_properties_map.respond_to?(:each)
28 end
report_missing_property(property, u, v) click to toggle source
   # File lib/rgl/edge_properties_map.rb
34 def report_missing_property(property, u, v)
35   raise ArgumentError.new("property of edge (#{u}, #{v}) is not defined") unless property
36 end
validate_property(property, u, v) click to toggle source
   # File lib/rgl/edge_properties_map.rb
30 def validate_property(property, u, v)
31   report_missing_property(property, u, v)
32 end