rack_image_resizer 1.3.4 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e7b0d56e8df36d87efd7a99b50b27d839aa924aceb93b3cefcff69c6a1c97cc9
4
- data.tar.gz: 7e1e3beb0154980146b4528e52ee69104bf008d3f064593beda24dc0dcfb3493
3
+ metadata.gz: 9f36dba02c961baff412ab2cf297970602134af182f97291c2b3278349a545de
4
+ data.tar.gz: '023579e204e4bf5e7c830bab8a3e2228984c6ae83e9e4102e3a72aca9ece97d8'
5
5
  SHA512:
6
- metadata.gz: e5ce0e392842ee04f3f50630a5c8e7c9dfadeb46f5e39726f6f69214b56d1e71a79c30b28612d17a8e3e76adade7e243fe2823a9df1c89d42c40d21020aaeac4
7
- data.tar.gz: 2dfe4769f27d23a79842f98b9f1a5e90aa90b72341ed07ba7317ea3edaef2baa61dc3d8ce3770473d462eae24b704c7065a641a83c374c55ae36e7eb54143ca6
6
+ metadata.gz: 7de4972dce16c7d10b91258f2d516b09a5a61a07445f36ff6aa7cfc8cf8d32d7d4f9a0a09a09ed86aacc19106011088243f3dd18b1fe622cf22b4dc144d26570
7
+ data.tar.gz: c5a1d3b61b94b17ecfd6ed1a65131daa5a9b29e3929a4aa4bf2d662becfe082b8586ca889fd46bed5e0b937ced2f9d6b4a50c3fcf0ffd36fba273d93527cae80
@@ -6,31 +6,29 @@ require_relative 'string'
6
6
  module ::RackImageResizer
7
7
  extend self
8
8
 
9
- def resizer_secret
10
- @secret || ENV.fetch('RESIZER_SECRET')
11
- end
12
-
13
- def resizer_url
14
- @url || ENV.fetch('RESIZER_URL')
15
- end
16
-
17
9
  def set name, value
18
- raise 'not allowed' unless [:secret, :url].include?(name)
10
+ raise 'not allowed' unless [:secret, :url, :host].include?(name)
19
11
  instance_variable_set '@%s' % name, value
20
12
  end
21
13
 
14
+ def get name
15
+ instance_variable_get('@%s' % name) || ENV.fetch('RESIZER_%s' % name.to_s.upcase)
16
+ end
17
+
22
18
  ###
23
19
 
24
- # "http://foo.jpg".resize_image({ s: "222x222", q: 80 }
25
- # "http://foo.jpg".resize_image("^200x200")
26
- # "http://foo.jpg".resize_image - expcts size as param
27
- def get opts
20
+ def build opts
28
21
  opts[:i] ||= opts.delete(:image)
29
22
  opts[:s] ||= opts.delete(:size) if opts[:size]
30
23
 
31
24
  # return empty pixel unless self
32
25
  return "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" if opts[:i].to_s == ''
33
26
 
27
+ # add host as prefix to image if relative
28
+ opts[:i] = get(:host) + opts[:i] if opts[:i][0,1] == '/'
29
+
30
+ raise ArgumentError.new('Invalid URL, no https?:// found') unless opts[:i] =~ %r{^https?://}
31
+
34
32
  opts[:i] = opts[:i].sub(%r{^(\w+)://}, '')
35
33
  prefix = $1 == 'https' ? 's' : 'p'
36
34
  opts[:i] = prefix + opts[:i]
@@ -41,7 +39,7 @@ module ::RackImageResizer
41
39
  data.push Base64.urlsafe_encode64(opts.to_json).gsub(/=*\s*$/, '')
42
40
 
43
41
  # add check
44
- data.push Digest::SHA1.hexdigest(resizer_secret+data.first)[0,4]
42
+ data.push Digest::SHA1.hexdigest(get(:secret)+data.first)[0,4]
45
43
 
46
44
  # add extension
47
45
  ext = opts[:i].split('.').last.to_s.downcase
@@ -49,6 +47,6 @@ module ::RackImageResizer
49
47
  data.push '.%s' % ext
50
48
 
51
49
  # return full url
52
- [resizer_url, data.join('')].join('/r/')
50
+ [get(:url), data.join('')].join('/r/')
53
51
  end
54
52
  end
data/lib/string.rb CHANGED
@@ -1,10 +1,14 @@
1
1
  unless ''.respond_to?(:resized)
2
2
  class ::String
3
+ # "http://foo.jpg".resized({ s: "222x222", q: 80 }
4
+ # "http://foo.jpg".resized("^200x200")
5
+ # "http://foo.jpg".resized_image - expcts size as param
3
6
  def resized opts=nil
4
- opts ||= {}
7
+ opts ||= {}
8
+ opts = { s: opts } if opts.is_a?(String)
5
9
  opts[:i] = self
6
10
 
7
- RackImageResizer.get opts
11
+ RackImageResizer.build opts
8
12
  end
9
13
  end
10
14
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack_image_resizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.4
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dino Reic