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 +4 -4
- data/lib/rack_image_resizer.rb +13 -15
- data/lib/string.rb +6 -2
- 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: 9f36dba02c961baff412ab2cf297970602134af182f97291c2b3278349a545de
|
4
|
+
data.tar.gz: '023579e204e4bf5e7c830bab8a3e2228984c6ae83e9e4102e3a72aca9ece97d8'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7de4972dce16c7d10b91258f2d516b09a5a61a07445f36ff6aa7cfc8cf8d32d7d4f9a0a09a09ed86aacc19106011088243f3dd18b1fe622cf22b4dc144d26570
|
7
|
+
data.tar.gz: c5a1d3b61b94b17ecfd6ed1a65131daa5a9b29e3929a4aa4bf2d662becfe082b8586ca889fd46bed5e0b937ced2f9d6b4a50c3fcf0ffd36fba273d93527cae80
|
data/lib/rack_image_resizer.rb
CHANGED
@@ -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
|
-
|
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(
|
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
|
-
[
|
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.
|
11
|
+
RackImageResizer.build opts
|
8
12
|
end
|
9
13
|
end
|
10
14
|
end
|