ruby-thumbor 4.0.1 → 4.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a2287dac874740603da7e602a8d88ebf51eabdb2c185cf9a30d661937c67456
4
- data.tar.gz: '078d41472dbc83cea5236a8afd486041f7fced642c833bb6e7616e1a915bcbdd'
3
+ metadata.gz: 1c4062846a0e57d282db5c12f75de306be194a7f85daf6a95b4ad7a45f359590
4
+ data.tar.gz: c81eecd67d7d8c1d1a210b8061cddab4c36d77562861f67f781ea9734ed07164
5
5
  SHA512:
6
- metadata.gz: 80f44f3e834f604c09acf580695d58ea79bf0eef228f402350c49189608403b10e75d566de548d85b6d81e1a68051b19b40af6d1cbe4d0405218d62e38743469
7
- data.tar.gz: c524c85c1eec047598f2013d650012278e96e710bce3c2e633a55b9a96496bee3324e34cd7bc59587a4cf9fbcb8dea12a18046b2c88a05c6027608b8af43c765
6
+ metadata.gz: a261f5a06ace027bb296423c3c5e6b63898a107dbb267ac5f90737db9008794e7e2ebc701f3cd7cdc574aab5d48c66d27a555497ca19e4a9ee79fae7757f00e2
7
+ data.tar.gz: d7848f2f8181d33cf077cde11feae042bccf9d9de397c5f79893401380a046863d72affdf72815b0e4700097670d54d11607ba6b1ffe108f96706d6ba6edcbc5
data/README.md CHANGED
@@ -1,4 +1,8 @@
1
- # ruby-thumbor [![Github Actions](https://github.com/thumbor/ruby-thumbor/actions/workflows/main.yml/badge.svg)](https://github.com/thumbor/ruby-thumbor/actions) [![Gem Version](https://badge.fury.io/rb/ruby-thumbor.svg)](https://rubygems.org/gems/ruby-thumbor) [![Coverage Status](https://coveralls.io/repos/thumbor/ruby-thumbor/badge.svg?branch=master&service=github)](https://coveralls.io/github/thumbor/ruby-thumbor?branch=master)
1
+ # ruby-thumbor
2
+ [![Github Actions - tests](https://github.com/thumbor/ruby-thumbor/actions/workflows/test.yml/badge.svg)](https://github.com/thumbor/ruby-thumbor/actions)
3
+ [![Github Actions - rubocop](https://github.com/thumbor/ruby-thumbor/actions/workflows/rubocop-analysis.yml/badge.svg)](https://github.com/thumbor/ruby-thumbor/actions)
4
+ [![Gem Version](https://badge.fury.io/rb/ruby-thumbor.svg)](https://rubygems.org/gems/ruby-thumbor)
5
+ [![Coverage Status](https://coveralls.io/repos/thumbor/ruby-thumbor/badge.svg?branch=master&service=github)](https://coveralls.io/github/thumbor/ruby-thumbor?branch=master)
2
6
 
3
7
  ruby-thumbor is the Ruby client to the thumbor imaging service (http://github.com/thumbor/thumbor).
4
8
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Thumbor
4
- VERSION = '4.0.1'
4
+ VERSION = '4.0.2'
5
5
  end
@@ -5,315 +5,315 @@ require 'json'
5
5
  require 'ruby-thumbor'
6
6
 
7
7
  describe Thumbor::Cascade do
8
+ subject(:cascade_instance) { described_class.new key, image_url }
9
+
8
10
  let(:image_url) { 'my.domain.com/some/image/url.jpg' }
9
11
  let(:key) { 'my-security-key' }
10
12
 
11
- subject { Thumbor::Cascade.new key, image_url }
12
-
13
- it 'should raise an error' do
14
- expect { subject.god_of_war_crop }.to raise_error(NoMethodError)
13
+ it 'raises an error' do
14
+ expect { cascade_instance.god_of_war_crop }.to raise_error(NoMethodError)
15
15
  end
16
16
 
17
- it 'should respond to filter methods' do
18
- expect(subject.respond_to?('quality_filter')).to be_truthy
17
+ it 'responds to filter methods' do
18
+ expect(cascade_instance).to respond_to('quality_filter')
19
19
  end
20
20
 
21
21
  describe '#generate' do
22
- it 'should create an unsafe url' do
23
- url = Thumbor::Cascade.new(nil, image_url).width(300).height(200).generate
22
+ it 'creates an unsafe url' do
23
+ url = described_class.new(nil, image_url).width(300).height(200).generate
24
24
  expect(url).to eq '/unsafe/300x200/my.domain.com/some/image/url.jpg'
25
25
  end
26
26
 
27
- it 'should create an url with debug' do
28
- url = subject.debug(true).height(200).generate
27
+ it 'creates an url with debug' do
28
+ url = cascade_instance.debug(true).height(200).generate
29
29
  expect(url).to eq '/5_eX4HHQYk81HQVkc1gBIAvPbLo=/debug/0x200/my.domain.com/some/image/url.jpg'
30
30
  end
31
31
 
32
- it 'should create a new instance passing key and keep it' do
33
- url = subject.width(300).height(200).generate
32
+ it 'creates a new instance with width and height' do
33
+ url = cascade_instance.width(300).height(200).generate
34
34
  expect(url).to eq '/TQfyd3H36Z3srcNcLOYiM05YNO8=/300x200/my.domain.com/some/image/url.jpg'
35
35
  end
36
36
 
37
- it 'should be able to change the Thumbor key' do
38
- url1 = subject.width(300).height(200).generate
39
- url2 = Thumbor::Cascade.new('another-thumbor-key', image_url).width(300).height(200).generate
37
+ it 'is able to change the Thumbor key' do
38
+ url1 = cascade_instance.width(300).height(200).generate
39
+ url2 = described_class.new('another-thumbor-key', image_url).width(300).height(200).generate
40
40
  expect(url1).not_to eq url2
41
41
  end
42
42
 
43
- it 'should create a new instance passing key and keep it' do
44
- url = subject.width(300).height(200).meta(true).generate
43
+ it 'creates a new instance with width, height and meta' do
44
+ url = cascade_instance.width(300).height(200).meta(true).generate
45
45
  expect(url).to eq '/YBQEWd3g_WRMnVEG73zfzcr8Zj0=/meta/300x200/my.domain.com/some/image/url.jpg'
46
46
  end
47
47
 
48
- it 'should create a new instance passing key and keep it' do
49
- url = subject.width(300).height(200).meta(true).smart(true).generate
48
+ it 'creates a new instance with width, height, meta and smart' do
49
+ url = cascade_instance.width(300).height(200).meta(true).smart(true).generate
50
50
  expect(url).to eq '/jP89J0qOWHgPlm_lOA28GtOh5GU=/meta/300x200/smart/my.domain.com/some/image/url.jpg'
51
51
  end
52
52
 
53
- it 'should create a new instance passing key and keep it' do
54
- url = subject.width(300).height(200).meta(true).smart(true).fit_in(true).generate
53
+ it 'creates a new instance with width, height, meta, smart and fit_in' do
54
+ url = cascade_instance.width(300).height(200).meta(true).smart(true).fit_in(true).generate
55
55
  expect(url).to eq '/zrrOh_TtTs4kiLLEQq1w4bcTYdc=/meta/fit-in/300x200/smart/my.domain.com/some/image/url.jpg'
56
56
  end
57
57
 
58
- it 'should create a new instance passing key and keep it' do
59
- url = subject.width(300).height(200).meta(true).smart(true).fit_in(true).flip(true).generate
58
+ it 'creates a new instance with width, height, meta, smart, fit_in and flip' do
59
+ url = cascade_instance.width(300).height(200).meta(true).smart(true).fit_in(true).flip(true).generate
60
60
  expect(url).to eq '/4t1XK1KH43cOb1QJ9tU00-W2_k8=/meta/fit-in/-300x200/smart/my.domain.com/some/image/url.jpg'
61
61
  end
62
62
 
63
- it 'should create a new instance passing key and keep it' do
64
- url = subject.width(300).height(200).meta(true).smart(true).fit_in(true).flip(true).flop(true).generate
63
+ it 'creates a new instance with width, height, meta, smart, fit_in, flip and flop' do
64
+ url = cascade_instance.width(300).height(200).meta(true).smart(true).fit_in(true).flip(true).flop(true).generate
65
65
  expect(url).to eq '/HJnvjZU69PkPOhyZGu-Z3Uc_W_A=/meta/fit-in/-300x-200/smart/my.domain.com/some/image/url.jpg'
66
66
  end
67
67
 
68
- it 'should create a new instance passing key and keep it' do
69
- url = subject.quality_filter(20).brightness_filter(10).generate
68
+ it 'creates a new instance with quality and brigthness filter' do
69
+ url = cascade_instance.quality_filter(20).brightness_filter(10).generate
70
70
  expect(url).to eq '/q0DiFg-5-eFZIqyN3lRoCvg2K0s=/filters:quality(20):brightness(10)/my.domain.com/some/image/url.jpg'
71
71
  end
72
72
 
73
- it 'should return just the image hash if no arguments passed' do
74
- url = subject.generate
73
+ it 'returns just the image hash if no arguments passed' do
74
+ url = cascade_instance.generate
75
75
  expect(url).to eq '/964rCTkAEDtvjy_a572k7kRa0SU=/my.domain.com/some/image/url.jpg'
76
76
  end
77
77
 
78
- it 'should raise if no image passed' do
79
- expect { Thumbor::Cascade.new.generate }.to raise_error(RuntimeError)
78
+ it 'raises if no image passed' do
79
+ expect { described_class.new.generate }.to raise_error(RuntimeError)
80
80
  end
81
81
 
82
- it 'should return proper url for width-only' do
83
- url = subject.width(300).generate
82
+ it 'returns proper url for width-only' do
83
+ url = cascade_instance.width(300).generate
84
84
  expect(url).to eq '/eFwrBWryxtRw9hDSbQPhi5iLpo8=/300x0/my.domain.com/some/image/url.jpg'
85
85
  end
86
86
 
87
- it 'should return proper url for height-only' do
88
- url = subject.height(300).generate
87
+ it 'returns proper url for height-only' do
88
+ url = cascade_instance.height(300).generate
89
89
  expect(url).to eq '/-VGIgp7g8cMKcfF2gFK9ZpmB_5w=/0x300/my.domain.com/some/image/url.jpg'
90
90
  end
91
91
 
92
- it 'should return proper url for width and height' do
93
- url = subject.width(200).height(300).generate
92
+ it 'returns proper url for width and height' do
93
+ url = cascade_instance.width(200).height(300).generate
94
94
  expect(url).to eq '/TrM0qqfcivb6VxS3Hxlxn43W21k=/200x300/my.domain.com/some/image/url.jpg'
95
95
  end
96
96
 
97
- it 'should return proper smart url' do
98
- url = subject.width(200).height(300).smart(true).generate
97
+ it 'returns proper smart url' do
98
+ url = cascade_instance.width(200).height(300).smart(true).generate
99
99
  expect(url).to eq '/hdzhxXzK45DzNTru5urV6x6xxSs=/200x300/smart/my.domain.com/some/image/url.jpg'
100
100
  end
101
101
 
102
- it 'should return proper fit-in url' do
103
- url = subject.width(200).height(300).fit_in(true).generate
102
+ it 'returns proper fit-in url' do
103
+ url = cascade_instance.width(200).height(300).fit_in(true).generate
104
104
  expect(url).to eq '/LOv6ArMOJA2VRpfMQjjs4xSyZpM=/fit-in/200x300/my.domain.com/some/image/url.jpg'
105
105
  end
106
106
 
107
- it 'should return proper adaptive-fit-in url' do
108
- url = subject.width(200).height(300).adaptive_fit_in(true).generate
107
+ it 'returns proper adaptive-fit-in url' do
108
+ url = cascade_instance.width(200).height(300).adaptive_fit_in(true).generate
109
109
  expect(url).to eq '/V2xmSmQZm4i5-0Flx8iuRtawOkg=/adaptive-fit-in/200x300/my.domain.com/some/image/url.jpg'
110
110
  end
111
111
 
112
- it 'should return proper full-fit-in url' do
113
- url = subject.width(200).height(300).full_fit_in(true).generate
112
+ it 'returns proper full-fit-in url' do
113
+ url = cascade_instance.width(200).height(300).full_fit_in(true).generate
114
114
  expect(url).to eq '/geXhR7ZFxztQTsKzmkDxYCX-HHg=/full-fit-in/200x300/my.domain.com/some/image/url.jpg'
115
115
  end
116
116
 
117
- it 'should return proper adaptive-full-fit-in url' do
118
- url = subject.width(200).height(300).adaptive_full_fit_in(true).generate
117
+ it 'returns proper adaptive-full-fit-in url' do
118
+ url = cascade_instance.width(200).height(300).adaptive_full_fit_in(true).generate
119
119
  expect(url).to eq '/jlUfjdC-6rG6jmuHgFp6eKgPy2g=/adaptive-full-fit-in/200x300/my.domain.com/some/image/url.jpg'
120
120
  end
121
121
 
122
122
  %i[fit_in full_fit_in].each do |fit|
123
- it "should raise error when using #{fit} without width or height" do
124
- subject.send(fit, true)
125
- expect { subject.generate }.to raise_error(ArgumentError)
123
+ it "raises error when using #{fit} without width or height" do
124
+ cascade_instance.send(fit, true)
125
+ expect { cascade_instance.generate }.to raise_error(ArgumentError)
126
126
  end
127
127
  end
128
128
 
129
- it 'should return proper flip url if no width and height' do
130
- url = subject.flip(true).generate
129
+ it 'returns proper flip url if no width and height' do
130
+ url = cascade_instance.flip(true).generate
131
131
  expect(url).to eq '/rlI4clPR-p-PR2QAxj5ZWiTfvH4=/-0x0/my.domain.com/some/image/url.jpg'
132
132
  end
133
133
 
134
- it 'should return proper flop url if no width and height' do
135
- url = subject.flop(true).generate
134
+ it 'returns proper flop url if no width and height' do
135
+ url = cascade_instance.flop(true).generate
136
136
  expect(url).to eq '/-4dmGj-TwIEqTAL9_9yEqUM8cks=/0x-0/my.domain.com/some/image/url.jpg'
137
137
  end
138
138
 
139
- it 'should return proper flip-flop url if no width and height' do
140
- url = subject.flip(true).flop(true).generate
139
+ it 'returns proper flip-flop url if no width and height' do
140
+ url = cascade_instance.flip(true).flop(true).generate
141
141
  expect(url).to eq '/FnMxpQMmxiMpdG219Dsj8pD_4Xc=/-0x-0/my.domain.com/some/image/url.jpg'
142
142
  end
143
143
 
144
- it 'should return proper flip url if width' do
145
- url = subject.width(300).flip(true).generate
144
+ it 'returns proper flip url if width' do
145
+ url = cascade_instance.width(300).flip(true).generate
146
146
  expect(url).to eq '/ccr2PoSYcTEGL4_Wzt4u3wWVRKU=/-300x0/my.domain.com/some/image/url.jpg'
147
147
  end
148
148
 
149
- it 'should return proper flop url if height' do
150
- url = subject.height(300).flop(true).generate
149
+ it 'returns proper flop url if height' do
150
+ url = cascade_instance.height(300).flop(true).generate
151
151
  expect(url).to eq '/R5K91tkyNgXO65F6E0txgA6C9lY=/0x-300/my.domain.com/some/image/url.jpg'
152
152
  end
153
153
 
154
- it 'should return horizontal align' do
155
- url = subject.halign(:left).generate
154
+ it 'returns horizontal align' do
155
+ url = cascade_instance.halign(:left).generate
156
156
  expect(url).to eq '/GTJE3wUt3sURik0O9Nae8sfI928=/left/my.domain.com/some/image/url.jpg'
157
157
  end
158
158
 
159
- it 'should not return horizontal align if it is center' do
160
- url = subject.halign(:center).generate
159
+ it 'does not return horizontal align if it is center' do
160
+ url = cascade_instance.halign(:center).generate
161
161
  expect(url).to eq '/964rCTkAEDtvjy_a572k7kRa0SU=/my.domain.com/some/image/url.jpg'
162
162
  end
163
163
 
164
- it 'should return vertical align' do
165
- url = subject.valign(:top).generate
164
+ it 'returns vertical align' do
165
+ url = cascade_instance.valign(:top).generate
166
166
  expect(url).to eq '/1QQo5ihObuhgwl95--Z3g78vjiE=/top/my.domain.com/some/image/url.jpg'
167
167
  end
168
168
 
169
- it 'should not return vertical align if it is middle' do
170
- url = subject.valign(:middle).generate
169
+ it 'does not return vertical align if it is middle' do
170
+ url = cascade_instance.valign(:middle).generate
171
171
  expect(url).to eq '/964rCTkAEDtvjy_a572k7kRa0SU=/my.domain.com/some/image/url.jpg'
172
172
  end
173
173
 
174
- it 'should return halign and valign properly' do
175
- url = subject.halign(:left).valign(:top).generate
174
+ it 'returns halign and valign properly' do
175
+ url = cascade_instance.halign(:left).valign(:top).generate
176
176
  expect(url).to eq '/yA2rmtWv_uzHd9klz5OuMIZ5auI=/left/top/my.domain.com/some/image/url.jpg'
177
177
  end
178
178
 
179
- it 'should return meta properly' do
180
- url = subject.meta(true).generate
179
+ it 'returns meta properly' do
180
+ url = cascade_instance.meta(true).generate
181
181
  expect(url).to eq '/WvIJFDJDePgIl5hZcLgtrzIPxfY=/meta/my.domain.com/some/image/url.jpg'
182
182
  end
183
183
 
184
- it 'should return proper crop url when param is array' do
185
- url = subject.crop([10, 20, 30, 40]).generate
184
+ it 'returns proper crop url when param is array' do
185
+ url = cascade_instance.crop([10, 20, 30, 40]).generate
186
186
  expect(url).to eq '/QcnhqNfHwiP6BHLbD6UvneX7K28=/10x20:30x40/my.domain.com/some/image/url.jpg'
187
187
  end
188
188
 
189
- it 'should return proper crop url' do
190
- url = subject.crop(10, 20, 30, 40).generate
189
+ it 'returns proper crop url' do
190
+ url = cascade_instance.crop(10, 20, 30, 40).generate
191
191
  expect(url).to eq '/QcnhqNfHwiP6BHLbD6UvneX7K28=/10x20:30x40/my.domain.com/some/image/url.jpg'
192
192
  end
193
193
 
194
- it 'should ignore crop if all zeros' do
195
- url = subject.crop(0, 0, 0, 0).generate
194
+ it 'ignores crop if all zeros' do
195
+ url = cascade_instance.crop(0, 0, 0, 0).generate
196
196
  expect(url).to eq '/964rCTkAEDtvjy_a572k7kRa0SU=/my.domain.com/some/image/url.jpg'
197
197
  end
198
198
 
199
- it 'should have smart after halign and valign' do
200
- url = subject.halign(:left).valign(:top).smart(true).generate
199
+ it 'has smart after halign and valign' do
200
+ url = cascade_instance.halign(:left).valign(:top).smart(true).generate
201
201
  expect(url).to eq '/KS6mVuzlGE3hJ75n3JUonfGgSFM=/left/top/smart/my.domain.com/some/image/url.jpg'
202
202
  end
203
203
 
204
- it 'should have quality filter' do
205
- url = subject.quality_filter(20).generate
204
+ it 'has quality filter' do
205
+ url = cascade_instance.quality_filter(20).generate
206
206
  expect(url).to eq '/NyA-is4NojxiRqo0NcmJDhB6GTs=/filters:quality(20)/my.domain.com/some/image/url.jpg'
207
207
  end
208
208
 
209
- it 'should have brightness filter' do
210
- url = subject.brightness_filter(30).generate
209
+ it 'has brightness filter' do
210
+ url = cascade_instance.brightness_filter(30).generate
211
211
  expect(url).to eq '/oXDmnGD7vQV-rXcj8kCl1tcS3jc=/filters:brightness(30)/my.domain.com/some/image/url.jpg'
212
212
  end
213
213
 
214
- it 'should have 2 filters' do
215
- url = subject.brightness_filter(30).quality_filter(20).generate
214
+ it 'has 2 filters' do
215
+ url = cascade_instance.brightness_filter(30).quality_filter(20).generate
216
216
  expect(url).to eq '/SW9o4xQG1QAzE69WzEzarL_G3MI=/filters:brightness(30):quality(20)/my.domain.com/some/image/url.jpg'
217
217
  end
218
218
 
219
- it 'should escape url args' do
220
- url = subject.watermark_filter('http://my-server.com/image.png', 30).quality_filter(20).generate
219
+ it 'escapes url args' do
220
+ url = cascade_instance.watermark_filter('http://my-server.com/image.png', 30).quality_filter(20).generate
221
221
  expect(url).to eq '/4b9kwg0-zsojf7Ed01TPKPYOel4=/filters:watermark(http%3A%2F%2Fmy-server.com%2Fimage.png,30):quality(20)/my.domain.com/some/image/url.jpg'
222
222
  end
223
223
 
224
- it 'should have trim without params' do
225
- url = subject.trim.generate
224
+ it 'has trim without params' do
225
+ url = cascade_instance.trim.generate
226
226
  expect(url).to eq '/w23BC0dUiYBFrUnuoYJe8XROuyw=/trim/my.domain.com/some/image/url.jpg'
227
227
  end
228
228
 
229
- it 'should have trim with direction param' do
230
- url = subject.trim('bottom-right').generate
229
+ it 'has trim with direction param' do
230
+ url = cascade_instance.trim('bottom-right').generate
231
231
  expect(url).to eq '/kXPwSmqEvPFQezgzBCv9BtPWmBY=/trim:bottom-right/my.domain.com/some/image/url.jpg'
232
232
  end
233
233
 
234
- it 'should have trim with direction and tolerance param' do
235
- url = subject.trim('bottom-right', 15).generate
234
+ it 'has trim with direction and tolerance param' do
235
+ url = cascade_instance.trim('bottom-right', 15).generate
236
236
  expect(url).to eq '/TUCEIhtWfI1Uv9zjavCSl_i0A_8=/trim:bottom-right:15/my.domain.com/some/image/url.jpg'
237
237
  end
238
238
 
239
- it 'should have the right crop when cropping horizontally and given a left center' do
240
- url = subject.original_width(100).original_height(100).width(40).height(50).center(0, 50).generate
239
+ it 'has the right crop when cropping horizontally and given a left center' do
240
+ url = cascade_instance.original_width(100).original_height(100).width(40).height(50).center(0, 50).generate
241
241
  expect(url).to eq '/SZIT3w4Qgebv5DuVJ8G1IH1mkCU=/0x0:80x100/40x50/my.domain.com/some/image/url.jpg'
242
242
  end
243
243
 
244
- it 'should have the right crop when cropping horizontally and given a right center' do
245
- url = subject.original_width(100).original_height(100).width(40).height(50).center(100, 50).generate
244
+ it 'has the right crop when cropping horizontally and given a right center' do
245
+ url = cascade_instance.original_width(100).original_height(100).width(40).height(50).center(100, 50).generate
246
246
  expect(url).to eq '/NEtCYehaISE7qR3zFj15CxnZoCs=/20x0:100x100/40x50/my.domain.com/some/image/url.jpg'
247
247
  end
248
248
 
249
- it 'should have the right crop when cropping horizontally and given the actual center' do
250
- url = subject.original_width(100).original_height(100).width(40).height(50).center(50, 50).generate
249
+ it 'has the right crop when cropping horizontally and given the actual center' do
250
+ url = cascade_instance.original_width(100).original_height(100).width(40).height(50).center(50, 50).generate
251
251
  expect(url).to eq '/JLH65vJTu6d-cXBmqe5hYoSD4ho=/10x0:90x100/40x50/my.domain.com/some/image/url.jpg'
252
252
  end
253
253
 
254
- it 'should have the right crop when cropping vertically and given a top center' do
255
- url = subject.original_width(100).original_height(100).width(50).height(40).center(50, 0).generate
254
+ it 'has the right crop when cropping vertically and given a top center' do
255
+ url = cascade_instance.original_width(100).original_height(100).width(50).height(40).center(50, 0).generate
256
256
  expect(url).to eq '/FIMZcLatW6bjgSRH9xTkEwUZAZ8=/0x0:100x80/50x40/my.domain.com/some/image/url.jpg'
257
257
  end
258
258
 
259
- it 'should have the right crop when cropping vertically and given a bottom center' do
260
- url = subject.original_width(100).original_height(100).width(50).height(40).center(50, 100).generate
259
+ it 'has the right crop when cropping vertically and given a bottom center' do
260
+ url = cascade_instance.original_width(100).original_height(100).width(50).height(40).center(50, 100).generate
261
261
  expect(url).to eq '/9Ud0sVo6i9DLOjlKbQP_4JXgFmA=/0x20:100x100/50x40/my.domain.com/some/image/url.jpg'
262
262
  end
263
263
 
264
- it 'should have the right crop when cropping vertically and given the actual center' do
265
- url = subject.original_width(100).original_height(100).width(50).height(40).center(50, 50).generate
264
+ it 'has the right crop when cropping vertically and given the actual center' do
265
+ url = cascade_instance.original_width(100).original_height(100).width(50).height(40).center(50, 50).generate
266
266
  expect(url).to eq '/WejLJn8djJLn7DkMUq3S0zZCvZE=/0x10:100x90/50x40/my.domain.com/some/image/url.jpg'
267
267
  end
268
268
 
269
- it 'should have the no crop when not necessary' do
270
- url = subject.original_width(100).original_height(100).width(50).height(50).center(50, 0).generate
269
+ it 'has the no crop when not necessary' do
270
+ url = cascade_instance.original_width(100).original_height(100).width(50).height(50).center(50, 0).generate
271
271
  expect(url).to eq '/trIjfr513nkGkCpKXK6qgox2jPA=/50x50/my.domain.com/some/image/url.jpg'
272
272
  end
273
273
 
274
- it 'should blow up with a bad center' do
274
+ it 'blows up with a bad center' do
275
275
  expect do
276
- subject.original_width(100).original_height(100).width(50).height(50).center(50).generate
276
+ cascade_instance.original_width(100).original_height(100).width(50).height(50).center(50).generate
277
277
  end.to raise_error(RuntimeError)
278
278
  end
279
279
 
280
- it 'should have no crop with a missing original_height' do
281
- url = subject.original_width(100).width(50).height(40).center(50, 0).generate
280
+ it 'has no crop with a missing original_height' do
281
+ url = cascade_instance.original_width(100).width(50).height(40).center(50, 0).generate
282
282
  expect(url).to eq '/veYlY0msKmemAaXpeav2kCNftmU=/50x40/my.domain.com/some/image/url.jpg'
283
283
  end
284
284
 
285
- it 'should have no crop with a missing original_width' do
286
- url = subject.original_height(100).width(50).height(40).center(50, 0).generate
285
+ it 'has no crop with a missing original_width' do
286
+ url = cascade_instance.original_height(100).width(50).height(40).center(50, 0).generate
287
287
  expect(url).to eq '/veYlY0msKmemAaXpeav2kCNftmU=/50x40/my.domain.com/some/image/url.jpg'
288
288
  end
289
289
 
290
- it 'should have no crop with out a width and height' do
291
- url = subject.original_width(100).original_height(100).center(50, 50).generate
290
+ it 'has no crop with out a width and height' do
291
+ url = cascade_instance.original_width(100).original_height(100).center(50, 50).generate
292
292
  expect(url).to eq '/964rCTkAEDtvjy_a572k7kRa0SU=/my.domain.com/some/image/url.jpg'
293
293
  end
294
294
 
295
- it 'should use the original width with a missing width' do
296
- url = subject.original_width(100).original_height(100).height(80).center(50, 50).generate
295
+ it 'uses the original width with a missing width' do
296
+ url = cascade_instance.original_width(100).original_height(100).height(80).center(50, 50).generate
297
297
  expect(url).to eq '/02BNIIJ9NYNV9Q03JHPtlP0DIDg=/0x10:100x90/0x80/my.domain.com/some/image/url.jpg'
298
298
  end
299
299
 
300
- it 'should use the original height with a missing height' do
301
- url = subject.original_width(100).original_height(100).width(80).center(50, 50).generate
300
+ it 'uses the original height with a missing height' do
301
+ url = cascade_instance.original_width(100).original_height(100).width(80).center(50, 50).generate
302
302
  expect(url).to eq '/0XL5BmMi3vlJQfw6aGOVW-M1vVI=/10x0:90x100/80x0/my.domain.com/some/image/url.jpg'
303
303
  end
304
304
 
305
- it 'should have the right crop with a negative width' do
306
- url = subject.original_width(100).original_height(100).width(-50).height(40).center(50, 50).generate
305
+ it 'has the right crop with a negative width' do
306
+ url = cascade_instance.original_width(100).original_height(100).width(-50).height(40).center(50, 50).generate
307
307
  expect(url).to eq '/IuRNPlFlpTVol45bDkOm2PGvneo=/0x10:100x90/-50x40/my.domain.com/some/image/url.jpg'
308
308
  end
309
309
 
310
- it 'should have the right crop with a negative height' do
311
- url = subject.original_width(100).original_height(100).width(50).height(-40).center(50, 50).generate
310
+ it 'has the right crop with a negative height' do
311
+ url = cascade_instance.original_width(100).original_height(100).width(50).height(-40).center(50, 50).generate
312
312
  expect(url).to eq '/-8IhWGEeXaY1uv945i9EHLVjwuk=/0x10:100x90/50x-40/my.domain.com/some/image/url.jpg'
313
313
  end
314
314
 
315
- it 'should have the right crop with a negative height and width' do
316
- url = subject.original_width(100).original_height(100).width(-50).height(-40).center(50, 50).generate
315
+ it 'has the right crop with a negative height and width' do
316
+ url = cascade_instance.original_width(100).original_height(100).width(-50).height(-40).center(50, 50).generate
317
317
  expect(url).to eq '/lfjGLTTEaW_Rcvc1q0ZhfYup2jg=/0x10:100x90/-50x-40/my.domain.com/some/image/url.jpg'
318
318
  end
319
319
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-thumbor
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.1
4
+ version: 4.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bernardo Heynemann
@@ -11,6 +11,20 @@ bindir: bin
11
11
  cert_chain: []
12
12
  date: 2022-01-30 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: code-scanning-rubocop
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 0.5.0
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 0.5.0
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: rake
16
30
  requirement: !ruby/object:Gem::Requirement