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 +8 -8
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.travis.yml +10 -2
- data/README.md +13 -2
- data/lib/image_optimizer.rb +1 -1
- data/lib/image_optimizer/jpeg_optimizer.rb +16 -5
- data/lib/image_optimizer/png_optimizer.rb +14 -3
- data/lib/image_optimizer/version.rb +1 -1
- data/spec/image_optimizer/jpeg_optimizer_spec.rb +16 -9
- data/spec/image_optimizer/png_optimizer_spec.rb +10 -4
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
N2Q4ZWYzYjZjMWMzYTkwMTUxNTExMzBkNTFjNjZkNTBmNGFjODJiZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ODc5MzY0MzA4NjY2YTgzZTYzZDUzZTA2MDBmMzBmY2Q2OGZhZGVkMA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MTM3MjhhYmEwZTJjNTI4Y2MxYTcxOGM3M2ZiZTk5Nzk2NTUzMjA4ZWE1NmU2
|
10
|
+
YmFhMzhjNjRhNzY1NTVkMjk5ZWI0MDNhOTYxNDc5MTU5ZWU3NmJhMWQ4NThh
|
11
|
+
YjYyNjg2YjMyMzhmYjI3ODMxOTdiNzU5OTgxOWFmODBmZWFmYjY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
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-
|
12
|
-
- rbx-
|
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-
|
6
|
-
rbx-
|
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
|
[]
|
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
|
data/lib/image_optimizer.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
class ImageOptimizer
|
2
2
|
class JPEGOptimizer
|
3
|
-
attr_reader :path, :
|
3
|
+
attr_reader :path, :options
|
4
4
|
|
5
5
|
def initialize(path, options = {})
|
6
6
|
@path = path
|
7
|
-
@
|
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
|
31
|
+
system(jpeg_optimizer_bin, *command_options)
|
32
32
|
end
|
33
33
|
|
34
|
-
def
|
35
|
-
|
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
|
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?
|
@@ -2,13 +2,12 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe ImageOptimizer::JPEGOptimizer do
|
4
4
|
describe '#optimize' do
|
5
|
-
let(:
|
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 =
|
11
|
-
jpeg_optimizer.should_receive(:system).with(
|
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 =
|
25
|
-
jpeg_optimizer.should_receive(:system).with(
|
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(
|
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 =
|
33
|
-
jpeg_optimizer.should_receive(:system).with(
|
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(:
|
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(
|
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(
|
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.
|
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-
|
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.
|
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
|