imgproxy 1.1.0 → 1.2.0
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/README.md +18 -2
- data/lib/imgproxy.rb +15 -5
- data/lib/imgproxy/builder.rb +24 -6
- data/lib/imgproxy/config.rb +5 -0
- data/lib/imgproxy/options.rb +35 -10
- data/lib/imgproxy/url_adapters/shrine_s3.rb +2 -1
- data/lib/imgproxy/version.rb +1 -1
- metadata +17 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 138bb555a390e397e8bdc3e5f68534416bac212660f1c48aa2fc8332e5ab4828
|
4
|
+
data.tar.gz: 73d3c3357b1eb2959084b827e790e2aaa2145499ec69539a069d47e02e160c43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8891f46189c8b7a646d8fbed5202e7b66f51e63357b999158fc71c3fae19b5d3ae38a48c21f2acac7d937b6f53c512fe4f4654c528bb1a3e4a83ade50f065535
|
7
|
+
data.tar.gz: 82821cd8bd891a5dc0ed51846e490b09228ac070e2d0b1dd8af544c8046fc998f628e2cd283ee8011e7d365b2a3c087241129b3fe0d8c88d13e751b260fa9b5b
|
data/README.md
CHANGED
@@ -51,6 +51,9 @@ Imgproxy.configure do |config|
|
|
51
51
|
config.hex_key = "your_key"
|
52
52
|
# Hex-encoded signature salt
|
53
53
|
config.hex_salt = "your_salt"
|
54
|
+
|
55
|
+
# Base64 encode all URLs
|
56
|
+
# config.base64_encode_urls = true
|
54
57
|
end
|
55
58
|
```
|
56
59
|
|
@@ -167,9 +170,16 @@ builder.url_for("http://images.example.com/images/image2.jpg")
|
|
167
170
|
* `dpr` — when set, imgproxy will multiply the image dimensions according to this factor for HiDPI (Retina) devices.
|
168
171
|
* `enlarge` — when true, imgproxy will enlarge the image if it is smaller than the given size.
|
169
172
|
* `extend` — when true, imgproxy will extend the image if the resizing result is smaller than the given size.
|
173
|
+
* `extend_gravity`, `extend_gravity_x`, `extend_gravity_y` — define the gravity of the extend. These options accept the same values as `gravity`, `gravity_x` and `gravity_y` (see below).
|
170
174
|
* `gravity` — defines gravity that will be used when imgproxy needs to cut some parts of the image. See [URL format guide](https://github.com/imgproxy/imgproxy/blob/master/docs/generating_the_url_advanced.md#gravity) for available values.
|
171
|
-
* `gravity_x`, `gravity_y` — floating point numbers between 0 and 1 that define the coordinates of the center of the resulting image
|
175
|
+
* `gravity_x`, `gravity_y` — specify gravity offset by X and Y axes. When `fp` gravity is used, these are floating point numbers between 0 and 1 that define the coordinates of the center of the resulting image.
|
176
|
+
* `crop_width`, `crop_height` — define the size of an area of the image to be processed (crop before resize).
|
177
|
+
* `crop_gravity`, `crop_gravity_x`, `crop_gravity_y` - define the gravity of the crop. These options accept the same values as `gravity`, `gravity_x` and `gravity_y` (see above).
|
178
|
+
* `padding` - defines padding size in css manner (you can use array here). See [URL guide](https://docs.imgproxy.net/#/generating_the_url_advanced?id=padding) for more info.
|
179
|
+
* `trim_threshold` - when set, imgproxy removes surrounding background.
|
180
|
+
* `trim_color`, `trim_equal_hor`, `trim_equal_ver` - additional trim options described in the [URL guide](https://docs.imgproxy.net/#/generating_the_url_advanced?id=trim).
|
172
181
|
* `quality` — defines the quality of the resulting image, percentage.
|
182
|
+
* `max_bytes` — when set, imgproxy automatically degrades the quality of the image until the image is under the specified amount of bytes.
|
173
183
|
* `background` — when set, imgproxy will fill the resulting image background with the specified color. Can be a hex-color string or an array of red, green and blue values (0-255).
|
174
184
|
* `brightness` — when set, imgproxy will adjust brightness of the resulting image. _Supported only by imgproxy pro._
|
175
185
|
* `contrast` — when set, imgproxy will adjust contrast of the resulting image. _Supported only by imgproxy pro._
|
@@ -179,10 +189,12 @@ builder.url_for("http://images.example.com/images/image2.jpg")
|
|
179
189
|
* `pixelate` — when set, imgproxy will apply the pixelate filter to the resulting image. Value is the size of a pixel. _Supported only by imgproxy pro._
|
180
190
|
* `watermark_opacity` — when set, imgproxy will put a watermark on the resulting image. See [watermars guide](https://github.comimgproxym/imgproxy/blob/master/docs/watermark.md) for more info.
|
181
191
|
* `watermark_position`, `watermark_x_offset`, `watermark_y_offset`, `watermark_scale` — additional watermark options described in the [watermars guide](https://github.com/imgproxy/imgproxy/blob/master/docs/watermark.md).
|
182
|
-
* `
|
192
|
+
* `watermark_url` — when set, imgproxy will use the image from the specified URL as a watermark. _Supported only by imgproxy pro._
|
193
|
+
* `style` — when set, imgproxy will prepend `<style>` node with provided content to the `<svg>` node of source SVG image. _Supported only by imgproxy pro._
|
183
194
|
* `preset` — array of names of presets that will be used by imgproxy. See [presets guide](https://github.com/imgproxy/imgproxy/blob/master/docs/presets.md) for more info.
|
184
195
|
* `cachebuster` — defines cache buster that doesn't affect image processing but it's changing allows to bypass CDN, proxy server and browser cache.
|
185
196
|
* `format` — specifies the resulting image format (`jpg`, `png`, `webp`).
|
197
|
+
* `base64_encode_url` — encode the URL as a base64 string.
|
186
198
|
* `use_short_options` — per-call redefinition of `use_short_options` config.
|
187
199
|
|
188
200
|
**See [imgproxy URL format guide](https://github.com/imgproxy/imgproxy/blob/master/docs/generating_the_url_advanced.md) for more info.**
|
@@ -253,3 +265,7 @@ If you are having any problems with image processing of imgproxy itself, be sure
|
|
253
265
|
## License
|
254
266
|
|
255
267
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
268
|
+
|
269
|
+
## Security Contact
|
270
|
+
|
271
|
+
To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.
|
data/lib/imgproxy.rb
CHANGED
@@ -45,21 +45,30 @@ module Imgproxy
|
|
45
45
|
# @param [String,URI, Object] image Source image URL or object applicable for
|
46
46
|
# the configured URL adapters
|
47
47
|
# @param [Hash] options Processing options
|
48
|
-
# @option options [Integer] :crop_width
|
49
|
-
# @option options [Integer] :crop_height
|
50
|
-
# @option options [String] :crop_gravity
|
51
|
-
# @option options [Float] :crop_gravity_x
|
52
|
-
# @option options [Float] :crop_gravity_y
|
53
48
|
# @option options [String] :resizing_type
|
54
49
|
# @option options [Integer] :width
|
55
50
|
# @option options [Integer] :height
|
56
51
|
# @option options [Float] :dpr
|
57
52
|
# @option options [Boolean] :enlarge
|
58
53
|
# @option options [Boolean] :extend
|
54
|
+
# @option options [String] :extend_gravity
|
55
|
+
# @option options [Float] :extend_gravity_x
|
56
|
+
# @option options [Float] :extend_gravity_y
|
59
57
|
# @option options [String] :gravity
|
60
58
|
# @option options [Float] :gravity_x
|
61
59
|
# @option options [Float] :gravity_y
|
60
|
+
# @option options [Integer] :crop_width
|
61
|
+
# @option options [Integer] :crop_height
|
62
|
+
# @option options [String] :crop_gravity
|
63
|
+
# @option options [Float] :crop_gravity_x
|
64
|
+
# @option options [Float] :crop_gravity_y
|
65
|
+
# @option options [Integer] :trim_threshold
|
66
|
+
# @option options [String] :trim_color
|
67
|
+
# @option options [Array] :padding
|
68
|
+
# @option options [Boolean] :trim_equal_hor
|
69
|
+
# @option options [Boolean] :trim_equal_ver
|
62
70
|
# @option options [Integer] :quality
|
71
|
+
# @option options [Integer] :max_bytes
|
63
72
|
# @option options [Array] :background
|
64
73
|
# @option options [Integer] :brightness supported only by imgproxy pro
|
65
74
|
# @option options [Float] :contrast supported only by imgproxy pro
|
@@ -77,6 +86,7 @@ module Imgproxy
|
|
77
86
|
# @option options [String] :cachebuster
|
78
87
|
# @option options [String] :format
|
79
88
|
# @option options [Boolean] :use_short_options
|
89
|
+
# @option options [Boolean] :base64_encode_urls
|
80
90
|
# @see https://github.com/DarthSim/imgproxy/blob/master/docs/generating_the_url_advanced.md
|
81
91
|
# imgproxy URL format documentation
|
82
92
|
def url_for(image, options = {})
|
data/lib/imgproxy/builder.rb
CHANGED
@@ -17,13 +17,17 @@ module Imgproxy
|
|
17
17
|
# builder.url_for("http://images.example.com/images/image1.jpg")
|
18
18
|
# builder.url_for("http://images.example.com/images/image2.jpg")
|
19
19
|
class Builder
|
20
|
+
OMITTED_OPTIONS = %i[format].freeze
|
20
21
|
# @param [Hash] options Processing options
|
21
22
|
# @see Imgproxy.url_for
|
22
23
|
def initialize(options = {})
|
23
24
|
options = options.dup
|
24
25
|
|
26
|
+
@base64_encode_url = options.delete(:base64_encode_url)
|
25
27
|
@use_short_options = options.delete(:use_short_options)
|
28
|
+
|
26
29
|
@use_short_options = config.use_short_options if @use_short_options.nil?
|
30
|
+
@base64_encode_url = config.base64_encode_urls if @base64_encode_url.nil?
|
27
31
|
|
28
32
|
@options = Imgproxy::Options.new(options)
|
29
33
|
end
|
@@ -35,9 +39,7 @@ module Imgproxy
|
|
35
39
|
# the configured URL adapters
|
36
40
|
# @see Imgproxy.url_for
|
37
41
|
def url_for(image)
|
38
|
-
path = [*processing_options,
|
39
|
-
path = "#{path}@#{@options[:format]}" if @options[:format]
|
40
|
-
|
42
|
+
path = [*processing_options, url(image)].join("/")
|
41
43
|
signature = sign_path(path)
|
42
44
|
|
43
45
|
File.join(Imgproxy.config.endpoint.to_s, signature, path)
|
@@ -46,7 +48,6 @@ module Imgproxy
|
|
46
48
|
private
|
47
49
|
|
48
50
|
OPTIONS_ALIASES = {
|
49
|
-
crop: :c,
|
50
51
|
resize: :rs,
|
51
52
|
size: :s,
|
52
53
|
resizing_type: :rt,
|
@@ -55,7 +56,11 @@ module Imgproxy
|
|
55
56
|
enlarge: :en,
|
56
57
|
extend: :ex,
|
57
58
|
gravity: :g,
|
59
|
+
crop: :c,
|
60
|
+
padding: :pd,
|
61
|
+
trim: :t,
|
58
62
|
quality: :q,
|
63
|
+
max_bytes: :mb,
|
59
64
|
background: :bg,
|
60
65
|
adjust: :a,
|
61
66
|
brightness: :br,
|
@@ -74,11 +79,23 @@ module Imgproxy
|
|
74
79
|
|
75
80
|
def processing_options
|
76
81
|
@processing_options ||=
|
77
|
-
@options.reject { |k, _| k
|
82
|
+
@options.reject { |k, _| OMITTED_OPTIONS.include?(k) }.map do |key, value|
|
78
83
|
"#{option_alias(key)}:#{wrap_array(value).join(':')}"
|
79
84
|
end
|
80
85
|
end
|
81
86
|
|
87
|
+
def plain_url_for(url)
|
88
|
+
escaped_url = url.match?(NEED_ESCAPE_RE) ? ERB::Util.url_encode(url) : url
|
89
|
+
|
90
|
+
@options[:format] ? "plain/#{escaped_url}@#{@options[:format]}" : "plain/#{escaped_url}"
|
91
|
+
end
|
92
|
+
|
93
|
+
def base64_url_for(url)
|
94
|
+
encoded_url = Base64.urlsafe_encode64(url).tr("=", "").scan(/.{1,16}/).join("/")
|
95
|
+
|
96
|
+
@options[:format] ? "#{encoded_url}.#{@options[:format]}" : encoded_url
|
97
|
+
end
|
98
|
+
|
82
99
|
def option_alias(name)
|
83
100
|
return name unless config.use_short_options
|
84
101
|
|
@@ -91,7 +108,8 @@ module Imgproxy
|
|
91
108
|
|
92
109
|
def url(image)
|
93
110
|
url = config.url_adapters.url_of(image)
|
94
|
-
|
111
|
+
|
112
|
+
@base64_encode_url ? base64_url_for(url) : plain_url_for(url)
|
95
113
|
end
|
96
114
|
|
97
115
|
def sign_path(path)
|
data/lib/imgproxy/config.rb
CHANGED
@@ -17,9 +17,14 @@ module Imgproxy
|
|
17
17
|
# Defaults to true
|
18
18
|
attr_accessor :use_short_options
|
19
19
|
|
20
|
+
# @return [Boolean] base64 encode the URL
|
21
|
+
# Defaults to false
|
22
|
+
attr_accessor :base64_encode_urls
|
23
|
+
|
20
24
|
def initialize
|
21
25
|
self.signature_size = 32
|
22
26
|
self.use_short_options = true
|
27
|
+
self.base64_encode_urls = false
|
23
28
|
end
|
24
29
|
|
25
30
|
# Decodes hex-encoded key and sets it to {#key}
|
data/lib/imgproxy/options.rb
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
module Imgproxy
|
2
2
|
# Formats and regroups processing options
|
3
3
|
class Options < Hash
|
4
|
-
STRING_OPTS = %i[resizing_type gravity crop_gravity watermark_position
|
5
|
-
cachebuster format].freeze
|
6
|
-
INT_OPTS = %i[width height crop_width crop_height
|
7
|
-
|
8
|
-
FLOAT_OPTS = %i[dpr gravity_x gravity_y crop_gravity_x
|
9
|
-
blur sharpen watermark_opacity
|
10
|
-
|
11
|
-
|
4
|
+
STRING_OPTS = %i[resizing_type extend_gravity gravity crop_gravity trim_color watermark_position
|
5
|
+
watermark_url style cachebuster format base64_encode_url].freeze
|
6
|
+
INT_OPTS = %i[width height crop_width crop_height trim_threshold quality brightness pixelate
|
7
|
+
watermark_x_offset watermark_y_offset max_bytes].freeze
|
8
|
+
FLOAT_OPTS = %i[dpr extend_gravity_x extend_gravity_y gravity_x gravity_y crop_gravity_x
|
9
|
+
crop_gravity_y contrast saturation blur sharpen watermark_opacity
|
10
|
+
watermark_scale].freeze
|
11
|
+
BOOL_OPTS = %i[enlarge extend trim_equal_hor trim_equal_ver].freeze
|
12
|
+
ARRAY_OPTS = %i[padding background preset].freeze
|
12
13
|
ALL_OPTS = (STRING_OPTS + INT_OPTS + FLOAT_OPTS + BOOL_OPTS + ARRAY_OPTS).freeze
|
13
14
|
|
14
|
-
OPTS_PRIORITY = %i[
|
15
|
-
|
15
|
+
OPTS_PRIORITY = %i[ resize size resizing_type width height dpr enlarge extend gravity
|
16
|
+
crop padding trim quality max_bytes background adjust brightness contrast
|
17
|
+
saturation blur sharpen pixelate watermark watermark_url style preset
|
16
18
|
cachebuster ].freeze
|
17
19
|
|
18
20
|
# @param options [Hash] raw processing options
|
@@ -56,10 +58,12 @@ module Imgproxy
|
|
56
58
|
|
57
59
|
def group_options
|
58
60
|
group_crop_opts
|
61
|
+
group_extend_opts
|
59
62
|
group_resizing_opts
|
60
63
|
group_gravity_opts
|
61
64
|
group_adjust_opts
|
62
65
|
group_watermark_opts
|
66
|
+
group_trim_opts
|
63
67
|
end
|
64
68
|
|
65
69
|
def group_crop_opts
|
@@ -88,6 +92,16 @@ module Imgproxy
|
|
88
92
|
self[:gravity] = gravity unless gravity[0].nil?
|
89
93
|
end
|
90
94
|
|
95
|
+
def group_extend_opts
|
96
|
+
extend_opts =
|
97
|
+
extract_and_trim_nils(:extend, :extend_gravity, :extend_gravity_x, :extend_gravity_y)
|
98
|
+
|
99
|
+
return if extend_opts[0].nil?
|
100
|
+
return self[:extend] = 0 if extend_opts[0].zero?
|
101
|
+
|
102
|
+
self[:extend] = extend_opts
|
103
|
+
end
|
104
|
+
|
91
105
|
def group_adjust_opts
|
92
106
|
return unless values_at(:brightness, :contrast, :saturation).count { |o| !o.nil? } > 1
|
93
107
|
|
@@ -106,6 +120,17 @@ module Imgproxy
|
|
106
120
|
self[:watermark] = watermark unless watermark[0].nil?
|
107
121
|
end
|
108
122
|
|
123
|
+
def group_trim_opts
|
124
|
+
trim = extract_and_trim_nils(
|
125
|
+
:trim_threshold,
|
126
|
+
:trim_color,
|
127
|
+
:trim_equal_hor,
|
128
|
+
:trim_equal_ver,
|
129
|
+
)
|
130
|
+
|
131
|
+
self[:trim] = trim unless trim[0].nil?
|
132
|
+
end
|
133
|
+
|
109
134
|
def encode_style
|
110
135
|
return if self[:style].nil?
|
111
136
|
self[:style] = Base64.urlsafe_encode64(self[:style]).tr("=", "")
|
data/lib/imgproxy/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: imgproxy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergey Alexandrovich
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry-byebug
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.
|
19
|
+
version: 3.9.0
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.
|
26
|
+
version: 3.9.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 3.
|
33
|
+
version: 3.9.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 3.
|
40
|
+
version: 3.9.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec_junit_formatter
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,42 +58,42 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
61
|
+
version: 0.83.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
68
|
+
version: 0.83.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rubocop-rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.
|
75
|
+
version: 1.38.1
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 1.
|
82
|
+
version: 1.38.1
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: aws-sdk-s3
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 1.
|
89
|
+
version: 1.64.0
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 1.
|
96
|
+
version: 1.64.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: google-cloud-storage
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,28 +128,28 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
131
|
+
version: '3.0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
138
|
+
version: '3.0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: sqlite3
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 1.
|
145
|
+
version: 1.4.1
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 1.
|
152
|
+
version: 1.4.1
|
153
153
|
description: A gem that easily generates imgproxy URLs for your images
|
154
154
|
email: darthsim@gmail.com
|
155
155
|
executables: []
|
@@ -190,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
190
190
|
- !ruby/object:Gem::Version
|
191
191
|
version: '0'
|
192
192
|
requirements: []
|
193
|
-
rubygems_version: 3.0.
|
193
|
+
rubygems_version: 3.0.3
|
194
194
|
signing_key:
|
195
195
|
specification_version: 4
|
196
196
|
summary: imgproxy URL generator
|