ruby-thumbor 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/lib/ruby-thumbor.rb CHANGED
@@ -2,6 +2,8 @@ require 'thumbor/crypto_url'
2
2
  require 'thumbor/cascade'
3
3
 
4
4
  module Thumbor
5
+ @@key = nil
6
+
5
7
  def self.key=(key)
6
8
  @@key = key
7
9
  end
@@ -9,7 +9,10 @@ module Thumbor
9
9
 
10
10
  def initialize(key)
11
11
  Thumbor.key = key
12
- @computed_key = (Thumbor.key * 16)[0..15]
12
+ end
13
+
14
+ def computed_key
15
+ (Thumbor.key * 16)[0..15]
13
16
  end
14
17
 
15
18
  def pad(s)
@@ -121,7 +124,7 @@ module Thumbor
121
124
  def generate_old(options)
122
125
  url = pad(url_for(options))
123
126
  cipher = OpenSSL::Cipher::Cipher.new('aes-128-ecb').encrypt
124
- cipher.key = @computed_key
127
+ cipher.key = computed_key
125
128
  encrypted = cipher.update(url)
126
129
  based = url_safe_base64(encrypted)
127
130
 
@@ -1,3 +1,3 @@
1
1
  module Thumbor
2
- VERSION = '1.1.1'
2
+ VERSION = '1.1.2'
3
3
  end
@@ -8,13 +8,17 @@ describe Thumbor::Cascade do
8
8
  let(:image_md5) { 'f33af67e41168e80fcc5b00f8bd8061a' }
9
9
  let(:key) { 'my-security-key' }
10
10
 
11
- before do
12
- Thumbor.key = key
13
- end
14
-
15
11
  subject { Thumbor::Cascade.new image_url }
16
12
 
13
+ after(:each) do
14
+ Thumbor.key = nil
15
+ end
16
+
17
17
  describe '#new' do
18
+ before do
19
+ Thumbor.key = key
20
+ end
21
+
18
22
  it "should create a new instance passing key and keep it" do
19
23
  subject.computed_key.should == 'my-security-keym'
20
24
  end
@@ -36,7 +40,7 @@ describe Thumbor::Cascade do
36
40
  end
37
41
 
38
42
  it "should return proper url for width-only" do
39
- url = subject.width(300).url_for
43
+ url = subject.width(300).url_for
40
44
  url.should == '300x0/' << image_md5
41
45
  end
42
46
 
@@ -172,12 +176,23 @@ describe Thumbor::Cascade do
172
176
  end
173
177
 
174
178
  describe '#generate' do
179
+ before do
180
+ Thumbor.key = key
181
+ end
175
182
 
176
183
  it "should create a new instance passing key and keep it" do
177
184
  url = subject.width(300).height(200).generate
178
185
  url.should == '/TQfyd3H36Z3srcNcLOYiM05YNO8=/300x200/my.domain.com/some/image/url.jpg'
179
186
  end
180
187
 
188
+ it "should be able to change the Thumbor key" do
189
+ thumbor = subject.width(300).height(200)
190
+ url1 = thumbor.generate
191
+ Thumbor.key = 'another-thumbor-key'
192
+ url2 = thumbor.generate
193
+ url1.should_not == url2
194
+ end
195
+
181
196
  it "should create a new instance passing key and keep it" do
182
197
  url = subject.width(300).height(200).meta(true).generate
183
198
  url.should == '/YBQEWd3g_WRMnVEG73zfzcr8Zj0=/meta/300x200/my.domain.com/some/image/url.jpg'
@@ -210,6 +225,10 @@ describe Thumbor::Cascade do
210
225
  end
211
226
 
212
227
  describe "#generate :old => true" do
228
+ before do
229
+ Thumbor.key = key
230
+ end
231
+
213
232
  subject { Thumbor::Cascade.new(image_url).old(true) }
214
233
 
215
234
  it "should create a new instance passing key and keep it" do
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: 1.1.1
4
+ version: 1.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-20 00:00:00.000000000 Z
12
+ date: 2013-01-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec