image_optim_rails 0.1.0 → 0.2.0
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 +13 -5
- data/CHANGELOG.markdown +11 -0
- data/README.markdown +11 -4
- data/image_optim_rails.gemspec +1 -1
- data/lib/image_optim/railtie.rb +13 -2
- data/spec/image_optim/railtie_spec.rb +24 -9
- data/spec/spec_helper.rb +3 -4
- metadata +21 -33
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NzY1ZDA5MDRkZGQxN2ExYmRlOGE4MzUxZWZlNjZiNmRiY2QxMDlkYg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YjFiYzEwZDY1ZWNhMzExM2E3OGZhZDg0MGRjODVhOWRiOTE5M2E2Yg==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OTY4ZDFkZWNkYmMxZWQzYTRmNWE4YjlkMTliYzk3ZmVmOGJkNGZlM2Q2NTlj
|
10
|
+
ZTJmZjJjMDc1ZjkwYTk2MmFkZGU1MWQ5YmNjOWYzMmE2MWQ0MjgxODZmOGI4
|
11
|
+
ZWMzNDE5MDNjNDI4MDYyOGYyY2NkMTIzMjM2MDRhOWViYzNlYWU=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YjYzNDVmMjMxYzM5N2NmOWYwYzFiY2MxNzk0NWY4NTYyMGU4MWE0YjdhNjcw
|
14
|
+
ZmM0YTdiODE1OTNhZDVmZTM2MWEwMGFiMWFkYWY0YzQxYWNmZTI3MTY2NWEz
|
15
|
+
NTU1MWJkNTE1NWYyYjlmZDM0MzA0ZDI5ZjUxZmFjMDlhMGRiZDM=
|
data/CHANGELOG.markdown
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# ChangeLog
|
2
|
+
|
3
|
+
## unreleased
|
4
|
+
|
5
|
+
## v0.2.0 (2016-10-03)
|
6
|
+
|
7
|
+
* Use railsy config paths `config/image_optim.yml` and `config/image_optim/#{RAILS_ENV}.yml` and cache to `tmp/cache/image_optim` by default [@toy](https://github.com/toy)
|
8
|
+
|
9
|
+
## v0.1.0 (2016-08-14)
|
10
|
+
|
11
|
+
* Extracted from [image_optim gem](https://github.com/toy/image_optim) [toy/image_optim#127](https://github.com/toy/image_optim/issues/127) [@toy](https://github.com/toy)
|
data/README.markdown
CHANGED
@@ -15,13 +15,13 @@ Options and instructions for getting binaries can be found in [image_optim readm
|
|
15
15
|
Add to your `Gemfile`:
|
16
16
|
|
17
17
|
```ruby
|
18
|
-
gem '
|
18
|
+
gem 'image_optim_rails'
|
19
19
|
```
|
20
20
|
|
21
21
|
With [`image_optim_pack`](https://github.com/toy/image_optim_pack):
|
22
22
|
|
23
23
|
```ruby
|
24
|
-
gem '
|
24
|
+
gem 'image_optim_rails'
|
25
25
|
gem 'image_optim_pack'
|
26
26
|
```
|
27
27
|
|
@@ -34,11 +34,18 @@ You can provide options for image_optim used for preprocessor through config:
|
|
34
34
|
```ruby
|
35
35
|
config.assets.image_optim.nice = 20
|
36
36
|
config.assets.image_optim.svgo = false
|
37
|
+
config.assets.image_optim.gifsicle.careful = true
|
37
38
|
```
|
38
39
|
|
39
|
-
|
40
|
+
Or through config files `config/image_optim.yml` and `config/image_optim/#{RAILS_ENV}.yml`.
|
40
41
|
|
41
|
-
|
42
|
+
Caching is enabled by default in directory `tmp/cache/image_optim`.
|
43
|
+
|
44
|
+
Check all available options in [options section of image_optim](https://github.com/toy/image_optim#options).
|
45
|
+
|
46
|
+
## ChangeLog
|
47
|
+
|
48
|
+
In separate file [CHANGELOG.markdown](CHANGELOG.markdown).
|
42
49
|
|
43
50
|
## Copyright
|
44
51
|
|
data/image_optim_rails.gemspec
CHANGED
data/lib/image_optim/railtie.rb
CHANGED
@@ -18,6 +18,7 @@ class ImageOptim
|
|
18
18
|
hash[key] = ActiveSupport::OrderedOptions.new
|
19
19
|
end
|
20
20
|
end
|
21
|
+
app.config.assets.image_optim.merge!(default_options)
|
21
22
|
end
|
22
23
|
|
23
24
|
initializer 'image_optim.initializer' do |app|
|
@@ -41,12 +42,22 @@ class ImageOptim
|
|
41
42
|
|
42
43
|
def options(app)
|
43
44
|
if app.config.assets.image_optim == true
|
44
|
-
|
45
|
+
default_options
|
45
46
|
else
|
46
|
-
app.config.assets.image_optim ||
|
47
|
+
app.config.assets.image_optim || default_options
|
47
48
|
end
|
48
49
|
end
|
49
50
|
|
51
|
+
def default_options
|
52
|
+
{
|
53
|
+
:config_paths => [
|
54
|
+
'config/image_optim.yml',
|
55
|
+
"config/image_optim/#{Rails.env}.yml",
|
56
|
+
],
|
57
|
+
:cache_dir => 'tmp/cache/image_optim',
|
58
|
+
}
|
59
|
+
end
|
60
|
+
|
50
61
|
def optimize_image_data(data)
|
51
62
|
@image_optim.optimize_image_data(data) || data
|
52
63
|
end
|
@@ -63,20 +63,35 @@ describe 'ImageOptim::Railtie' do
|
|
63
63
|
end
|
64
64
|
|
65
65
|
describe 'options' do
|
66
|
-
|
67
|
-
|
66
|
+
let(:default_options) do
|
67
|
+
{
|
68
|
+
:config_paths => [
|
69
|
+
'config/image_optim.yml',
|
70
|
+
'config/image_optim/xxx.yml',
|
71
|
+
],
|
72
|
+
:cache_dir => 'tmp/cache/image_optim',
|
73
|
+
}
|
74
|
+
end
|
75
|
+
|
76
|
+
before do
|
77
|
+
allow(Rails).to receive(:env).
|
78
|
+
and_return(ActiveSupport::StringInquirer.new('xxx'))
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'initializes with defaults' do
|
82
|
+
expect(ImageOptim).to receive(:new).with(default_options)
|
68
83
|
init_rails_app
|
69
84
|
end
|
70
85
|
|
71
|
-
it 'initializes with
|
72
|
-
expect(ImageOptim).to receive(:new).with(
|
86
|
+
it 'initializes with defaults if config.assets.image_optim is true' do
|
87
|
+
expect(ImageOptim).to receive(:new).with(default_options)
|
73
88
|
init_rails_app do |config|
|
74
89
|
config.assets.image_optim = true
|
75
90
|
end
|
76
91
|
end
|
77
92
|
|
78
|
-
it 'initializes with
|
79
|
-
expect(ImageOptim).to receive(:new).with(
|
93
|
+
it 'initializes with defaults if config.assets.image_optim is nil' do
|
94
|
+
expect(ImageOptim).to receive(:new).with(default_options)
|
80
95
|
init_rails_app do |config|
|
81
96
|
config.assets.image_optim = nil
|
82
97
|
end
|
@@ -92,7 +107,7 @@ describe 'ImageOptim::Railtie' do
|
|
92
107
|
|
93
108
|
it 'is possible to set individual options' do
|
94
109
|
hash = {:config_paths => 'config/image_optim.yml'}
|
95
|
-
expect(ImageOptim).to receive(:new).with(hash)
|
110
|
+
expect(ImageOptim).to receive(:new).with(default_options.merge(hash))
|
96
111
|
init_rails_app do |config|
|
97
112
|
config.assets.image_optim.config_paths = 'config/image_optim.yml'
|
98
113
|
end
|
@@ -100,7 +115,7 @@ describe 'ImageOptim::Railtie' do
|
|
100
115
|
|
101
116
|
it 'is possible to set individual worker options' do
|
102
117
|
hash = {:advpng => {:level => 3}}
|
103
|
-
expect(ImageOptim).to receive(:new).with(hash)
|
118
|
+
expect(ImageOptim).to receive(:new).with(default_options.merge(hash))
|
104
119
|
init_rails_app do |config|
|
105
120
|
expect(config.assets.image_optim.advpng).to eq({})
|
106
121
|
config.assets.image_optim.advpng.level = 3
|
@@ -108,7 +123,7 @@ describe 'ImageOptim::Railtie' do
|
|
108
123
|
end
|
109
124
|
|
110
125
|
it 'is not possible to set unknown worker options' do
|
111
|
-
expect(ImageOptim).to receive(:new).with(
|
126
|
+
expect(ImageOptim).to receive(:new).with(default_options)
|
112
127
|
init_rails_app do |config|
|
113
128
|
expect(config.assets.image_optim.unknown).to eq(nil)
|
114
129
|
expect do
|
data/spec/spec_helper.rb
CHANGED
@@ -46,12 +46,11 @@ def mepp(image_a, image_b)
|
|
46
46
|
2>&1
|
47
47
|
].join(' ')
|
48
48
|
output = ImageOptim::Cmd.capture(command)
|
49
|
-
|
50
|
-
num_r = '\d+(?:\.\d+(?:[eE][-+]?\d+)?)?'
|
51
|
-
output[/\((#{num_r}), #{num_r}\)/, 1].to_f
|
52
|
-
else
|
49
|
+
unless [0, 1].include?($CHILD_STATUS.exitstatus)
|
53
50
|
fail "compare #{image_a} with #{image_b} failed with `#{output}`"
|
54
51
|
end
|
52
|
+
num_r = '\d+(?:\.\d+(?:[eE][-+]?\d+)?)?'
|
53
|
+
output[/\((#{num_r}), #{num_r}\)/, 1].to_f
|
55
54
|
end
|
56
55
|
|
57
56
|
RSpec::Matchers.define :be_smaller_than do |expected|
|
metadata
CHANGED
@@ -1,114 +1,101 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: image_optim_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Kuchin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: image_optim
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.24.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.24.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rails
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ! '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ! '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sprockets
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ! '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ! '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: image_optim_pack
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0.2'
|
62
|
-
- -
|
62
|
+
- - ! '>='
|
63
63
|
- !ruby/object:Gem::Version
|
64
64
|
version: 0.2.2
|
65
65
|
type: :development
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
|
-
- -
|
69
|
+
- - ~>
|
70
70
|
- !ruby/object:Gem::Version
|
71
71
|
version: '0.2'
|
72
|
-
- -
|
72
|
+
- - ! '>='
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: 0.2.2
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: rspec
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
|
-
- -
|
79
|
+
- - ~>
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: '3.0'
|
82
82
|
type: :development
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
|
-
- -
|
86
|
+
- - ~>
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '3.0'
|
89
|
-
- !ruby/object:Gem::Dependency
|
90
|
-
name: rubocop
|
91
|
-
requirement: !ruby/object:Gem::Requirement
|
92
|
-
requirements:
|
93
|
-
- - "~>"
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: '0.37'
|
96
|
-
type: :development
|
97
|
-
prerelease: false
|
98
|
-
version_requirements: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - "~>"
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '0.37'
|
103
89
|
description:
|
104
90
|
email:
|
105
91
|
executables: []
|
106
92
|
extensions: []
|
107
93
|
extra_rdoc_files: []
|
108
94
|
files:
|
109
|
-
-
|
110
|
-
-
|
111
|
-
-
|
95
|
+
- .gitignore
|
96
|
+
- .rubocop.yml
|
97
|
+
- .travis.yml
|
98
|
+
- CHANGELOG.markdown
|
112
99
|
- Gemfile
|
113
100
|
- LICENSE.txt
|
114
101
|
- README.markdown
|
@@ -127,12 +114,12 @@ require_paths:
|
|
127
114
|
- lib
|
128
115
|
required_ruby_version: !ruby/object:Gem::Requirement
|
129
116
|
requirements:
|
130
|
-
- -
|
117
|
+
- - ! '>='
|
131
118
|
- !ruby/object:Gem::Version
|
132
119
|
version: '0'
|
133
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
121
|
requirements:
|
135
|
-
- -
|
122
|
+
- - ! '>='
|
136
123
|
- !ruby/object:Gem::Version
|
137
124
|
version: '0'
|
138
125
|
requirements: []
|
@@ -144,3 +131,4 @@ summary: Optimize image assets using image_optim
|
|
144
131
|
test_files:
|
145
132
|
- spec/image_optim/railtie_spec.rb
|
146
133
|
- spec/spec_helper.rb
|
134
|
+
has_rdoc:
|