image_optimizer 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZGQwZDcwZDNiZjQ5ODMwNTEzNzU3ZWY2MzM5MzMzMDg2Zjk3Y2YzNg==
4
+ N2Q4ZWYzYjZjMWMzYTkwMTUxNTExMzBkNTFjNjZkNTBmNGFjODJiZQ==
5
5
  data.tar.gz: !binary |-
6
- Zjc2OGU1NGQyNzFhMDcxMDVkYzQ5OWJjMDliMjgwZjAxNzliZjg5Mg==
6
+ ODc5MzY0MzA4NjY2YTgzZTYzZDUzZTA2MDBmMzBmY2Q2OGZhZGVkMA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZWI3ZDQ2YjgxNzVjYjk5ZGY5NDE3ZDZjY2RjNGM1MGI3NmQ4MDA5OTc2MDk2
10
- MzEwZmIxOTMwNTdiMmEzNzg1YzU3MjgwNGRkY2RmMDc1NjdhNWVhMjI2M2Vj
11
- MmVkZTdkMTc1MjI1MDRiMTI5MzNjZGU3ZWYxNWJhMmUxNTcxNjU=
9
+ MTM3MjhhYmEwZTJjNTI4Y2MxYTcxOGM3M2ZiZTk5Nzk2NTUzMjA4ZWE1NmU2
10
+ YmFhMzhjNjRhNzY1NTVkMjk5ZWI0MDNhOTYxNDc5MTU5ZWU3NmJhMWQ4NThh
11
+ YjYyNjg2YjMyMzhmYjI3ODMxOTdiNzU5OTgxOWFmODBmZWFmYjY=
12
12
  data.tar.gz: !binary |-
13
- ZTk1ZGM2M2IzMTQ0ZDZlM2Q3MGRlYmQwZTk3OWUwZTcwMjQzNWFmYzYzMmJl
14
- YjVjMDc4YzAwNTViOTA1NTA4ZGQzMDgwOGIzYWI0NmYxMGU0NDdiMTk0NzVj
15
- YmVjOTlmM2ZjMmM4OGNhMGU2NWM0NjZkNjkxYTA3ZjdiYjUzNWY=
13
+ NDdlZTM1N2Q3YTMwMWNhNGQxZDQ4Mzc3Mjg5ZWIzM2NmYzY2Y2IzOWQzNGVj
14
+ N2M1YjlkMmU3ZTU0MjQ0N2VjMWVhZTA3NWQ3YTNhYjM2Nzc1YWM4MDUxZWFl
15
+ Njc2OGMzMDllYThjNGE3NWQzZDU5ZThhMjI2MDc1MmJmNGJhMDU=
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/.travis.yml CHANGED
@@ -7,7 +7,15 @@ rvm:
7
7
  - 1.9.2
8
8
  - 1.9.3
9
9
  - 2.0.0
10
+ - 2.1.0
10
11
  - ruby-head
11
- - rbx-18mode
12
- - rbx-19mode
12
+ - rbx-2.1.0
13
+ - rbx-2.2.0
13
14
  - ree
15
+ matrix:
16
+ allow_failures:
17
+ - rvm: jruby-18mode
18
+ - rvm: 1.8.7
19
+ - rvm: rbx-2.1.0
20
+ - rvm: rbx-2.2.0
21
+ - rvm: ree
data/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  This gem allows you to simply optimize images via jpegoptim or OptiPNG.
4
4
 
5
- Tested against ruby 1.8.7, 1.9.2, 1.9.3, 2.0.0, ruby-head, jruby-18mode, jruby-19mode, jruby-head, rbx-18mode,
6
- rbx-19mode, and ree
5
+ Tested against ruby 1.8.7, 1.9.2, 1.9.3, 2.0.0, 2.1.0, ruby-head, jruby-18mode, jruby-19mode, jruby-head, rbx-2.1.0,
6
+ rbx-2.2.0, and ree
7
7
 
8
8
  [![Build Status](https://secure.travis-ci.org/jtescher/image_optimizer.png)]
9
9
  (http://travis-ci.org/jtescher/image_optimizer)
@@ -64,6 +64,17 @@ All jpegs will be progressively optimized for a better web experience
64
64
  ImageOptimizer.new('path/to/file.jpg').optimize
65
65
  ```
66
66
 
67
+ ## Optimization Options
68
+
69
+ ##### Quiet optimization
70
+
71
+ To have optimization performed in quiet mode without logging progress, an optional `quiet` parameter may be passed.
72
+ Default is false.
73
+
74
+ ```ruby
75
+ ImageOptimizer.new('path/to/file.jpg', quiet: true).optimize
76
+ ```
77
+
67
78
  ##### Lossy JPEG optimization
68
79
 
69
80
  Pass an optional `quality` parameter to target a specific lossy JPG quality level (0-100), default is lossless
@@ -12,6 +12,6 @@ class ImageOptimizer
12
12
 
13
13
  def optimize
14
14
  JPEGOptimizer.new(path, options).optimize
15
- PNGOptimizer.new(path).optimize
15
+ PNGOptimizer.new(path, options).optimize
16
16
  end
17
17
  end
@@ -1,10 +1,10 @@
1
1
  class ImageOptimizer
2
2
  class JPEGOptimizer
3
- attr_reader :path, :quality
3
+ attr_reader :path, :options
4
4
 
5
5
  def initialize(path, options = {})
6
6
  @path = path
7
- @quality = options[:quality]
7
+ @options = options
8
8
  end
9
9
 
10
10
  def optimize
@@ -28,11 +28,22 @@ class ImageOptimizer
28
28
  end
29
29
 
30
30
  def optimize_jpeg
31
- system "#{jpeg_optimizer_bin} -f --strip-all #{optional_max_quality} --all-progressive #{path}"
31
+ system(jpeg_optimizer_bin, *command_options)
32
32
  end
33
33
 
34
- def optional_max_quality
35
- "--max=#{quality}" if (0..100).include?(quality)
34
+ def command_options
35
+ flags = ['-f', '--strip-all', '--all-progressive']
36
+ flags << max_quantity if (0..100).include?(options[:quality])
37
+ flags << quiet if options[:quiet]
38
+ flags << path
39
+ end
40
+
41
+ def max_quantity
42
+ "--max=#{options[:quality]}"
43
+ end
44
+
45
+ def quiet
46
+ '--quiet'
36
47
  end
37
48
 
38
49
  def jpeg_optimizer_present?
@@ -1,9 +1,10 @@
1
1
  class ImageOptimizer
2
2
  class PNGOptimizer
3
- attr_reader :path
3
+ attr_reader :path, :options
4
4
 
5
- def initialize(path)
5
+ def initialize(path, options = {})
6
6
  @path = path
7
+ @options = options
7
8
  end
8
9
 
9
10
  def optimize
@@ -27,7 +28,17 @@ class ImageOptimizer
27
28
  end
28
29
 
29
30
  def optimize_png
30
- system "#{png_optimizer_bin} -o7 #{path}"
31
+ system(png_optimizer_bin, *command_options)
32
+ end
33
+
34
+ def command_options
35
+ flags = %w[-o7]
36
+ flags << quiet if options[:quiet]
37
+ flags << path
38
+ end
39
+
40
+ def quiet
41
+ '-quiet'
31
42
  end
32
43
 
33
44
  def png_optimizer_present?
@@ -1,3 +1,3 @@
1
1
  class ImageOptimizer
2
- VERSION = '1.2.0'
2
+ VERSION = '1.2.1'
3
3
  end
@@ -2,13 +2,12 @@ require 'spec_helper'
2
2
 
3
3
  describe ImageOptimizer::JPEGOptimizer do
4
4
  describe '#optimize' do
5
- let(:file_path) { '/path/to/file.jpg' }
6
- let(:jpeg_optimizer) { ImageOptimizer::JPEGOptimizer.new(file_path) }
5
+ let(:jpeg_optimizer) { ImageOptimizer::JPEGOptimizer.new('/path/to/file.jpg') }
7
6
 
8
7
  it 'optimizes the jpeg' do
9
8
  jpeg_optimizer.stub(:jpeg_optimizer_bin => '/usr/local/bin/jpegoptim')
10
- optimizer_options = '-f --strip-all --all-progressive'
11
- jpeg_optimizer.should_receive(:system).with("/usr/local/bin/jpegoptim #{optimizer_options} #{file_path}")
9
+ optimizer_options = %w[-f --strip-all --all-progressive /path/to/file.jpg]
10
+ jpeg_optimizer.should_receive(:system).with('/usr/local/bin/jpegoptim', *optimizer_options)
12
11
  jpeg_optimizer.optimize
13
12
  end
14
13
 
@@ -21,16 +20,24 @@ describe ImageOptimizer::JPEGOptimizer do
21
20
  it 'detects if there is an ENV variable path to jpegoptim' do
22
21
  image_optim_jpegoptim_bin_path = '/app/vendor/bundle/ruby/2.0.0/gems/image_optim_bin-0.0.2/bin/jpegoptim'
23
22
  ENV['JPEGOPTIM_BIN'] = image_optim_jpegoptim_bin_path
24
- optimizer_options = '-f --strip-all --all-progressive'
25
- jpeg_optimizer.should_receive(:system).with("#{image_optim_jpegoptim_bin_path} #{optimizer_options} #{file_path}")
23
+ optimizer_options = %w[-f --strip-all --all-progressive /path/to/file.jpg]
24
+ jpeg_optimizer.should_receive(:system).with(image_optim_jpegoptim_bin_path, *optimizer_options)
26
25
  jpeg_optimizer.optimize
27
26
  end
28
27
 
29
28
  it 'accepts an optional quality parameter' do
30
- jpeg_optimizer = ImageOptimizer::JPEGOptimizer.new(file_path, :quality => 50)
29
+ jpeg_optimizer = ImageOptimizer::JPEGOptimizer.new('/path/to/file.jpg', :quality => 50)
31
30
  jpeg_optimizer.stub(:jpeg_optimizer_bin => '/usr/local/bin/jpegoptim')
32
- optimizer_options = '-f --strip-all --max=50 --all-progressive'
33
- jpeg_optimizer.should_receive(:system).with("/usr/local/bin/jpegoptim #{optimizer_options} #{file_path}")
31
+ optimizer_options = %w[-f --strip-all --all-progressive --max=50 /path/to/file.jpg]
32
+ jpeg_optimizer.should_receive(:system).with('/usr/local/bin/jpegoptim', *optimizer_options)
33
+ jpeg_optimizer.optimize
34
+ end
35
+
36
+ it 'accepts an optional quiet parameter' do
37
+ jpeg_optimizer = ImageOptimizer::JPEGOptimizer.new('/path/to/file.jpg', :quiet => true)
38
+ jpeg_optimizer.stub(:jpeg_optimizer_bin => '/usr/local/bin/jpegoptim')
39
+ optimizer_options = %w[-f --strip-all --all-progressive --quiet /path/to/file.jpg]
40
+ jpeg_optimizer.should_receive(:system).with('/usr/local/bin/jpegoptim', *optimizer_options)
34
41
  jpeg_optimizer.optimize
35
42
  end
36
43
  end
@@ -2,12 +2,11 @@ require 'spec_helper'
2
2
 
3
3
  describe ImageOptimizer::PNGOptimizer do
4
4
  describe '#optimize' do
5
- let(:file_path) { '/path/to/file.png' }
6
- let(:png_optimizer) { ImageOptimizer::PNGOptimizer.new(file_path) }
5
+ let(:png_optimizer) { ImageOptimizer::PNGOptimizer.new('/path/to/file.png') }
7
6
 
8
7
  it 'optimizes the png' do
9
8
  png_optimizer.stub(:png_optimizer_bin => '/usr/local/bin/optipng')
10
- png_optimizer.should_receive(:system).with("/usr/local/bin/optipng -o7 #{file_path}")
9
+ png_optimizer.should_receive(:system).with('/usr/local/bin/optipng', '-o7', '/path/to/file.png')
11
10
  png_optimizer.optimize
12
11
  end
13
12
 
@@ -20,7 +19,14 @@ describe ImageOptimizer::PNGOptimizer do
20
19
  it 'detects if there is an ENV variable path to optipng' do
21
20
  image_optim_optipng_bin_path = '/app/vendor/bundle/ruby/2.0.0/gems/image_optim_bin-0.0.2/bin/optipng'
22
21
  ENV['OPTIPNG_BIN'] = image_optim_optipng_bin_path
23
- png_optimizer.should_receive(:system).with("#{image_optim_optipng_bin_path} -o7 #{file_path}")
22
+ png_optimizer.should_receive(:system).with(image_optim_optipng_bin_path, '-o7', '/path/to/file.png')
23
+ png_optimizer.optimize
24
+ end
25
+
26
+ it 'accepts an optional quiet parameter' do
27
+ png_optimizer = ImageOptimizer::PNGOptimizer.new('/path/to/file.png', :quiet => true)
28
+ png_optimizer.stub(:png_optimizer_bin => '/usr/local/bin/optipng')
29
+ png_optimizer.should_receive(:system).with('/usr/local/bin/optipng', '-o7', '-quiet', '/path/to/file.png')
24
30
  png_optimizer.optimize
25
31
  end
26
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: image_optimizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julian Tescher
@@ -35,7 +35,7 @@ cert_chain:
35
35
  V3NaK2F3dzJpU05DNVhGaEEvOHhzSzBCbHRZUkY5blAKSEE0MVV0RHhySmtI
36
36
  TDNOMXo4Z1BNWFNyRlQ0MUZSMndnazgrbDE0UCs3ZzFVVFBpZDJFSXdmdDJ4
37
37
  T2JGZUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
38
- date: 2013-12-04 00:00:00.000000000 Z
38
+ date: 2013-12-30 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rspec
@@ -151,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
151
  version: '0'
152
152
  requirements: []
153
153
  rubyforge_project:
154
- rubygems_version: 2.1.5
154
+ rubygems_version: 2.1.11
155
155
  signing_key:
156
156
  specification_version: 4
157
157
  summary: Simply optimize images via jpegoptim or OptiPNG
metadata.gz.sig CHANGED
Binary file