lib/rgl/graphxml.rb in rgl-0.4.0 vs lib/rgl/graphxml.rb in rgl-0.5.0

- old
+ new

@@ -1,9 +1,9 @@ # graphxml.rb # # This file contains minimal support for creating RGL graphs from the GraphML -# format (see http://www.graphdrawing.org/graphml). The main purpose is to +# format (see http://www.graphdrawing.org/graphml). The main purpose is to # have a rich set of example graphs to have some more tests. # # See the examples directory, which contains a subdirectory _north_ with the # Graph catalog GraphViz (see # http://www.research.att.com/sw/tools/graphviz/refs.html). @@ -14,38 +14,48 @@ require 'rgl/mutable' require 'rexml/document' require 'rexml/streamlistener' module RGL + module MutableGraph + # Used to parse a subset of GraphML into an RGL graph implementation. + # class MutableGraphParser + include REXML::StreamListener # First resets +graph+ to be empty and stores a reference for use with # #tag_start. - def initialize (graph) + # + def initialize(graph) @graph = graph @graph.remove_vertices(@graph.vertices) end # Processes incoming edge and node elements from GraphML in order to # populate the graph given to #new. - def tag_start (name, attrs) + # + def tag_start(name, attrs) case name - when 'edge' - @graph.add_edge(attrs['source'], attrs['target']) - when 'node' - @graph.add_vertex(attrs['id']) + when 'edge' + @graph.add_edge(attrs['source'], attrs['target']) + when 'node' + @graph.add_vertex(attrs['id']) end end - end # class MutableGraphParser + end # class MutableGraphParser + # Initializes an RGL graph from a subset of the GraphML format given in # +source+ (see http://www.graphdrawing.org/graphml). + # def from_graphxml(source) listener = MutableGraphParser.new(self) REXML::Document.parse_stream(source, listener) self end - end # module MutableGraph -end # module RGL + + end # module MutableGraph + +end # module RGL