Class: SvgOptimizer

Inherits:
Object
  • Object
show all
Defined in:
lib/svgo.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = SvgoOptions.new) {|options| ... } ⇒ SvgOptimizer

Returns a new instance of SvgOptimizer.

Yields:

  • (options)


105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/svgo.rb', line 105

def initialize(options=SvgoOptions.new)
    yield options if block_given?
    if options.is_a? SvgoOptions
        @options = options.get_options
    else
        @options = options
    end
    if not @options[:plugins]
        @options[:plugins] = PLUGINS_DEFAULT
    end
    if @options[:plugins].is_a? Array
        @options[:plugins] = @options[:plugins].map {|p| [p, true]}.to_h
    end
    svgo_js = File.expand_path("../../svgo-js/svgo-built.js", __FILE__)
    svgo_module = File.open(svgo_js, "r:utf-8", &:read)
    @context = ExecJS.compile(svgo_module)
end

Instance Method Details

#optimize(svg_data) ⇒ Object



123
124
125
# File 'lib/svgo.rb', line 123

def optimize(svg_data)
    @context.call("svgo", @options.to_json, svg_data.to_s);
end

#optimize_file(svg_file) ⇒ Object



127
128
129
# File 'lib/svgo.rb', line 127

def optimize_file(svg_file)
    optimize(File.read(svg_file))
end