Class: Icons::Sync::Transformations

Inherits:
Object
  • Object
show all
Defined in:
lib/icons/sync/transformations.rb

Class Method Summary collapse

Class Method Details

.transform(filename, rules = {}) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/icons/sync/transformations.rb', line 8

def self.transform(filename, rules = {})
  basename = File.basename(filename, File.extname(filename))

  transformed = rules.fetch(:filenames, {}).reduce(basename) do |fn, (type, value)|
    FILENAME_TRANSFORMERS.fetch(type).call(fn, value)
  end

  [transformed, File.extname(filename)].join
end

.transform_svg(file_path, rules = []) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/icons/sync/transformations.rb', line 18

def self.transform_svg(file_path, rules = [])
  return unless rules.any?

  svg_document = Nokogiri::HTML::DocumentFragment.parse(File.read(file_path))

  rules.each do |rule|
    SVG_TRANSFORMERS.fetch(rule[:action]).call(
      svg_document,
      rule[:element],
      rule[:attribute],
      rule[:value]
    )
  end

  File.write(file_path, svg_document.to_html)
end