Sha256: 6c70816d3b0a063316bf4371339fc5c23f967df6c9ffa459b029b627fe138364
Contents?: true
Size: 1.19 KB
Versions: 1
Compression:
Stored size: 1.19 KB
Contents
require 'nokogiri' module Tests class NamesAccessor def initialize(graph) @graph = graph end def containers names @graph.container_nodes end def things names @graph.thing_nodes end def edges names @graph.edge_nodes end private attr_reader :graph def names(nodes) nodes.map { |g| g.css('text').text } end end class SvgGraph def self.parse_file(svg_filename) SvgGraph.new File.read(svg_filename) end def initialize(svg) @doc = Nokogiri::XML(svg) {|config| config.noblanks } end def title title_prefix = '<!-- Title: ' title_end = ' Pages: ' title_node_text = comments.find { |c| c.to_s.start_with? title_prefix }.to_s title_node_text.gsub(title_prefix, '').split(title_end).first end def container_nodes @doc.css 'g.cluster' end def thing_nodes @doc.css 'g.node' end def edge_nodes @doc.css 'g.edge' end def names_of NamesAccessor.new self end def to_s @doc.to_xml indent: 2 end private def comments @doc.children.select(&:comment?) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dogviz-0.0.22 | tests/svg_graph.rb |