rack_image_resizer 1.3.4 → 1.4.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 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