class GifOptimizer::Optimizer

Attributes

options[R]
path[R]

Public Class Methods

new(path, options = {}) click to toggle source
# File lib/gif_optimizer/optimizer.rb, line 5
def initialize(path, options = {})
  @path = path
  @options = options
end

Public Instance Methods

optimize() click to toggle source
# File lib/gif_optimizer/optimizer.rb, line 10
def optimize
  return unless gif_format?

  if optimizer_present?
    optimize_gif
  else
    warn 'Attempting to optimize a gif without gifsicle installed. Skipping...'
  end
end

Private Instance Methods

command_options() click to toggle source
# File lib/gif_optimizer/optimizer.rb, line 34
def command_options
  flags = ['-b', '-O3']
  flags << path
end
extension(path) click to toggle source
# File lib/gif_optimizer/optimizer.rb, line 26
def extension(path)
  path.split('.').last.downcase
end
gif_format?() click to toggle source
# File lib/gif_optimizer/optimizer.rb, line 22
def gif_format?
  ['gif'].include? extension(path)
end
gif_optimizer_bin() click to toggle source
# File lib/gif_optimizer/optimizer.rb, line 43
def gif_optimizer_bin
  @gif_optimizer_bin ||= ENV['GIFSICLE_BIN'] || `which gifsicle`.strip
end
optimize_gif() click to toggle source
# File lib/gif_optimizer/optimizer.rb, line 30
def optimize_gif
  system(gif_optimizer_bin, *command_options)
end
optimizer_present?() click to toggle source
# File lib/gif_optimizer/optimizer.rb, line 39
def optimizer_present?
  !gif_optimizer_bin.nil? && !gif_optimizer_bin.empty?
end