rack_image_resizer 1.4.7 → 1.4.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rack_image_resizer.rb +12 -8
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92daa532b791248750d576e516beb091d452a26babca11c1c272e190f01d4e96
|
4
|
+
data.tar.gz: a93f3dfe6fbd3ea88287410dde9289e37e6c3de7affd280e59c659e482d26fa6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2604b6c579f25b4b581c936f6873ad618f4fdb07ba27e7d041add4ab3bcf2efad57e3f3ba977d7a0f20838048c1dd521aed5844eeb5d6fc7f3b43edd47cd28df
|
7
|
+
data.tar.gz: 3d637ae4e2bdbd8aba6515882d7d774b99e92c28e8978c8a78aacae3b145e7b6a4dcbde09ff2cb88f0935528e2734a4e1ff9b83ab4a9f88f0fd2a5078d14b746
|
data/lib/rack_image_resizer.rb
CHANGED
@@ -7,7 +7,7 @@ module ::RackImageResizer
|
|
7
7
|
extend self
|
8
8
|
|
9
9
|
def set name, value
|
10
|
-
raise 'not allowed' unless [:secret, :
|
10
|
+
raise 'not allowed' unless [:secret, :server, :host].include?(name)
|
11
11
|
instance_variable_set '@%s' % name, value
|
12
12
|
end
|
13
13
|
|
@@ -15,6 +15,10 @@ module ::RackImageResizer
|
|
15
15
|
instance_variable_get('@%s' % name) || ENV.fetch('RESIZER_%s' % name.to_s.upcase)
|
16
16
|
end
|
17
17
|
|
18
|
+
def prefix_it url
|
19
|
+
url[0,1] == '/' ? get(:host) + url : url
|
20
|
+
end
|
21
|
+
|
18
22
|
###
|
19
23
|
|
20
24
|
def build opts
|
@@ -22,16 +26,16 @@ module ::RackImageResizer
|
|
22
26
|
opts[:s] ||= opts.delete(:size) if opts[:size]
|
23
27
|
opts[:e] ||= opts.delete(:onerror) if opts[:onerror]
|
24
28
|
|
25
|
-
opts[:e] = get(:host) + opts[:e] if opts[:e] && opts[:e] !~ %r{^https?://}
|
26
|
-
|
27
29
|
# return empty pixel unless self
|
28
30
|
return "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" if opts[:i].to_s == ''
|
29
31
|
|
30
|
-
# add host as prefix to
|
31
|
-
opts[:i] =
|
32
|
+
# add host as prefix to images if relative given
|
33
|
+
opts[:i] = prefix_it opts[:i]
|
34
|
+
opts[:e] = prefix_it opts[:e] if opts[:e]
|
32
35
|
|
33
36
|
raise ArgumentError.new('Invalid URL, no https?:// found') unless opts[:i] =~ %r{^https?://}
|
34
37
|
|
38
|
+
# reduce size of a hash by stripping 'https?://' - 7 characters
|
35
39
|
opts[:i] = opts[:i].sub(%r{^(\w+)://}, '')
|
36
40
|
prefix = $1 == 'https' ? 's' : 'p'
|
37
41
|
opts[:i] = prefix + opts[:i]
|
@@ -41,8 +45,8 @@ module ::RackImageResizer
|
|
41
45
|
# add base
|
42
46
|
data.push Base64.urlsafe_encode64(opts.to_json).gsub(/=*\s*$/, '')
|
43
47
|
|
44
|
-
# add check
|
45
|
-
data.push Digest::SHA1.hexdigest(get(:secret)+data.first)[0,
|
48
|
+
# add check, 2 chars
|
49
|
+
data.push Digest::SHA1.hexdigest(get(:secret)+data.first)[0,2]
|
46
50
|
|
47
51
|
# add extension
|
48
52
|
ext = opts[:i].split('.').last.to_s.downcase
|
@@ -50,6 +54,6 @@ module ::RackImageResizer
|
|
50
54
|
data.push '.%s' % ext
|
51
55
|
|
52
56
|
# return full url
|
53
|
-
[get(:
|
57
|
+
[get(:server), data.join('')].join('/r/')
|
54
58
|
end
|
55
59
|
end
|