imgproxy 1.0.6 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +236 -92
  3. data/lib/imgproxy/builder.rb +54 -37
  4. data/lib/imgproxy/config.rb +96 -25
  5. data/lib/imgproxy/extensions/active_storage.rb +10 -0
  6. data/lib/imgproxy/extensions/shrine.rb +10 -0
  7. data/lib/imgproxy/options.rb +87 -72
  8. data/lib/imgproxy/options_aliases.rb +43 -0
  9. data/lib/imgproxy/options_casters/adjust.rb +22 -0
  10. data/lib/imgproxy/options_casters/array.rb +12 -0
  11. data/lib/imgproxy/options_casters/base64.rb +12 -0
  12. data/lib/imgproxy/options_casters/bool.rb +12 -0
  13. data/lib/imgproxy/options_casters/crop.rb +23 -0
  14. data/lib/imgproxy/options_casters/extend.rb +26 -0
  15. data/lib/imgproxy/options_casters/float.rb +16 -0
  16. data/lib/imgproxy/options_casters/gif_options.rb +21 -0
  17. data/lib/imgproxy/options_casters/gravity.rb +23 -0
  18. data/lib/imgproxy/options_casters/group.rb +21 -0
  19. data/lib/imgproxy/options_casters/integer.rb +10 -0
  20. data/lib/imgproxy/options_casters/jpeg_options.rb +26 -0
  21. data/lib/imgproxy/options_casters/png_options.rb +23 -0
  22. data/lib/imgproxy/options_casters/resize.rb +21 -0
  23. data/lib/imgproxy/options_casters/size.rb +24 -0
  24. data/lib/imgproxy/options_casters/string.rb +10 -0
  25. data/lib/imgproxy/options_casters/trim.rb +28 -0
  26. data/lib/imgproxy/options_casters/watermark.rb +30 -0
  27. data/lib/imgproxy/trim_array.rb +11 -0
  28. data/lib/imgproxy/url_adapters/active_storage.rb +25 -0
  29. data/lib/imgproxy/url_adapters/shrine.rb +15 -5
  30. data/lib/imgproxy/url_adapters.rb +0 -4
  31. data/lib/imgproxy/version.rb +1 -1
  32. data/lib/imgproxy.rb +78 -38
  33. metadata +69 -24
  34. data/lib/imgproxy/url_adapters/active_storage_gcs.rb +0 -31
  35. data/lib/imgproxy/url_adapters/active_storage_s3.rb +0 -23
  36. data/lib/imgproxy/url_adapters/shrine_s3.rb +0 -20
metadata CHANGED
@@ -1,43 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imgproxy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Alexandrovich
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-24 00:00:00.000000000 Z
11
+ date: 2021-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: anyway_config
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: benchmark-memory
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.1.2
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.1.2
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: pry-byebug
15
43
  requirement: !ruby/object:Gem::Requirement
16
44
  requirements:
17
45
  - - "~>"
18
46
  - !ruby/object:Gem::Version
19
- version: 3.6.0
47
+ version: 3.9.0
20
48
  type: :development
21
49
  prerelease: false
22
50
  version_requirements: !ruby/object:Gem::Requirement
23
51
  requirements:
24
52
  - - "~>"
25
53
  - !ruby/object:Gem::Version
26
- version: 3.6.0
54
+ version: 3.9.0
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: rspec
29
57
  requirement: !ruby/object:Gem::Requirement
30
58
  requirements:
31
59
  - - "~>"
32
60
  - !ruby/object:Gem::Version
33
- version: 3.8.0
61
+ version: 3.9.0
34
62
  type: :development
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
38
66
  - - "~>"
39
67
  - !ruby/object:Gem::Version
40
- version: 3.8.0
68
+ version: 3.9.0
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: rspec_junit_formatter
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -58,42 +86,42 @@ dependencies:
58
86
  requirements:
59
87
  - - "~>"
60
88
  - !ruby/object:Gem::Version
61
- version: 0.66.0
89
+ version: 0.83.0
62
90
  type: :development
63
91
  prerelease: false
64
92
  version_requirements: !ruby/object:Gem::Requirement
65
93
  requirements:
66
94
  - - "~>"
67
95
  - !ruby/object:Gem::Version
68
- version: 0.66.0
96
+ version: 0.83.0
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: rubocop-rspec
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
101
  - - "~>"
74
102
  - !ruby/object:Gem::Version
75
- version: 1.32.0
103
+ version: 1.38.1
76
104
  type: :development
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
108
  - - "~>"
81
109
  - !ruby/object:Gem::Version
82
- version: 1.32.0
110
+ version: 1.38.1
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: aws-sdk-s3
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
115
  - - "~>"
88
116
  - !ruby/object:Gem::Version
89
- version: 1.35.0
117
+ version: 1.64.0
90
118
  type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
122
  - - "~>"
95
123
  - !ruby/object:Gem::Version
96
- version: 1.35.0
124
+ version: 1.64.0
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: google-cloud-storage
99
127
  requirement: !ruby/object:Gem::Requirement
@@ -128,28 +156,28 @@ dependencies:
128
156
  requirements:
129
157
  - - "~>"
130
158
  - !ruby/object:Gem::Version
131
- version: '2.16'
159
+ version: '3.0'
132
160
  type: :development
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
164
  - - "~>"
137
165
  - !ruby/object:Gem::Version
138
- version: '2.16'
166
+ version: '3.0'
139
167
  - !ruby/object:Gem::Dependency
140
168
  name: sqlite3
141
169
  requirement: !ruby/object:Gem::Requirement
142
170
  requirements:
143
171
  - - "~>"
144
172
  - !ruby/object:Gem::Version
145
- version: 1.3.6
173
+ version: 1.4.1
146
174
  type: :development
147
175
  prerelease: false
148
176
  version_requirements: !ruby/object:Gem::Requirement
149
177
  requirements:
150
178
  - - "~>"
151
179
  - !ruby/object:Gem::Version
152
- version: 1.3.6
180
+ version: 1.4.1
153
181
  description: A gem that easily generates imgproxy URLs for your images
154
182
  email: darthsim@gmail.com
155
183
  executables: []
@@ -164,18 +192,35 @@ files:
164
192
  - lib/imgproxy/extensions/active_storage.rb
165
193
  - lib/imgproxy/extensions/shrine.rb
166
194
  - lib/imgproxy/options.rb
195
+ - lib/imgproxy/options_aliases.rb
196
+ - lib/imgproxy/options_casters/adjust.rb
197
+ - lib/imgproxy/options_casters/array.rb
198
+ - lib/imgproxy/options_casters/base64.rb
199
+ - lib/imgproxy/options_casters/bool.rb
200
+ - lib/imgproxy/options_casters/crop.rb
201
+ - lib/imgproxy/options_casters/extend.rb
202
+ - lib/imgproxy/options_casters/float.rb
203
+ - lib/imgproxy/options_casters/gif_options.rb
204
+ - lib/imgproxy/options_casters/gravity.rb
205
+ - lib/imgproxy/options_casters/group.rb
206
+ - lib/imgproxy/options_casters/integer.rb
207
+ - lib/imgproxy/options_casters/jpeg_options.rb
208
+ - lib/imgproxy/options_casters/png_options.rb
209
+ - lib/imgproxy/options_casters/resize.rb
210
+ - lib/imgproxy/options_casters/size.rb
211
+ - lib/imgproxy/options_casters/string.rb
212
+ - lib/imgproxy/options_casters/trim.rb
213
+ - lib/imgproxy/options_casters/watermark.rb
214
+ - lib/imgproxy/trim_array.rb
167
215
  - lib/imgproxy/url_adapters.rb
168
216
  - lib/imgproxy/url_adapters/active_storage.rb
169
- - lib/imgproxy/url_adapters/active_storage_gcs.rb
170
- - lib/imgproxy/url_adapters/active_storage_s3.rb
171
217
  - lib/imgproxy/url_adapters/shrine.rb
172
- - lib/imgproxy/url_adapters/shrine_s3.rb
173
218
  - lib/imgproxy/version.rb
174
219
  homepage: https://github.com/imgproxy/imgproxy.rb
175
220
  licenses:
176
221
  - MIT
177
222
  metadata: {}
178
- post_install_message:
223
+ post_install_message:
179
224
  rdoc_options: []
180
225
  require_paths:
181
226
  - lib
@@ -183,15 +228,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
183
228
  requirements:
184
229
  - - ">="
185
230
  - !ruby/object:Gem::Version
186
- version: '2.0'
231
+ version: '2.5'
187
232
  required_rubygems_version: !ruby/object:Gem::Requirement
188
233
  requirements:
189
234
  - - ">="
190
235
  - !ruby/object:Gem::Version
191
236
  version: '0'
192
237
  requirements: []
193
- rubygems_version: 3.0.2
194
- signing_key:
238
+ rubygems_version: 3.0.3
239
+ signing_key:
195
240
  specification_version: 4
196
241
  summary: imgproxy URL generator
197
242
  test_files: []
@@ -1,31 +0,0 @@
1
- require "imgproxy/url_adapters/active_storage"
2
-
3
- module Imgproxy
4
- class UrlAdapters
5
- # Adapter for ActiveStorage with S3 service
6
- #
7
- # Imgproxy.configure do |config|
8
- # config.url_adapters.add Imgproxy::UrlAdapters::ActiveStorageGCS.new("bucket_name")
9
- # end
10
- #
11
- # Imgproxy.url_for(user.avatar)
12
- class ActiveStorageGCS < Imgproxy::UrlAdapters::ActiveStorage
13
- # @param [String] bucket_name Google Cloud Storage bucket name
14
- def initialize(bucket_name)
15
- @bucket_name = bucket_name
16
- end
17
-
18
- # @return [String] Google Cloud Storage bucket name
19
- attr_reader :bucket_name
20
-
21
- def applicable?(image)
22
- super &&
23
- image.service.is_a?(::ActiveStorage::Service::GCSService)
24
- end
25
-
26
- def url(image)
27
- "gs://#{bucket_name}/#{image.key}"
28
- end
29
- end
30
- end
31
- end
@@ -1,23 +0,0 @@
1
- require "imgproxy/url_adapters/active_storage"
2
-
3
- module Imgproxy
4
- class UrlAdapters
5
- # Adapter for ActiveStorage with S3 service
6
- #
7
- # Imgproxy.configure do |config|
8
- # config.url_adapters.add Imgproxy::UrlAdapters::ActiveStorageS3.new
9
- # end
10
- #
11
- # Imgproxy.url_for(user.avatar)
12
- class ActiveStorageS3 < Imgproxy::UrlAdapters::ActiveStorage
13
- def applicable?(image)
14
- super &&
15
- image.service.is_a?(::ActiveStorage::Service::S3Service)
16
- end
17
-
18
- def url(image)
19
- "s3://#{image.service.bucket.name}/#{image.key}"
20
- end
21
- end
22
- end
23
- end
@@ -1,20 +0,0 @@
1
- module Imgproxy
2
- class UrlAdapters
3
- # Adapter for Shrine with S3 storage
4
- #
5
- # Imgproxy.configure do |config|
6
- # config.url_adapters.add Imgproxy::UrlAdapters::ShrineS3.new
7
- # end
8
- #
9
- # Imgproxy.url_for(user.avatar)
10
- class ShrineS3 < Imgproxy::UrlAdapters::Shrine
11
- def applicable?(image)
12
- super && image.storage.is_a?(::Shrine::Storage::S3)
13
- end
14
-
15
- def url(image)
16
- "s3://#{image.storage.bucket.name}/#{image.id}"
17
- end
18
- end
19
- end
20
- end