image_optimizer 1.7.0 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +11 -0
- data/README.md +21 -11
- data/certs/jtescher.pem +23 -19
- data/checksum/image_optimizer-1.7.1.gem.sha512 +1 -0
- data/checksum/image_optimizer-1.7.2.gem.sha512 +1 -0
- data/checksum/image_optimizer-1.8.0.gem.sha512 +1 -0
- data/checksum/image_optimizer-1.9.0.gem.sha512 +1 -0
- data/lib/image_optimizer/image_optimizer_base.rb +12 -0
- data/lib/image_optimizer/jpeg_optimizer.rb +1 -1
- data/lib/image_optimizer/png_optimizer.rb +1 -1
- data/lib/image_optimizer/pngquant_optimizer.rb +8 -6
- data/lib/image_optimizer/version.rb +1 -1
- data/lib/image_optimizer.rb +9 -0
- data/spec/image_optimizer/gif_optimizer_spec.rb +8 -0
- data/spec/image_optimizer/jpeg_optimizer_spec.rb +20 -1
- data/spec/image_optimizer/png_optimizer_spec.rb +18 -0
- data/spec/image_optimizer/pngquant_optimizer_spec.rb +37 -8
- data.tar.gz.sig +0 -0
- metadata +34 -26
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 52ece0fb51c602d22fb7c82b8c14a1a47ad2972d6e925226994b8c656484e6cb
|
4
|
+
data.tar.gz: 368aca1eb6b81221e1d130ca0d10490eab127a00a3b991bac4d2fc3bc75d32b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6022872379386db2a408e448a87f1679c2aef82ec40485791da1128cfdac177ea2558c70c12f27537e45c5bb53e94ba067cd99aa4a5f993a6a1782ed6707fd9f
|
7
|
+
data.tar.gz: 9683e4dc3de5849e0240ae0d81c0791cfb466ee5e1e40fc9c748b28789b71b22c3445e8d5c0129810064c212f1c148e77769546787a49ccd6c79c4964e54d728
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
## [1.9.0](https://github.com/jtescher/image_optimizer/releases/tag/v1.9.0) 2022-01-10
|
2
|
+
* add ignore option for compression methods (#23)
|
3
|
+
|
4
|
+
## [1.8.0](https://github.com/jtescher/image_optimizer/releases/tag/v1.8.0) 2018-07-30
|
5
|
+
* Fix: space in file name will break PNGQuantOptimizer - https://github.com/jtescher/image_optimizer/pull/21
|
6
|
+
|
7
|
+
## [1.7.2](https://github.com/jtescher/image_optimizer/releases/tag/v1.7.2) 2018-01-10
|
8
|
+
* Added quiet option support for pngquant optimizer - https://github.com/jtescher/image_optimizer/pull/19
|
9
|
+
|
10
|
+
## [1.7.1](https://github.com/jtescher/image_optimizer/releases/tag/v1.7.1) 2017-11-29
|
11
|
+
* Fix PNGQuantOptimizer `Unrecognised option` error - https://github.com/jtescher/image_optimizer/issues/17
|
data/README.md
CHANGED
@@ -4,14 +4,10 @@ This gem allows you to simply optimize images via jpegoptim or OptiPNG.
|
|
4
4
|
|
5
5
|
Tested against ruby 2.0.x, 2.1.x, 2.2.x, 2.3.x, and ruby-head
|
6
6
|
|
7
|
-
[![Build Status](https://secure.travis-ci.org/jtescher/image_optimizer.png)]
|
8
|
-
(
|
9
|
-
[![
|
10
|
-
(https://
|
11
|
-
[![Code Climate](https://codeclimate.com/github/jtescher/image_optimizer.png)]
|
12
|
-
(https://codeclimate.com/github/jtescher/image_optimizer)
|
13
|
-
[![Coverage Status](https://coveralls.io/repos/jtescher/image_optimizer/badge.png)]
|
14
|
-
(https://coveralls.io/r/jtescher/image_optimizer)
|
7
|
+
[![Build Status](https://secure.travis-ci.org/jtescher/image_optimizer.png)](http://travis-ci.org/jtescher/image_optimizer)
|
8
|
+
[![Dependency Status](https://gemnasium.com/jtescher/image_optimizer.png)](https://gemnasium.com/jtescher/image_optimizer)
|
9
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/31aa4c1b98a4c31433a3/maintainability)](https://codeclimate.com/github/jtescher/image_optimizer/maintainability)
|
10
|
+
[![Coverage Status](https://coveralls.io/repos/jtescher/image_optimizer/badge.png)](https://coveralls.io/r/jtescher/image_optimizer)
|
15
11
|
[![Gem Version](https://badge.fury.io/rb/image_optimizer.png)](http://badge.fury.io/rb/image_optimizer)
|
16
12
|
|
17
13
|
## Installation
|
@@ -24,7 +20,7 @@ Tested against ruby 2.0.x, 2.1.x, 2.2.x, 2.3.x, and ruby-head
|
|
24
20
|
|
25
21
|
3. Gifsicle, which can be installed from [www.lcdf.org/gifsicle/](https://www.lcdf.org/gifsicle/)
|
26
22
|
|
27
|
-
4. Pngquant, which can be installed from [pngquant.org]https://pngquant.org/
|
23
|
+
4. Pngquant, which can be installed from [pngquant.org](https://pngquant.org/)
|
28
24
|
|
29
25
|
Or install the utilities via homebrew:
|
30
26
|
|
@@ -40,7 +36,7 @@ And then execute:
|
|
40
36
|
|
41
37
|
```bash
|
42
38
|
$ bundle
|
43
|
-
```
|
39
|
+
```
|
44
40
|
|
45
41
|
Or install it yourself as:
|
46
42
|
```bash
|
@@ -62,7 +58,7 @@ Pngquant is a command-line utility and a library for lossy compression of PNG im
|
|
62
58
|
The conversion reduces file sizes significantly (often as much as 70%) and preserves full alpha transparency. Generated images are compatible with all modern web browsers, and have better fallback in IE6 than 24-bit PNGs.
|
63
59
|
|
64
60
|
```ruby
|
65
|
-
PNGQuantOptimizer.new('path/to/file.png').optimize
|
61
|
+
ImageOptimizer::PNGQuantOptimizer.new('path/to/file.png').optimize
|
66
62
|
```
|
67
63
|
|
68
64
|
#### Optimize JPEG formats:
|
@@ -93,6 +89,12 @@ Default is false.
|
|
93
89
|
ImageOptimizer.new('path/to/file.jpg', quiet: true).optimize
|
94
90
|
```
|
95
91
|
|
92
|
+
You can also enable quiet mode globally:
|
93
|
+
|
94
|
+
```ruby
|
95
|
+
ImageOptimizer.quiet = true
|
96
|
+
```
|
97
|
+
|
96
98
|
##### Lossy JPEG optimization
|
97
99
|
|
98
100
|
Pass an optional `quality` parameter to target a specific lossy JPG quality level (0-100), default is lossless
|
@@ -153,6 +155,14 @@ instead of the filename extension, default is false.
|
|
153
155
|
ImageOptimizer.new('path/to/file.jpg', identify: true).optimize
|
154
156
|
```
|
155
157
|
|
158
|
+
##### Ignore compression methods
|
159
|
+
|
160
|
+
You can ignore optimization methods by passing an optional `ignore` parameter with the method name(s). For example, to compress a png ignoring the lossless compression method `optipng`:
|
161
|
+
|
162
|
+
```ruby
|
163
|
+
ImageOptimizer.new('path/to/file.png', ignore: :optipng).optimize
|
164
|
+
```
|
165
|
+
|
156
166
|
## Set bin directories
|
157
167
|
|
158
168
|
Optionally set binary directories with the `OPTIPNG_BIN`, `JPEGOPTIM_BIN` and `IDENTIFY_BIN` environment variables.
|
data/certs/jtescher.pem
CHANGED
@@ -1,21 +1,25 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
2
|
+
MIIENDCCApygAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdqdWxp
|
3
|
+
YW4vREM9dGVzY2hlci9EQz1tZTAeFw0yMjAxMTAxNTMyMzFaFw0yMzAxMTAxNTMy
|
4
|
+
MzFaMCIxIDAeBgNVBAMMF2p1bGlhbi9EQz10ZXNjaGVyL0RDPW1lMIIBojANBgkq
|
5
|
+
hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA2NIqnCAvdqMziQRxhBrjOOEy/bpjVakN
|
6
|
+
4SY7DxGzx2C7nSTmIS8KDNVJMJJu+1SjsrE7zZR4YGXsn5EWC9byjUlEbIr+bcYX
|
7
|
+
Kqez1qWEAF5bAHCi2aIQV7DL6EjhuuhHszK921VK52m9/kfLzCGojM+dQGhxsS9R
|
8
|
+
uK8NMZvOnBprEblr58iD9b7wp7Nw8zl3HeYi7QEhFL9wQcIQTtACiRxim+0N0XXK
|
9
|
+
W9Fwk3gB8UaiWEwNdaZJ360+YubO1Q+9/6XnItDl8rvyyzkkPk8qTbqBxo+9qExk
|
10
|
+
dQkaJM2a4u0KBbdpMzSH05lcaHsitvaj9v3OXgXcX1JCJ8PfvjMkRVOj6p490Wv5
|
11
|
+
jgtJ8WsaJuJ0Z8AZK5LdD0DJPEH2ne54IKULsg0+G+kc7TGApxkQ9guJ3DYFMCww
|
12
|
+
NvTZhT5wdoKYi2EmWIMick8NiVWU8JHolHAjWHAMnnzLu1MeQEQdNIcU7+q4Vsti
|
13
|
+
qNQDKfsF14EBoUrdVQw7GhM0YsDflP9vAgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYD
|
14
|
+
VR0PBAQDAgSwMB0GA1UdDgQWBBSjYnqpiURz0CR8srSqAJbZhlIx3TAcBgNVHREE
|
15
|
+
FTATgRFqdWxpYW5AdGVzY2hlci5tZTAcBgNVHRIEFTATgRFqdWxpYW5AdGVzY2hl
|
16
|
+
ci5tZTANBgkqhkiG9w0BAQsFAAOCAYEANc6i+QIto8zFj+y2rHpz197Dg8nYtHnr
|
17
|
+
LjEeNCm3JPyTZNDXbs/W+GArMiukQ3GkIdDgx+e+Q3h8FMdO5L5ObRNeGmBDyEyG
|
18
|
+
M8ubpHxacemSZkfmVyNkDBWOFYQYMJaC2TgmnUnRe5IAuOuWRgvC4kvb1blTsqbP
|
19
|
+
jNDn4Z2FofVroUQsPD8lVw27cUsoA2SmFnS+8ThqVsn/CIEoLkIkOWElAaKqa4z9
|
20
|
+
xU/u+8Mi2o2ndq1k5/WvYn2AAEm+DjJ5jPkSeepYdlNe2ogEeGcWEFmyDJfr0vK3
|
21
|
+
VokEpOHGpz1/CiJnJ08xTGCLOZ13dtclzhILRsP7tTh8+c9XB4SkmuX37dazBUu0
|
22
|
+
pdTkZA65Y5/zNsW4BLHc8h6TyXqpmv6giWKOm6gHdWVrhuVM9GGR4gIJyI5UFISg
|
23
|
+
HgI9vJ9QNRAdHzkP6ToW7r3j6nuszBAcnvJHU+MnONH9mGe7EWado06XjFAgrcA/
|
24
|
+
47H47vSiiTIz55uAos1d8U8682yHT1SQ
|
21
25
|
-----END CERTIFICATE-----
|
@@ -0,0 +1 @@
|
|
1
|
+
dc5be3d00db746d52012b8f61e8c7cc546538180fbbd043bee18e466dccb5454c2e7675d37f2db91ba3db7b513dc7f5a33ed9953c182b5d22035031ed1bc99f2
|
@@ -0,0 +1 @@
|
|
1
|
+
309cf3bfe33c8afccbac2b99ad23dd124ff6230f66a23aec444f22494f3726b3e22fad4656cf72984ed029f1149e4dbfcbdec203b143d259959f41b4825310ae
|
@@ -0,0 +1 @@
|
|
1
|
+
a060c2b8101654118102bbced353085a17155363cd283bf2365f8ade16fa621b83076a06cf1c0635c44ce8ef465fad4a675bcebae616cb86b83e871db67e6e44
|
@@ -0,0 +1 @@
|
|
1
|
+
848760a4bcbf80d14abfa5ac4c752e8f8bc9019bff3f6f3240fbed4ac8c899bac1720a6bbd13bdba021adf5641d6e9e1d17c67d7d472a82ee0d9d85e8bcea22d
|
@@ -9,6 +9,7 @@ class ImageOptimizer
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def optimize
|
12
|
+
return if ignore?
|
12
13
|
return unless correct_format?
|
13
14
|
|
14
15
|
if optimizer_bin?
|
@@ -40,5 +41,16 @@ class ImageOptimizer
|
|
40
41
|
ENV["#{bin_name.upcase}_BIN"] || which(bin_name)
|
41
42
|
end
|
42
43
|
|
44
|
+
def quiet?
|
45
|
+
options[:quiet] || ImageOptimizer.quiet
|
46
|
+
end
|
47
|
+
|
48
|
+
def ignore?
|
49
|
+
ignore.include? bin_name
|
50
|
+
end
|
51
|
+
|
52
|
+
def ignore
|
53
|
+
options[:ignore] ? [options[:ignore]].flatten.map(&:to_s) : []
|
54
|
+
end
|
43
55
|
end
|
44
56
|
end
|
@@ -4,15 +4,17 @@ class ImageOptimizer
|
|
4
4
|
private
|
5
5
|
|
6
6
|
def command_options
|
7
|
-
flags = ['--skip-if-larger', '--speed
|
8
|
-
'--force', '--verbose', '--ext
|
9
|
-
|
7
|
+
flags = ['--skip-if-larger', '--speed=1',
|
8
|
+
'--force', '--verbose', '--ext=.png']
|
9
|
+
|
10
|
+
flags -= ['--verbose'] if quiet?
|
11
|
+
flags << quality
|
10
12
|
flags << path
|
11
13
|
end
|
12
14
|
|
13
|
-
def
|
14
|
-
return "--quality
|
15
|
-
"--quality
|
15
|
+
def quality
|
16
|
+
return "--quality=100" unless (0..100).include?(options[:quality])
|
17
|
+
"--quality=#{options[:quality]}"
|
16
18
|
end
|
17
19
|
|
18
20
|
def extensions
|
data/lib/image_optimizer.rb
CHANGED
@@ -9,6 +9,15 @@ require 'image_optimizer/pngquant_optimizer'
|
|
9
9
|
class ImageOptimizer
|
10
10
|
include Shell
|
11
11
|
|
12
|
+
# Allow the +quiet+ flag to be set globally.
|
13
|
+
@@quiet = false
|
14
|
+
def self.quiet
|
15
|
+
@@quiet
|
16
|
+
end
|
17
|
+
def self.quiet=(value)
|
18
|
+
@@quiet = value
|
19
|
+
end
|
20
|
+
|
12
21
|
attr_reader :path, :options
|
13
22
|
def initialize(path, options = {})
|
14
23
|
@path = path
|
@@ -46,6 +46,14 @@ describe ImageOptimizer::GIFOptimizer do
|
|
46
46
|
subject
|
47
47
|
end
|
48
48
|
end
|
49
|
+
|
50
|
+
context 'with ignore parameter' do
|
51
|
+
let(:options) { { :ignore => :gifsicle } }
|
52
|
+
it 'does not optimize the gif' do
|
53
|
+
expect(gif_optimizer).not_to receive(:system)
|
54
|
+
subject
|
55
|
+
end
|
56
|
+
end
|
49
57
|
end
|
50
58
|
|
51
59
|
|
@@ -53,6 +53,25 @@ describe ImageOptimizer::JPEGOptimizer do
|
|
53
53
|
subject
|
54
54
|
end
|
55
55
|
end
|
56
|
+
|
57
|
+
context 'with global quiet mode enabled' do
|
58
|
+
before { ImageOptimizer.quiet = true }
|
59
|
+
after { ImageOptimizer.quiet = false }
|
60
|
+
|
61
|
+
it 'sets quiet parameter on the command line' do
|
62
|
+
optimizer_options = %w[-f --strip-all --all-progressive --quiet /path/to/file.jpg]
|
63
|
+
expect(jpeg_optimizer).to receive(:system).with('/usr/local/bin/jpegoptim', *optimizer_options)
|
64
|
+
subject
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
context 'with ignore parameter' do
|
69
|
+
let(:options) { { :ignore => :jpegoptim } }
|
70
|
+
it 'does not optimize the jpeg' do
|
71
|
+
expect(jpeg_optimizer).not_to receive(:system)
|
72
|
+
subject
|
73
|
+
end
|
74
|
+
end
|
56
75
|
end
|
57
76
|
|
58
77
|
context 'optimizing utility is not installed' do
|
@@ -66,4 +85,4 @@ describe ImageOptimizer::JPEGOptimizer do
|
|
66
85
|
end
|
67
86
|
end
|
68
87
|
end
|
69
|
-
end
|
88
|
+
end
|
@@ -40,6 +40,16 @@ describe ImageOptimizer::PNGOptimizer do
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
+
context 'with global quiet mode enabled' do
|
44
|
+
before { ImageOptimizer.quiet = true }
|
45
|
+
after { ImageOptimizer.quiet = false }
|
46
|
+
|
47
|
+
it 'sets quiet parameter on the command line' do
|
48
|
+
expect(png_optimizer).to receive(:system).with('/usr/local/bin/optipng', '-o7', '-strip all', '-quiet', '/path/to/file.png')
|
49
|
+
subject
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
43
53
|
context 'without optimization parameter' do
|
44
54
|
it 'optimizes the png with level 7 optimization' do
|
45
55
|
expect(png_optimizer).to receive(:system).with('/usr/local/bin/optipng', '-o7', '-strip all', '/path/to/file.png')
|
@@ -62,6 +72,14 @@ describe ImageOptimizer::PNGOptimizer do
|
|
62
72
|
subject
|
63
73
|
end
|
64
74
|
end
|
75
|
+
|
76
|
+
context 'with ignore parameter' do
|
77
|
+
let(:options) { { :ignore => :optipng } }
|
78
|
+
it 'does not optimize the png' do
|
79
|
+
expect(png_optimizer).not_to receive(:system)
|
80
|
+
subject
|
81
|
+
end
|
82
|
+
end
|
65
83
|
end
|
66
84
|
|
67
85
|
|
@@ -3,7 +3,8 @@ require 'spec_helper'
|
|
3
3
|
describe ImageOptimizer::PNGQuantOptimizer do
|
4
4
|
describe '#optimize' do
|
5
5
|
let(:options) { {} }
|
6
|
-
let(:
|
6
|
+
let(:path) { '/path/to/file.png' }
|
7
|
+
let(:pngquant_optimizer) { ImageOptimizer::PNGQuantOptimizer.new(path, options) }
|
7
8
|
after { ImageOptimizer::PNGQuantOptimizer.instance_variable_set(:@bin, nil) }
|
8
9
|
subject { pngquant_optimizer.optimize }
|
9
10
|
|
@@ -13,8 +14,8 @@ describe ImageOptimizer::PNGQuantOptimizer do
|
|
13
14
|
end
|
14
15
|
|
15
16
|
it 'optimizes the png' do
|
16
|
-
|
17
|
-
expect(pngquant_optimizer).to receive(:system).with(
|
17
|
+
expected_cmd = %w[/usr/local/bin/pngquant --skip-if-larger --speed=1 --force --verbose --ext=.png --quality=100 /path/to/file.png]
|
18
|
+
expect(pngquant_optimizer).to receive(:system).with(*expected_cmd)
|
18
19
|
subject
|
19
20
|
end
|
20
21
|
|
@@ -28,18 +29,46 @@ describe ImageOptimizer::PNGQuantOptimizer do
|
|
28
29
|
end
|
29
30
|
|
30
31
|
it 'should optimize using the given path' do
|
31
|
-
|
32
|
-
expect(pngquant_optimizer).to receive(:system).with(image_pngquant_bin_path, *
|
32
|
+
expected_cmd = %w[--skip-if-larger --speed=1 --force --verbose --ext=.png --quality=100 /path/to/file.png]
|
33
|
+
expect(pngquant_optimizer).to receive(:system).with(image_pngquant_bin_path, *expected_cmd)
|
33
34
|
subject
|
34
35
|
end
|
35
36
|
end
|
36
37
|
|
37
38
|
context 'with quality parameter' do
|
38
|
-
let(:options) { { :quality =>
|
39
|
+
let(:options) { { :quality => 99 } }
|
39
40
|
|
40
41
|
it 'optimizes the png with the quality' do
|
41
|
-
|
42
|
-
expect(pngquant_optimizer).to receive(:system).with(
|
42
|
+
expected_cmd = %w[/usr/local/bin/pngquant --skip-if-larger --speed=1 --force --verbose --ext=.png --quality=99 /path/to/file.png]
|
43
|
+
expect(pngquant_optimizer).to receive(:system).with(*expected_cmd)
|
44
|
+
subject
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context 'with quiet parameter' do
|
49
|
+
let(:options) { { :quiet => true } }
|
50
|
+
|
51
|
+
it 'optimizes the png with the quality' do
|
52
|
+
expected_cmd = %w[/usr/local/bin/pngquant --skip-if-larger --speed=1 --force --ext=.png --quality=100 /path/to/file.png]
|
53
|
+
expect(pngquant_optimizer).to receive(:system).with(*expected_cmd)
|
54
|
+
subject
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
context 'with ignore parameter' do
|
59
|
+
let(:options) { { :ignore => :pngquant } }
|
60
|
+
it 'does not optimize the png' do
|
61
|
+
expect(pngquant_optimizer).not_to receive(:system)
|
62
|
+
subject
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context 'with space in file name' do
|
67
|
+
let(:path) { '/path/to/file 2.png' }
|
68
|
+
|
69
|
+
it do
|
70
|
+
expected_cmd = %w[/usr/local/bin/pngquant --skip-if-larger --speed=1 --force --verbose --ext=.png --quality=100]
|
71
|
+
expect(pngquant_optimizer).to receive(:system).with(*expected_cmd, path)
|
43
72
|
subject
|
44
73
|
end
|
45
74
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,36 +1,40 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: image_optimizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julian Tescher
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
13
|
+
MIIENDCCApygAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdqdWxp
|
14
|
+
YW4vREM9dGVzY2hlci9EQz1tZTAeFw0yMjAxMTAxNTMyMzFaFw0yMzAxMTAxNTMy
|
15
|
+
MzFaMCIxIDAeBgNVBAMMF2p1bGlhbi9EQz10ZXNjaGVyL0RDPW1lMIIBojANBgkq
|
16
|
+
hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA2NIqnCAvdqMziQRxhBrjOOEy/bpjVakN
|
17
|
+
4SY7DxGzx2C7nSTmIS8KDNVJMJJu+1SjsrE7zZR4YGXsn5EWC9byjUlEbIr+bcYX
|
18
|
+
Kqez1qWEAF5bAHCi2aIQV7DL6EjhuuhHszK921VK52m9/kfLzCGojM+dQGhxsS9R
|
19
|
+
uK8NMZvOnBprEblr58iD9b7wp7Nw8zl3HeYi7QEhFL9wQcIQTtACiRxim+0N0XXK
|
20
|
+
W9Fwk3gB8UaiWEwNdaZJ360+YubO1Q+9/6XnItDl8rvyyzkkPk8qTbqBxo+9qExk
|
21
|
+
dQkaJM2a4u0KBbdpMzSH05lcaHsitvaj9v3OXgXcX1JCJ8PfvjMkRVOj6p490Wv5
|
22
|
+
jgtJ8WsaJuJ0Z8AZK5LdD0DJPEH2ne54IKULsg0+G+kc7TGApxkQ9guJ3DYFMCww
|
23
|
+
NvTZhT5wdoKYi2EmWIMick8NiVWU8JHolHAjWHAMnnzLu1MeQEQdNIcU7+q4Vsti
|
24
|
+
qNQDKfsF14EBoUrdVQw7GhM0YsDflP9vAgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYD
|
25
|
+
VR0PBAQDAgSwMB0GA1UdDgQWBBSjYnqpiURz0CR8srSqAJbZhlIx3TAcBgNVHREE
|
26
|
+
FTATgRFqdWxpYW5AdGVzY2hlci5tZTAcBgNVHRIEFTATgRFqdWxpYW5AdGVzY2hl
|
27
|
+
ci5tZTANBgkqhkiG9w0BAQsFAAOCAYEANc6i+QIto8zFj+y2rHpz197Dg8nYtHnr
|
28
|
+
LjEeNCm3JPyTZNDXbs/W+GArMiukQ3GkIdDgx+e+Q3h8FMdO5L5ObRNeGmBDyEyG
|
29
|
+
M8ubpHxacemSZkfmVyNkDBWOFYQYMJaC2TgmnUnRe5IAuOuWRgvC4kvb1blTsqbP
|
30
|
+
jNDn4Z2FofVroUQsPD8lVw27cUsoA2SmFnS+8ThqVsn/CIEoLkIkOWElAaKqa4z9
|
31
|
+
xU/u+8Mi2o2ndq1k5/WvYn2AAEm+DjJ5jPkSeepYdlNe2ogEeGcWEFmyDJfr0vK3
|
32
|
+
VokEpOHGpz1/CiJnJ08xTGCLOZ13dtclzhILRsP7tTh8+c9XB4SkmuX37dazBUu0
|
33
|
+
pdTkZA65Y5/zNsW4BLHc8h6TyXqpmv6giWKOm6gHdWVrhuVM9GGR4gIJyI5UFISg
|
34
|
+
HgI9vJ9QNRAdHzkP6ToW7r3j6nuszBAcnvJHU+MnONH9mGe7EWado06XjFAgrcA/
|
35
|
+
47H47vSiiTIz55uAos1d8U8682yHT1SQ
|
32
36
|
-----END CERTIFICATE-----
|
33
|
-
date:
|
37
|
+
date: 2022-01-10 00:00:00.000000000 Z
|
34
38
|
dependencies:
|
35
39
|
- !ruby/object:Gem::Dependency
|
36
40
|
name: rspec
|
@@ -111,6 +115,7 @@ extra_rdoc_files: []
|
|
111
115
|
files:
|
112
116
|
- ".gitignore"
|
113
117
|
- ".travis.yml"
|
118
|
+
- CHANGELOG.md
|
114
119
|
- Gemfile
|
115
120
|
- LICENSE.txt
|
116
121
|
- README.md
|
@@ -128,6 +133,10 @@ files:
|
|
128
133
|
- checksum/image_optimizer-1.6.0.gem.sha512
|
129
134
|
- checksum/image_optimizer-1.6.1.gem.sha512
|
130
135
|
- checksum/image_optimizer-1.7.0.gem.sha512
|
136
|
+
- checksum/image_optimizer-1.7.1.gem.sha512
|
137
|
+
- checksum/image_optimizer-1.7.2.gem.sha512
|
138
|
+
- checksum/image_optimizer-1.8.0.gem.sha512
|
139
|
+
- checksum/image_optimizer-1.9.0.gem.sha512
|
131
140
|
- image_optimizer.gemspec
|
132
141
|
- lib/image_optimizer.rb
|
133
142
|
- lib/image_optimizer/gif_optimizer.rb
|
@@ -149,7 +158,7 @@ homepage: https://github.com/jtescher/image_optimizer
|
|
149
158
|
licenses:
|
150
159
|
- MIT
|
151
160
|
metadata: {}
|
152
|
-
post_install_message:
|
161
|
+
post_install_message:
|
153
162
|
rdoc_options: []
|
154
163
|
require_paths:
|
155
164
|
- lib
|
@@ -164,9 +173,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
173
|
- !ruby/object:Gem::Version
|
165
174
|
version: '0'
|
166
175
|
requirements: []
|
167
|
-
|
168
|
-
|
169
|
-
signing_key:
|
176
|
+
rubygems_version: 3.2.3
|
177
|
+
signing_key:
|
170
178
|
specification_version: 4
|
171
179
|
summary: Simply optimize images via jpegoptim or OptiPNG or Gifsicle
|
172
180
|
test_files:
|
metadata.gz.sig
CHANGED
Binary file
|