image_optim 0.26.2 → 0.27.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.appveyor.yml +9 -2
  3. data/.rubocop.yml +38 -10
  4. data/.travis.yml +19 -15
  5. data/CHANGELOG.markdown +21 -0
  6. data/Gemfile +3 -1
  7. data/LICENSE.txt +1 -1
  8. data/README.markdown +9 -3
  9. data/Vagrantfile +2 -0
  10. data/bin/image_optim +1 -0
  11. data/image_optim.gemspec +5 -7
  12. data/lib/image_optim.rb +5 -0
  13. data/lib/image_optim/bin_resolver.rb +5 -0
  14. data/lib/image_optim/bin_resolver/bin.rb +45 -19
  15. data/lib/image_optim/bin_resolver/comparable_condition.rb +3 -0
  16. data/lib/image_optim/bin_resolver/error.rb +2 -0
  17. data/lib/image_optim/bin_resolver/simple_version.rb +2 -0
  18. data/lib/image_optim/cache.rb +3 -0
  19. data/lib/image_optim/cache_path.rb +21 -2
  20. data/lib/image_optim/cmd.rb +2 -0
  21. data/lib/image_optim/config.rb +7 -1
  22. data/lib/image_optim/configuration_error.rb +2 -0
  23. data/lib/image_optim/handler.rb +4 -0
  24. data/lib/image_optim/hash_helpers.rb +2 -0
  25. data/lib/image_optim/image_meta.rb +2 -0
  26. data/lib/image_optim/non_negative_integer_range.rb +2 -0
  27. data/lib/image_optim/optimized_path.rb +3 -1
  28. data/lib/image_optim/option_definition.rb +2 -0
  29. data/lib/image_optim/option_helpers.rb +2 -0
  30. data/lib/image_optim/path.rb +30 -5
  31. data/lib/image_optim/runner.rb +3 -0
  32. data/lib/image_optim/runner/glob_helpers.rb +3 -1
  33. data/lib/image_optim/runner/option_parser.rb +4 -2
  34. data/lib/image_optim/space.rb +3 -1
  35. data/lib/image_optim/true_false_nil.rb +2 -0
  36. data/lib/image_optim/worker.rb +5 -0
  37. data/lib/image_optim/worker/advpng.rb +2 -0
  38. data/lib/image_optim/worker/class_methods.rb +5 -0
  39. data/lib/image_optim/worker/gifsicle.rb +2 -0
  40. data/lib/image_optim/worker/jhead.rb +4 -1
  41. data/lib/image_optim/worker/jpegoptim.rb +2 -0
  42. data/lib/image_optim/worker/jpegrecompress.rb +2 -0
  43. data/lib/image_optim/worker/jpegtran.rb +2 -0
  44. data/lib/image_optim/worker/optipng.rb +4 -2
  45. data/lib/image_optim/worker/pngcrush.rb +4 -2
  46. data/lib/image_optim/worker/pngout.rb +3 -0
  47. data/lib/image_optim/worker/pngquant.rb +2 -0
  48. data/lib/image_optim/worker/svgo.rb +2 -0
  49. data/script/update_worker_options_in_readme +3 -2
  50. data/script/worker_analysis +13 -3
  51. data/spec/image_optim/bin_resolver/comparable_condition_spec.rb +2 -0
  52. data/spec/image_optim/bin_resolver/simple_version_spec.rb +2 -0
  53. data/spec/image_optim/bin_resolver_spec.rb +4 -2
  54. data/spec/image_optim/cache_path_spec.rb +71 -26
  55. data/spec/image_optim/cache_spec.rb +4 -0
  56. data/spec/image_optim/cmd_spec.rb +2 -0
  57. data/spec/image_optim/config_spec.rb +2 -0
  58. data/spec/image_optim/handler_spec.rb +2 -0
  59. data/spec/image_optim/hash_helpers_spec.rb +2 -0
  60. data/spec/image_optim/image_meta_spec.rb +2 -0
  61. data/spec/image_optim/optimized_path_spec.rb +2 -0
  62. data/spec/image_optim/option_definition_spec.rb +2 -0
  63. data/spec/image_optim/option_helpers_spec.rb +2 -0
  64. data/spec/image_optim/path_spec.rb +65 -24
  65. data/spec/image_optim/runner/glob_helpers_spec.rb +2 -0
  66. data/spec/image_optim/runner/option_parser_spec.rb +2 -0
  67. data/spec/image_optim/space_spec.rb +13 -11
  68. data/spec/image_optim/worker/optipng_spec.rb +2 -0
  69. data/spec/image_optim/worker/pngquant_spec.rb +2 -0
  70. data/spec/image_optim/worker_spec.rb +2 -0
  71. data/spec/image_optim_spec.rb +7 -4
  72. data/spec/images/invisiblepixels/generate +1 -0
  73. data/spec/images/quant/generate +3 -2
  74. data/spec/spec_helper.rb +3 -0
  75. metadata +18 -13
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'image_optim/runner/glob_helpers'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'image_optim/runner/option_parser'
3
5
 
@@ -1,20 +1,22 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'image_optim/space'
3
5
 
4
6
  describe ImageOptim::Space do
5
7
  describe '.space' do
6
8
  {
7
- 0 => ' ',
8
- 1 => ' 1B',
9
- 10 => ' 10B',
10
- 100 => ' 100B',
11
- 1_000 => ' 1000B',
12
- 10_000 => ' 9.8K',
13
- 100_000 => ' 97.7K',
14
- 1_000_000 => '976.6K',
15
- 10_000_000 => ' 9.5M',
16
- 100_000_000 => ' 95.4M',
17
- }.each do |size, space|
9
+ ' ' => 0,
10
+ ' 1B' => 1,
11
+ ' 10B' => 10,
12
+ ' 100B' => 100,
13
+ ' 1000B' => 1_000,
14
+ ' 9.8K' => 10_000,
15
+ ' 97.7K' => 100_000,
16
+ '976.6K' => 1_000_000,
17
+ ' 9.5M' => 10_000_000,
18
+ ' 95.4M' => 100_000_000,
19
+ }.each do |space, size|
18
20
  it "converts #{size} to #{space}" do
19
21
  expect(described_class.space(size)).to eq(space)
20
22
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'image_optim/worker/optipng'
3
5
  require 'image_optim/path'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'image_optim/worker/pngquant'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'image_optim/worker'
3
5
  require 'image_optim/bin_resolver'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'image_optim'
3
5
  require 'image_optim/cmd'
@@ -21,10 +23,11 @@ describe ImageOptim do
21
23
  stub_const('Cmd', ImageOptim::Cmd)
22
24
  end
23
25
 
24
- isolated_options_base = {:skip_missing_workers => false}
25
- ImageOptim::Worker.klasses.each do |klass|
26
- isolated_options_base[klass.bin_sym] = false
27
- end
26
+ isolated_options_base = Hash[
27
+ ImageOptim::Worker.klasses.map do |klass|
28
+ [klass.bin_sym, false]
29
+ end
30
+ ].merge(:skip_missing_workers => false)
28
31
 
29
32
  ImageOptim::Worker.klasses.each do |worker_klass|
30
33
  describe "#{worker_klass.bin_sym} worker" do
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  Dir.chdir(File.dirname(__FILE__))
4
5
 
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  Dir.chdir(File.dirname(__FILE__))
4
5
 
@@ -16,8 +17,8 @@ palettes.each do |palette|
16
17
  rgb:-
17
18
  PNG24:#{palette}.png
18
19
  ].shelljoin, 'w') do |f|
19
- (side * side).times do |i|
20
- color = i * palette / (side * side) * 0x10000 / palette
20
+ (side**2).times do |i|
21
+ color = i * palette / (side**2) * 0x10000 / palette
21
22
  f << [color / 0x100, color % 0x100, 0].pack('C*')
22
23
  end
23
24
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  if ENV['CODECLIMATE']
2
4
  require 'simplecov'
3
5
  SimpleCov.start
@@ -53,6 +55,7 @@ def mepp(image_a, image_b)
53
55
  unless [0, 1].include?($CHILD_STATUS.exitstatus)
54
56
  fail "compare #{image_a} with #{image_b} failed with `#{output}`"
55
57
  end
58
+
56
59
  num_r = '\d+(?:\.\d+(?:[eE][-+]?\d+)?)?'
57
60
  output[/\((#{num_r}), #{num_r}\)/, 1].to_f
58
61
  end
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.26.2
4
+ version: 0.27.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Kuchin
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-15 00:00:00.000000000 Z
11
+ date: 2020-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fspath
@@ -138,16 +138,22 @@ dependencies:
138
138
  requirements:
139
139
  - - "~>"
140
140
  - !ruby/object:Gem::Version
141
- version: '0.58'
141
+ version: '0.59'
142
+ - - "!="
143
+ - !ruby/object:Gem::Version
144
+ version: 0.78.0
142
145
  type: :development
143
146
  prerelease: false
144
147
  version_requirements: !ruby/object:Gem::Requirement
145
148
  requirements:
146
149
  - - "~>"
147
150
  - !ruby/object:Gem::Version
148
- version: '0.58'
149
- description:
150
- email:
151
+ version: '0.59'
152
+ - - "!="
153
+ - !ruby/object:Gem::Version
154
+ version: 0.78.0
155
+ description:
156
+ email:
151
157
  executables:
152
158
  - image_optim
153
159
  extensions: []
@@ -257,13 +263,13 @@ files:
257
263
  - spec/spec_helper.rb
258
264
  - vendor/jpegrescan
259
265
  - vendor/jpegrescan.bat
260
- homepage: http://github.com/toy/image_optim
266
+ homepage: https://github.com/toy/image_optim
261
267
  licenses:
262
268
  - MIT
263
269
  metadata:
264
270
  bug_tracker_uri: https://github.com/toy/image_optim/issues
265
- changelog_uri: https://github.com/toy/image_optim/CHANGELOG.markdown
266
- documentation_uri: https://www.rubydoc.info/gems/image_optim/0.26.2
271
+ changelog_uri: https://github.com/toy/image_optim/blob/master/CHANGELOG.markdown
272
+ documentation_uri: https://www.rubydoc.info/gems/image_optim/0.27.1
267
273
  source_code_uri: https://github.com/toy/image_optim
268
274
  post_install_message: |
269
275
  Rails image assets optimization is extracted into image_optim_rails gem
@@ -282,9 +288,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
282
288
  - !ruby/object:Gem::Version
283
289
  version: '0'
284
290
  requirements: []
285
- rubyforge_project: image_optim
286
- rubygems_version: 2.7.7
287
- signing_key:
291
+ rubygems_version: 3.1.4
292
+ signing_key:
288
293
  specification_version: 4
289
294
  summary: Command line tool and ruby interface to optimize (lossless compress, optionally
290
295
  lossy) jpeg, png, gif and svg images using external utilities (advpng, gifsicle,