image_optim 0.28.0 → 0.31.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/check.yml +89 -0
  3. data/.pre-commit-hooks.yaml +9 -0
  4. data/.rubocop.yml +6 -3
  5. data/CHANGELOG.markdown +20 -0
  6. data/CONTRIBUTING.markdown +1 -1
  7. data/Gemfile +1 -7
  8. data/LICENSE.txt +1 -1
  9. data/README.markdown +18 -9
  10. data/Vagrantfile +1 -1
  11. data/image_optim.gemspec +6 -3
  12. data/lib/image_optim/bin_resolver/bin.rb +9 -9
  13. data/lib/image_optim/cache.rb +6 -0
  14. data/lib/image_optim/cmd.rb +45 -6
  15. data/lib/image_optim/config.rb +11 -5
  16. data/lib/image_optim/elapsed_time.rb +26 -0
  17. data/lib/image_optim/errors.rb +9 -0
  18. data/lib/image_optim/path.rb +1 -1
  19. data/lib/image_optim/runner/option_parser.rb +21 -17
  20. data/lib/image_optim/runner.rb +1 -1
  21. data/lib/image_optim/timer.rb +25 -0
  22. data/lib/image_optim/worker/advpng.rb +7 -7
  23. data/lib/image_optim/worker/gifsicle.rb +11 -11
  24. data/lib/image_optim/worker/jhead.rb +2 -2
  25. data/lib/image_optim/worker/jpegoptim.rb +11 -11
  26. data/lib/image_optim/worker/jpegrecompress.rb +6 -6
  27. data/lib/image_optim/worker/jpegtran.rb +4 -4
  28. data/lib/image_optim/worker/optipng.rb +7 -7
  29. data/lib/image_optim/worker/oxipng.rb +53 -0
  30. data/lib/image_optim/worker/pngcrush.rb +6 -6
  31. data/lib/image_optim/worker/pngout.rb +7 -7
  32. data/lib/image_optim/worker/pngquant.rb +9 -9
  33. data/lib/image_optim/worker/svgo.rb +2 -2
  34. data/lib/image_optim/worker.rb +32 -29
  35. data/lib/image_optim.rb +16 -10
  36. data/script/update_worker_options_in_readme +1 -1
  37. data/script/worker_analysis +16 -18
  38. data/spec/image_optim/bin_resolver_spec.rb +5 -5
  39. data/spec/image_optim/cache_path_spec.rb +7 -10
  40. data/spec/image_optim/cache_spec.rb +7 -7
  41. data/spec/image_optim/cmd_spec.rb +64 -6
  42. data/spec/image_optim/config_spec.rb +36 -20
  43. data/spec/image_optim/elapsed_time_spec.rb +14 -0
  44. data/spec/image_optim/handler_spec.rb +1 -1
  45. data/spec/image_optim/hash_helpers_spec.rb +18 -18
  46. data/spec/image_optim/option_definition_spec.rb +6 -6
  47. data/spec/image_optim/path_spec.rb +8 -11
  48. data/spec/image_optim/runner/option_parser_spec.rb +4 -4
  49. data/spec/image_optim/timer_spec.rb +32 -0
  50. data/spec/image_optim/worker/jpegrecompress_spec.rb +2 -2
  51. data/spec/image_optim/worker/optipng_spec.rb +11 -11
  52. data/spec/image_optim/worker/oxipng_spec.rb +89 -0
  53. data/spec/image_optim/worker/pngquant_spec.rb +5 -5
  54. data/spec/image_optim/worker_spec.rb +17 -17
  55. data/spec/image_optim_spec.rb +47 -10
  56. data/spec/images/invisiblepixels/generate +1 -1
  57. data/spec/spec_helper.rb +24 -21
  58. metadata +35 -11
  59. data/.appveyor.yml +0 -53
  60. data/.travis.yml +0 -48
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: image_optim
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.28.0
4
+ version: 0.31.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Kuchin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-18 00:00:00.000000000 Z
11
+ date: 2021-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fspath
@@ -33,7 +33,7 @@ dependencies:
33
33
  version: '1.5'
34
34
  - - "<"
35
35
  - !ruby/object:Gem::Version
36
- version: '3'
36
+ version: '4'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '1.5'
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
- version: '3'
46
+ version: '4'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: exifr
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -146,6 +146,20 @@ dependencies:
146
146
  - - "~>"
147
147
  - !ruby/object:Gem::Version
148
148
  version: '1.0'
149
+ - !ruby/object:Gem::Dependency
150
+ name: rubocop-rspec
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: '2.0'
156
+ type: :development
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: '2.0'
149
163
  description:
150
164
  email:
151
165
  executables:
@@ -153,10 +167,10 @@ executables:
153
167
  extensions: []
154
168
  extra_rdoc_files: []
155
169
  files:
156
- - ".appveyor.yml"
170
+ - ".github/workflows/check.yml"
157
171
  - ".gitignore"
172
+ - ".pre-commit-hooks.yaml"
158
173
  - ".rubocop.yml"
159
- - ".travis.yml"
160
174
  - CHANGELOG.markdown
161
175
  - CONTRIBUTING.markdown
162
176
  - Gemfile
@@ -176,6 +190,8 @@ files:
176
190
  - lib/image_optim/cmd.rb
177
191
  - lib/image_optim/config.rb
178
192
  - lib/image_optim/configuration_error.rb
193
+ - lib/image_optim/elapsed_time.rb
194
+ - lib/image_optim/errors.rb
179
195
  - lib/image_optim/handler.rb
180
196
  - lib/image_optim/hash_helpers.rb
181
197
  - lib/image_optim/image_meta.rb
@@ -188,6 +204,7 @@ files:
188
204
  - lib/image_optim/runner/glob_helpers.rb
189
205
  - lib/image_optim/runner/option_parser.rb
190
206
  - lib/image_optim/space.rb
207
+ - lib/image_optim/timer.rb
191
208
  - lib/image_optim/true_false_nil.rb
192
209
  - lib/image_optim/worker.rb
193
210
  - lib/image_optim/worker/advpng.rb
@@ -198,6 +215,7 @@ files:
198
215
  - lib/image_optim/worker/jpegrecompress.rb
199
216
  - lib/image_optim/worker/jpegtran.rb
200
217
  - lib/image_optim/worker/optipng.rb
218
+ - lib/image_optim/worker/oxipng.rb
201
219
  - lib/image_optim/worker/pngcrush.rb
202
220
  - lib/image_optim/worker/pngout.rb
203
221
  - lib/image_optim/worker/pngquant.rb
@@ -214,6 +232,7 @@ files:
214
232
  - spec/image_optim/cache_spec.rb
215
233
  - spec/image_optim/cmd_spec.rb
216
234
  - spec/image_optim/config_spec.rb
235
+ - spec/image_optim/elapsed_time_spec.rb
217
236
  - spec/image_optim/handler_spec.rb
218
237
  - spec/image_optim/hash_helpers_spec.rb
219
238
  - spec/image_optim/image_meta_spec.rb
@@ -224,8 +243,10 @@ files:
224
243
  - spec/image_optim/runner/glob_helpers_spec.rb
225
244
  - spec/image_optim/runner/option_parser_spec.rb
226
245
  - spec/image_optim/space_spec.rb
246
+ - spec/image_optim/timer_spec.rb
227
247
  - spec/image_optim/worker/jpegrecompress_spec.rb
228
248
  - spec/image_optim/worker/optipng_spec.rb
249
+ - spec/image_optim/worker/oxipng_spec.rb
229
250
  - spec/image_optim/worker/pngquant_spec.rb
230
251
  - spec/image_optim/worker_spec.rb
231
252
  - spec/image_optim_spec.rb
@@ -264,7 +285,7 @@ licenses:
264
285
  metadata:
265
286
  bug_tracker_uri: https://github.com/toy/image_optim/issues
266
287
  changelog_uri: https://github.com/toy/image_optim/blob/master/CHANGELOG.markdown
267
- documentation_uri: https://www.rubydoc.info/gems/image_optim/0.28.0
288
+ documentation_uri: https://www.rubydoc.info/gems/image_optim/0.31.1
268
289
  source_code_uri: https://github.com/toy/image_optim
269
290
  post_install_message: |
270
291
  Rails image assets optimization is extracted into image_optim_rails gem
@@ -276,20 +297,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
276
297
  requirements:
277
298
  - - ">="
278
299
  - !ruby/object:Gem::Version
279
- version: '0'
300
+ version: 1.9.3
280
301
  required_rubygems_version: !ruby/object:Gem::Requirement
281
302
  requirements:
282
303
  - - ">="
283
304
  - !ruby/object:Gem::Version
284
305
  version: '0'
285
306
  requirements: []
286
- rubygems_version: 3.1.5
307
+ rubygems_version: 3.2.29
287
308
  signing_key:
288
309
  specification_version: 4
289
310
  summary: Command line tool and ruby interface to optimize (lossless compress, optionally
290
311
  lossy) jpeg, png, gif and svg images using external utilities (advpng, gifsicle,
291
- jhead, jpeg-recompress, jpegoptim, jpegrescan, jpegtran, optipng, pngcrush, pngout,
292
- pngquant, svgo)
312
+ jhead, jpeg-recompress, jpegoptim, jpegrescan, jpegtran, optipng, oxipng, pngcrush,
313
+ pngout, pngquant, svgo)
293
314
  test_files:
294
315
  - spec/image_optim/bin_resolver/comparable_condition_spec.rb
295
316
  - spec/image_optim/bin_resolver/simple_version_spec.rb
@@ -298,6 +319,7 @@ test_files:
298
319
  - spec/image_optim/cache_spec.rb
299
320
  - spec/image_optim/cmd_spec.rb
300
321
  - spec/image_optim/config_spec.rb
322
+ - spec/image_optim/elapsed_time_spec.rb
301
323
  - spec/image_optim/handler_spec.rb
302
324
  - spec/image_optim/hash_helpers_spec.rb
303
325
  - spec/image_optim/image_meta_spec.rb
@@ -308,8 +330,10 @@ test_files:
308
330
  - spec/image_optim/runner/glob_helpers_spec.rb
309
331
  - spec/image_optim/runner/option_parser_spec.rb
310
332
  - spec/image_optim/space_spec.rb
333
+ - spec/image_optim/timer_spec.rb
311
334
  - spec/image_optim/worker/jpegrecompress_spec.rb
312
335
  - spec/image_optim/worker/optipng_spec.rb
336
+ - spec/image_optim/worker/oxipng_spec.rb
313
337
  - spec/image_optim/worker/pngquant_spec.rb
314
338
  - spec/image_optim/worker_spec.rb
315
339
  - spec/image_optim_spec.rb
data/.appveyor.yml DELETED
@@ -1,53 +0,0 @@
1
- version: '{build}-{branch}'
2
- install:
3
- - mkdir tmp\bin || exit 0
4
- - set PATH=C:\Ruby25-x64\bin;%cd%\tmp\bin;%PATH%
5
- - ruby --version
6
- - gem --version
7
- - bundle package --all
8
-
9
- - ps: git --work-tree=tmp\bin checkout origin/windows-binaries -- '*.exe'
10
-
11
- - ps: | # svgo
12
- npm install -g svgo
13
-
14
- - ps: | # ImageMagick
15
- if ((-not (test-path tmp/bin/convert.exe)) -or (-not (test-path tmp/bin/compare.exe)) -or (-not (test-path tmp/bin/magic.xml))) {
16
- choco install -y imagemagick.tool
17
- cp C:\ProgramData\chocolatey\lib\imagemagick.tool\tools\convert.exe tmp\bin
18
- cp C:\ProgramData\chocolatey\lib\imagemagick.tool\tools\compare.exe tmp\bin
19
- cp C:\ProgramData\chocolatey\lib\imagemagick.tool\tools\magic.xml tmp\bin
20
- }
21
-
22
- - bundle exec image_optim --info --allow-lossy --no-pack
23
- cache:
24
- - tmp/bin
25
- build: off
26
- test_script:
27
- - ps: |
28
- $path = $env:Path
29
- $rubypaths = ls -Path C:\Ruby*\bin
30
- foreach ($rubypath in $rubypaths) {
31
- $env:Path = "$rubypath;" + $path
32
- ruby -e "abort unless RUBY_VERSION > '2.3'"
33
- if ($LASTEXITCODE -gt 0) {
34
- continue
35
- }
36
-
37
- echo "################################ $rubypath ################################"
38
- ruby --version
39
- gem --version
40
- bundle package --all
41
- bundle install --local -j4
42
- bundle exec rspec
43
- if ($LASTEXITCODE -gt 0) {
44
- exit 1
45
- }
46
- rm tmp/optimize_test -recurse -force
47
- cp spec/images tmp/optimize_test -recurse -force
48
- bundle exec image_optim --allow-lossy -r tmp/optimize_test
49
- if ($LASTEXITCODE -gt 0) {
50
- exit 1
51
- }
52
- }
53
- $env:Path = $path
data/.travis.yml DELETED
@@ -1,48 +0,0 @@
1
- sudo: false
2
- dist: trusty
3
- language: ruby
4
- cache:
5
- bundler: true
6
- directories:
7
- - $(npm root)
8
- - ~/bin
9
- rvm:
10
- - '1.9.3-p551'
11
- - '2.0.0-p648'
12
- - '2.1.10'
13
- - '2.2.10'
14
- - '2.3.8'
15
- - '2.4.10'
16
- - '2.5.8'
17
- - '2.6.6'
18
- - '2.7.2'
19
- - 'jruby-9.2.11.1'
20
- script:
21
- - bundle exec image_optim --info
22
- - bundle exec rspec
23
- before_install:
24
- - 'echo "gem: --no-ri --no-rdoc --no-document" > ~/.gemrc'
25
- - gem install rubygems-update || gem install rubygems-update --version '< 3'
26
- - update_rubygems
27
- - gem install bundler || gem install bundler --version '< 2'
28
- - nvm install stable
29
- - mkdir -p ~/bin
30
- - command -v svgo || npm install -g svgo
31
- - command -v pngout || curl -L "https://www.jonof.id.au/files/kenutils/pngout-20200115-linux.tar.gz" | tar -xz -C ~/bin --strip-components 2 --wildcards '*/amd64/pngout'
32
- matrix:
33
- include:
34
- - env: CODECLIMATE=1
35
- rvm: '2.4.10'
36
- after_success: bundle exec codeclimate-test-reporter
37
- - env: RUBOCOP=1
38
- rvm: '2.4.10'
39
- script: bundle exec rubocop
40
- before_install: gem update --system && gem install bundler
41
- - env: CHECK_RUBIES=1
42
- rvm: '2.4.10'
43
- script: bundle exec travis_check_rubies
44
- before_install: gem update --system && gem install bundler
45
- addons:
46
- code_climate:
47
- repo_token:
48
- secure: FDikT3JnOJHOAFSaKwVPB1VOphU0sSzAnzQ+YjSt9XFE+9uFQHth/j4rFoVoqALhCj+47trv6spwkbcSjGCVzm+87OI80GkLCCzNjDOz2W4sP9JWItVgS1VoWW+ioPxpLgpguTb3wutwKOUMEAf+40EX657ZiHumM7nNHrF+RCU=