image_optim 0.26.2 → 0.27.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.
- checksums.yaml +4 -4
- data/.appveyor.yml +9 -2
- data/.rubocop.yml +38 -10
- data/.travis.yml +19 -15
- data/CHANGELOG.markdown +21 -0
- data/Gemfile +3 -1
- data/LICENSE.txt +1 -1
- data/README.markdown +9 -3
- data/Vagrantfile +2 -0
- data/bin/image_optim +1 -0
- data/image_optim.gemspec +5 -7
- data/lib/image_optim.rb +5 -0
- data/lib/image_optim/bin_resolver.rb +5 -0
- data/lib/image_optim/bin_resolver/bin.rb +45 -19
- data/lib/image_optim/bin_resolver/comparable_condition.rb +3 -0
- data/lib/image_optim/bin_resolver/error.rb +2 -0
- data/lib/image_optim/bin_resolver/simple_version.rb +2 -0
- data/lib/image_optim/cache.rb +3 -0
- data/lib/image_optim/cache_path.rb +21 -2
- data/lib/image_optim/cmd.rb +2 -0
- data/lib/image_optim/config.rb +7 -1
- data/lib/image_optim/configuration_error.rb +2 -0
- data/lib/image_optim/handler.rb +4 -0
- data/lib/image_optim/hash_helpers.rb +2 -0
- data/lib/image_optim/image_meta.rb +2 -0
- data/lib/image_optim/non_negative_integer_range.rb +2 -0
- data/lib/image_optim/optimized_path.rb +3 -1
- data/lib/image_optim/option_definition.rb +2 -0
- data/lib/image_optim/option_helpers.rb +2 -0
- data/lib/image_optim/path.rb +30 -5
- data/lib/image_optim/runner.rb +3 -0
- data/lib/image_optim/runner/glob_helpers.rb +3 -1
- data/lib/image_optim/runner/option_parser.rb +4 -2
- data/lib/image_optim/space.rb +3 -1
- data/lib/image_optim/true_false_nil.rb +2 -0
- data/lib/image_optim/worker.rb +5 -0
- data/lib/image_optim/worker/advpng.rb +2 -0
- data/lib/image_optim/worker/class_methods.rb +5 -0
- data/lib/image_optim/worker/gifsicle.rb +2 -0
- data/lib/image_optim/worker/jhead.rb +4 -1
- data/lib/image_optim/worker/jpegoptim.rb +2 -0
- data/lib/image_optim/worker/jpegrecompress.rb +2 -0
- data/lib/image_optim/worker/jpegtran.rb +2 -0
- data/lib/image_optim/worker/optipng.rb +4 -2
- data/lib/image_optim/worker/pngcrush.rb +4 -2
- data/lib/image_optim/worker/pngout.rb +3 -0
- data/lib/image_optim/worker/pngquant.rb +2 -0
- data/lib/image_optim/worker/svgo.rb +2 -0
- data/script/update_worker_options_in_readme +3 -2
- data/script/worker_analysis +13 -3
- data/spec/image_optim/bin_resolver/comparable_condition_spec.rb +2 -0
- data/spec/image_optim/bin_resolver/simple_version_spec.rb +2 -0
- data/spec/image_optim/bin_resolver_spec.rb +4 -2
- data/spec/image_optim/cache_path_spec.rb +71 -26
- data/spec/image_optim/cache_spec.rb +4 -0
- data/spec/image_optim/cmd_spec.rb +2 -0
- data/spec/image_optim/config_spec.rb +2 -0
- data/spec/image_optim/handler_spec.rb +2 -0
- data/spec/image_optim/hash_helpers_spec.rb +2 -0
- data/spec/image_optim/image_meta_spec.rb +2 -0
- data/spec/image_optim/optimized_path_spec.rb +2 -0
- data/spec/image_optim/option_definition_spec.rb +2 -0
- data/spec/image_optim/option_helpers_spec.rb +2 -0
- data/spec/image_optim/path_spec.rb +65 -24
- data/spec/image_optim/runner/glob_helpers_spec.rb +2 -0
- data/spec/image_optim/runner/option_parser_spec.rb +2 -0
- data/spec/image_optim/space_spec.rb +13 -11
- data/spec/image_optim/worker/optipng_spec.rb +2 -0
- data/spec/image_optim/worker/pngquant_spec.rb +2 -0
- data/spec/image_optim/worker_spec.rb +2 -0
- data/spec/image_optim_spec.rb +7 -4
- data/spec/images/invisiblepixels/generate +1 -0
- data/spec/images/quant/generate +3 -2
- data/spec/spec_helper.rb +3 -0
- metadata +18 -13
@@ -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
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
}.each do |
|
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
|
data/spec/image_optim_spec.rb
CHANGED
@@ -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 =
|
25
|
-
|
26
|
-
|
27
|
-
|
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
|
data/spec/images/quant/generate
CHANGED
@@ -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
|
20
|
-
color = i * palette / (side
|
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
|
data/spec/spec_helper.rb
CHANGED
@@ -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.
|
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:
|
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.
|
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.
|
149
|
-
|
150
|
-
|
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:
|
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.
|
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
|
-
|
286
|
-
|
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,
|