class RGL::EdgePropertiesMap

Public Class Methods

new(edge_properties_map, directed) click to toggle source
# File lib/rgl/edge_properties_map.rb, line 5
def initialize(edge_properties_map, directed)
  @edge_properties_map = edge_properties_map
  @directed = directed

  check_properties
end

Public Instance Methods

edge_property(u, v) click to toggle source
# File lib/rgl/edge_properties_map.rb, line 12
def edge_property(u, v)
  if @directed
    property = @edge_properties_map[[u, v]]
  else
    property = @edge_properties_map[[u, v]] || @edge_properties_map[[v, u]]
  end

  validate_property(property, u, v)

  property
end

Private Instance Methods

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