Sha256: 7ab4e1c77ea0a0740ac00e5fa9da02894b837bf3c6299efc72d96a51667a2924
Contents?: true
Size: 1.56 KB
Versions: 2
Compression:
Stored size: 1.56 KB
Contents
# frozen_string_literal: true module Stepmod module Utils module Converters class ExpressG < Stepmod::Utils::Converters::Base def convert(node, state = {}) node.children.map do |child| next unless child.name == "imgfile" parse_to_svg_reference(child["file"], state) end.join("\n") end private def parse_to_svg_reference(file, state) return "" unless File.file?(file) image_document = Nokogiri::XML(File.read(file)) svg_filename = File.basename(image_document.xpath("//img").first["src"], ".*") <<~SVGMAP *) (*"#{state.fetch(:schema_name)}.__expressg" [[#{svg_filename}]] [.svgmap] ==== image::#{svg_filename}.svg[] #{image_document.xpath("//img.area").map.with_index(1) { |n, i| schema_reference(n["href"], i) }.join("\n")} ==== SVGMAP end def schema_reference(xml_path, index) if xml_path.include?("#") _, express_path_part = xml_path.split("#") return "* <<express:#{express_path_part.strip}>>; #{index}" end schema_name = File.basename(xml_path, ".*") if schema_name.include?("expg") "* <<#{schema_name.strip}>>; #{index}" else "* <<express:#{schema_name.strip}>>; #{index}" end end end ReverseAdoc::Converters.register "express-g", ExpressG.new end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
stepmod-utils-0.6.6 | lib/stepmod/utils/converters/express_g.rb |
stepmod-utils-0.6.5 | lib/stepmod/utils/converters/express_g.rb |