image_optim 0.28.0 → 0.31.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.
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=