Class: ImageOptim::Runner

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

Defined Under Namespace

Modules: Space

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args, options) ⇒ Runner

Returns a new instance of Runner.



40
41
42
43
44
45
46
# File 'lib/image_optim/runner.rb', line 40

def initialize(args, options)
  raise 'specify paths to optimize' if args.empty?
  options = HashHelpers.deep_symbolise_keys(options)
  @recursive = options.delete(:recursive)
  @image_optim = ImageOptim.new(options)
  @files = find_files(args)
end

Class Method Details

.run!(args, options) ⇒ Object



67
68
69
# File 'lib/image_optim/runner.rb', line 67

def self.run!(args, options)
  new(args, options).run!
end

Instance Method Details

#run!Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/image_optim/runner.rb', line 48

def run!
  unless @files.empty?
    lines, original_sizes, optimized_sizes =
    @image_optim.optimize_images!(@files.with_progress('optimizing')) do |original, optimized|
      original_size = optimized ? optimized.original_size : original.size
      optimized_size = optimized ? optimized.size : original.size
      ["#{size_percent(original_size, optimized_size)}  #{original}", original_size, optimized_size]
    end.transpose

    puts lines, "Total: #{size_percent(original_sizes.inject(:+), optimized_sizes.inject(:+))}"
  end

  !warnings?
end

#warnings?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/image_optim/runner.rb', line 63

def warnings?
  !!@warnings
end