class SvgThang::LiquidConverter

Attributes

default_classes[R]
logger[R]
prefix[R]

Public Class Methods

new(default_classes: "", prefix: "") click to toggle source
# File lib/svgthang/liquid_converter.rb, line 8
def initialize(default_classes: "", prefix: "")
  @default_classes = default_classes
  @prefix = prefix
  @logger = Logger.new(STDOUT)
end

Public Instance Methods

convert(source_path, target_path) click to toggle source
# File lib/svgthang/liquid_converter.rb, line 14
def convert(source_path, target_path)
  contents = File.read(source_path)

  if !contents.start_with? "<svg"
    logger.error "#{source_path} doesn't appear to be an SVG file"
    return
  end

  logger.info "Converting #{source_path} to Liquid template at #{target_path}"

  svg_doc = Oga.parse_html(contents)
  svg_doc.at_css("svg").set(
    "class", "#{default_classes} {{ include.classes }}")
  html = svg_doc.to_xml

  filename = "#{prefix}#{File.basename(target_path)}"
  new_target_path = Pathname.new(target_path).parent.join(filename)

  File.open(new_target_path, "w") do |f|
    f.write(html)
  end
end