require "simplecov" SimpleCov.start do add_filter "/spec/" end require "bundler/setup" require "isodoc" require "rspec/matchers" require "equivalent-xml" require "rexml/document" RSpec.configure do |config| # Enable flags like --only-failures and --next-failure config.example_status_persistence_file_path = ".rspec_status" # Disable RSpec exposing methods globally on `Module` and `main` config.disable_monkey_patching! config.expect_with :rspec do |c| c.syntax = :expect end end def xmlpp(xml) s = "" f = REXML::Formatters::Pretty.new(2) f.compact = true f.write(REXML::Document.new(xml), s) s end def metadata(hash) Hash[hash.sort].delete_if do |_k, v| v.nil? || (v.respond_to?(:empty?) && v.empty?) end end def strip_guid(xml) xml.gsub(%r{ id="_[^"]+"}, ' id="_"') .gsub(%r{ target="_[^"]+"}, ' target="_"') .gsub(%r( href="#[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{13}"), ' href="#_"') .gsub(%r( id="[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{13}"), ' id="_"') .gsub(%r( id="ftn[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{13}"), ' id="ftn_"') .gsub(%r( id="fn:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{13}"), ' id="fn:_"') .gsub(%r[ src="([^/]+)/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\.], ' src="\\1/_.') end HTML_HDR = <<~HEADER.freeze