image_optimizer 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![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
|
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
|