Some small optimizations for SVG files.
Add this line to your application's Gemfile:
gem 'svg_optimizer'
And then execute:
$ bundle
Or install it yourself as:
$ gem install svg_optimizer
# Optimize an existing String.
xml = File.read("file.svg")
optimized = SvgOptimizer.optimize(xml)
# Optimize a file - it will override the original file.
SvgOptimizer.optimize_file("file.svg")
# Optimize a file - it saves a copy to "optimized/file.svg".
SvgOptimizer.optimize_file("file.svg", "optimized/file.svg")
You can specify the plugins you want to enable. The method signature is:
SvgOptimizer.optimize(xml, plugins)
SvgOptimizer.optimize_file(input, output, plugins)
where plugins
is an array of classes that implement the following contract:
class MyPlugin < SvgOptimizer::Plugins::Base
def process
xml.xpath("//comment()").remove
end
end
The default list of plugins is stored at SvgOptimizer::DEFAULT_PLUGINS
. To use your new plugin, just do something like this:
SvgOptimizer.optimize(xml, SvgOptimizer::DEFAULT_PLUGINS + [MyPlugin])
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request