class SvgOptimizer::Plugins::RemoveUnusedNamespace

Public Instance Methods

process() click to toggle source
# File lib/svg_optimizer/plugins/remove_unused_namespace.rb, line 6
def process
  xml
    .root
    .namespace_definitions
    .select(&:prefix)
    .each(&method(:remove_unused_ns))
end
remove_unused_ns(ns) click to toggle source
# File lib/svg_optimizer/plugins/remove_unused_namespace.rb, line 14
def remove_unused_ns(ns)
  return if xml.xpath("//#{ns.prefix}:*").any?
  return if xml.xpath("//@*[namespace-uri()='#{ns.href}']").any?

  source = xml.root.to_s.gsub(/ *xmlns:#{ns.prefix}=".*?"/, "")
  xml.root = Nokogiri::XML(source).root
end