activestorage 6.1.7 → 7.0.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.

Potentially problematic release.


This version of activestorage might be problematic. Click here for more details.

Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +153 -257
  3. data/MIT-LICENSE +1 -1
  4. data/README.md +25 -11
  5. data/app/assets/javascripts/activestorage.esm.js +856 -0
  6. data/app/assets/javascripts/activestorage.js +270 -377
  7. data/app/controllers/active_storage/base_controller.rb +1 -10
  8. data/app/controllers/active_storage/blobs/proxy_controller.rb +14 -4
  9. data/app/controllers/active_storage/blobs/redirect_controller.rb +6 -4
  10. data/app/controllers/active_storage/direct_uploads_controller.rb +7 -1
  11. data/app/controllers/active_storage/disk_controller.rb +1 -0
  12. data/app/controllers/active_storage/representations/base_controller.rb +5 -1
  13. data/app/controllers/active_storage/representations/proxy_controller.rb +6 -4
  14. data/app/controllers/active_storage/representations/redirect_controller.rb +6 -4
  15. data/app/controllers/concerns/active_storage/set_blob.rb +6 -2
  16. data/app/controllers/concerns/active_storage/set_current.rb +3 -3
  17. data/app/controllers/concerns/active_storage/streaming.rb +65 -0
  18. data/app/javascript/activestorage/blob_record.js +10 -3
  19. data/app/javascript/activestorage/direct_upload.js +4 -2
  20. data/app/javascript/activestorage/direct_upload_controller.js +9 -1
  21. data/app/javascript/activestorage/ujs.js +1 -1
  22. data/app/models/active_storage/attachment.rb +35 -2
  23. data/app/models/active_storage/blob/representable.rb +7 -5
  24. data/app/models/active_storage/blob.rb +92 -36
  25. data/app/models/active_storage/current.rb +12 -2
  26. data/app/models/active_storage/preview.rb +6 -4
  27. data/app/models/active_storage/record.rb +1 -1
  28. data/app/models/active_storage/variant.rb +6 -9
  29. data/app/models/active_storage/variant_record.rb +2 -0
  30. data/app/models/active_storage/variant_with_record.rb +9 -5
  31. data/app/models/active_storage/variation.rb +3 -3
  32. data/config/routes.rb +10 -10
  33. data/db/migrate/20170806125915_create_active_storage_tables.rb +14 -5
  34. data/db/update_migrate/20190112182829_add_service_name_to_active_storage_blobs.rb +0 -4
  35. data/db/update_migrate/20191206030411_create_active_storage_variant_records.rb +0 -2
  36. data/db/update_migrate/20211119233751_remove_not_null_on_active_storage_blobs_checksum.rb +5 -0
  37. data/lib/active_storage/analyzer/audio_analyzer.rb +65 -0
  38. data/lib/active_storage/analyzer/image_analyzer/image_magick.rb +39 -0
  39. data/lib/active_storage/analyzer/image_analyzer/vips.rb +49 -0
  40. data/lib/active_storage/analyzer/image_analyzer.rb +2 -30
  41. data/lib/active_storage/analyzer/video_analyzer.rb +26 -11
  42. data/lib/active_storage/analyzer.rb +8 -4
  43. data/lib/active_storage/attached/changes/create_many.rb +7 -3
  44. data/lib/active_storage/attached/changes/create_one.rb +1 -1
  45. data/lib/active_storage/attached/changes/create_one_of_many.rb +1 -1
  46. data/lib/active_storage/attached/changes/delete_many.rb +1 -1
  47. data/lib/active_storage/attached/changes/delete_one.rb +1 -1
  48. data/lib/active_storage/attached/changes/detach_many.rb +18 -0
  49. data/lib/active_storage/attached/changes/detach_one.rb +24 -0
  50. data/lib/active_storage/attached/changes/purge_many.rb +27 -0
  51. data/lib/active_storage/attached/changes/purge_one.rb +27 -0
  52. data/lib/active_storage/attached/changes.rb +7 -1
  53. data/lib/active_storage/attached/many.rb +27 -15
  54. data/lib/active_storage/attached/model.rb +35 -7
  55. data/lib/active_storage/attached/one.rb +32 -27
  56. data/lib/active_storage/direct_upload_token.rb +59 -0
  57. data/lib/active_storage/downloader.rb +4 -4
  58. data/lib/active_storage/engine.rb +42 -16
  59. data/lib/active_storage/errors.rb +3 -0
  60. data/lib/active_storage/fixture_set.rb +76 -0
  61. data/lib/active_storage/gem_version.rb +3 -3
  62. data/lib/active_storage/previewer/video_previewer.rb +0 -2
  63. data/lib/active_storage/previewer.rb +4 -4
  64. data/lib/active_storage/reflection.rb +12 -2
  65. data/lib/active_storage/service/azure_storage_service.rb +28 -6
  66. data/lib/active_storage/service/configurator.rb +1 -1
  67. data/lib/active_storage/service/disk_service.rb +24 -19
  68. data/lib/active_storage/service/gcs_service.rb +109 -11
  69. data/lib/active_storage/service/mirror_service.rb +2 -2
  70. data/lib/active_storage/service/registry.rb +1 -1
  71. data/lib/active_storage/service/s3_service.rb +37 -15
  72. data/lib/active_storage/service.rb +13 -5
  73. data/lib/active_storage/transformers/image_processing_transformer.rb +1 -66
  74. data/lib/active_storage/transformers/transformer.rb +1 -1
  75. data/lib/active_storage.rb +6 -292
  76. metadata +30 -19
  77. data/app/controllers/concerns/active_storage/set_headers.rb +0 -12
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  #--
4
- # Copyright (c) 2017-2022 David Heinemeier Hansson, Basecamp
4
+ # Copyright (c) 2017-2021 David Heinemeier Hansson, Basecamp
5
5
  #
6
6
  # Permission is hereby granted, free of charge, to any person obtaining
7
7
  # a copy of this software and associated documentation files (the
@@ -37,9 +37,11 @@ module ActiveStorage
37
37
  extend ActiveSupport::Autoload
38
38
 
39
39
  autoload :Attached
40
+ autoload :FixtureSet
40
41
  autoload :Service
41
42
  autoload :Previewer
42
43
  autoload :Analyzer
44
+ autoload :DirectUploadToken
43
45
 
44
46
  mattr_accessor :logger
45
47
  mattr_accessor :verifier
@@ -58,298 +60,8 @@ module ActiveStorage
58
60
  mattr_accessor :content_types_to_serve_as_binary, default: []
59
61
  mattr_accessor :content_types_allowed_inline, default: []
60
62
 
61
- mattr_accessor :supported_image_processing_methods, default: [
62
- "adaptive_blur",
63
- "adaptive_resize",
64
- "adaptive_sharpen",
65
- "adjoin",
66
- "affine",
67
- "alpha",
68
- "annotate",
69
- "antialias",
70
- "append",
71
- "apply",
72
- "attenuate",
73
- "authenticate",
74
- "auto_gamma",
75
- "auto_level",
76
- "auto_orient",
77
- "auto_threshold",
78
- "backdrop",
79
- "background",
80
- "bench",
81
- "bias",
82
- "bilateral_blur",
83
- "black_point_compensation",
84
- "black_threshold",
85
- "blend",
86
- "blue_primary",
87
- "blue_shift",
88
- "blur",
89
- "border",
90
- "bordercolor",
91
- "borderwidth",
92
- "brightness_contrast",
93
- "cache",
94
- "canny",
95
- "caption",
96
- "channel",
97
- "channel_fx",
98
- "charcoal",
99
- "chop",
100
- "clahe",
101
- "clamp",
102
- "clip",
103
- "clip_path",
104
- "clone",
105
- "clut",
106
- "coalesce",
107
- "colorize",
108
- "colormap",
109
- "color_matrix",
110
- "colors",
111
- "colorspace",
112
- "colourspace",
113
- "color_threshold",
114
- "combine",
115
- "combine_options",
116
- "comment",
117
- "compare",
118
- "complex",
119
- "compose",
120
- "composite",
121
- "compress",
122
- "connected_components",
123
- "contrast",
124
- "contrast_stretch",
125
- "convert",
126
- "convolve",
127
- "copy",
128
- "crop",
129
- "cycle",
130
- "deconstruct",
131
- "define",
132
- "delay",
133
- "delete",
134
- "density",
135
- "depth",
136
- "descend",
137
- "deskew",
138
- "despeckle",
139
- "direction",
140
- "displace",
141
- "dispose",
142
- "dissimilarity_threshold",
143
- "dissolve",
144
- "distort",
145
- "dither",
146
- "draw",
147
- "duplicate",
148
- "edge",
149
- "emboss",
150
- "encoding",
151
- "endian",
152
- "enhance",
153
- "equalize",
154
- "evaluate",
155
- "evaluate_sequence",
156
- "extent",
157
- "extract",
158
- "family",
159
- "features",
160
- "fft",
161
- "fill",
162
- "filter",
163
- "flatten",
164
- "flip",
165
- "floodfill",
166
- "flop",
167
- "font",
168
- "foreground",
169
- "format",
170
- "frame",
171
- "function",
172
- "fuzz",
173
- "fx",
174
- "gamma",
175
- "gaussian_blur",
176
- "geometry",
177
- "gravity",
178
- "grayscale",
179
- "green_primary",
180
- "hald_clut",
181
- "highlight_color",
182
- "hough_lines",
183
- "iconGeometry",
184
- "iconic",
185
- "identify",
186
- "ift",
187
- "illuminant",
188
- "immutable",
189
- "implode",
190
- "insert",
191
- "intensity",
192
- "intent",
193
- "interlace",
194
- "interline_spacing",
195
- "interpolate",
196
- "interpolative_resize",
197
- "interword_spacing",
198
- "kerning",
199
- "kmeans",
200
- "kuwahara",
201
- "label",
202
- "lat",
203
- "layers",
204
- "level",
205
- "level_colors",
206
- "limit",
207
- "limits",
208
- "linear_stretch",
209
- "linewidth",
210
- "liquid_rescale",
211
- "list",
212
- "loader",
213
- "log",
214
- "loop",
215
- "lowlight_color",
216
- "magnify",
217
- "map",
218
- "mattecolor",
219
- "median",
220
- "mean_shift",
221
- "metric",
222
- "mode",
223
- "modulate",
224
- "moments",
225
- "monitor",
226
- "monochrome",
227
- "morph",
228
- "morphology",
229
- "mosaic",
230
- "motion_blur",
231
- "name",
232
- "negate",
233
- "noise",
234
- "normalize",
235
- "opaque",
236
- "ordered_dither",
237
- "orient",
238
- "page",
239
- "paint",
240
- "pause",
241
- "perceptible",
242
- "ping",
243
- "pointsize",
244
- "polaroid",
245
- "poly",
246
- "posterize",
247
- "precision",
248
- "preview",
249
- "process",
250
- "quality",
251
- "quantize",
252
- "quiet",
253
- "radial_blur",
254
- "raise",
255
- "random_threshold",
256
- "range_threshold",
257
- "red_primary",
258
- "regard_warnings",
259
- "region",
260
- "remote",
261
- "render",
262
- "repage",
263
- "resample",
264
- "resize",
265
- "resize_to_fill",
266
- "resize_to_fit",
267
- "resize_to_limit",
268
- "resize_and_pad",
269
- "respect_parentheses",
270
- "reverse",
271
- "roll",
272
- "rotate",
273
- "sample",
274
- "sampling_factor",
275
- "saver",
276
- "scale",
277
- "scene",
278
- "screen",
279
- "seed",
280
- "segment",
281
- "selective_blur",
282
- "separate",
283
- "sepia_tone",
284
- "shade",
285
- "shadow",
286
- "shared_memory",
287
- "sharpen",
288
- "shave",
289
- "shear",
290
- "sigmoidal_contrast",
291
- "silent",
292
- "similarity_threshold",
293
- "size",
294
- "sketch",
295
- "smush",
296
- "snaps",
297
- "solarize",
298
- "sort_pixels",
299
- "sparse_color",
300
- "splice",
301
- "spread",
302
- "statistic",
303
- "stegano",
304
- "stereo",
305
- "storage_type",
306
- "stretch",
307
- "strip",
308
- "stroke",
309
- "strokewidth",
310
- "style",
311
- "subimage_search",
312
- "swap",
313
- "swirl",
314
- "synchronize",
315
- "taint",
316
- "text_font",
317
- "threshold",
318
- "thumbnail",
319
- "tile_offset",
320
- "tint",
321
- "title",
322
- "transform",
323
- "transparent",
324
- "transparent_color",
325
- "transpose",
326
- "transverse",
327
- "treedepth",
328
- "trim",
329
- "type",
330
- "undercolor",
331
- "unique_colors",
332
- "units",
333
- "unsharp",
334
- "update",
335
- "valid_image",
336
- "view",
337
- "vignette",
338
- "virtual_pixel",
339
- "visual",
340
- "watermark",
341
- "wave",
342
- "wavelet_denoise",
343
- "weight",
344
- "white_balance",
345
- "white_point",
346
- "white_threshold",
347
- "window",
348
- "window_group"
349
- ]
350
- mattr_accessor :unsupported_image_processing_arguments
351
-
352
63
  mattr_accessor :service_urls_expire_in, default: 5.minutes
64
+ mattr_accessor :urls_expire_in
353
65
 
354
66
  mattr_accessor :routes_prefix, default: "/rails/active_storage"
355
67
  mattr_accessor :draw_routes, default: true
@@ -360,6 +72,8 @@ module ActiveStorage
360
72
 
361
73
  mattr_accessor :video_preview_arguments, default: "-y -vframes 1 -f image2"
362
74
 
75
+ mattr_accessor :silence_invalid_content_types_warning, default: false
76
+
363
77
  module Transformers
364
78
  extend ActiveSupport::Autoload
365
79
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activestorage
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.7
4
+ version: 7.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-09 00:00:00.000000000 Z
11
+ date: 2021-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 6.1.7
19
+ version: 7.0.0
20
20
  type: :runtime
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: 6.1.7
26
+ version: 7.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: actionpack
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 6.1.7
33
+ version: 7.0.0
34
34
  type: :runtime
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: 6.1.7
40
+ version: 7.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activejob
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 6.1.7
47
+ version: 7.0.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 6.1.7
54
+ version: 7.0.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: activerecord
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 6.1.7
61
+ version: 7.0.0
62
62
  type: :runtime
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: 6.1.7
68
+ version: 7.0.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: marcel
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -103,6 +103,7 @@ files:
103
103
  - CHANGELOG.md
104
104
  - MIT-LICENSE
105
105
  - README.md
106
+ - app/assets/javascripts/activestorage.esm.js
106
107
  - app/assets/javascripts/activestorage.js
107
108
  - app/controllers/active_storage/base_controller.rb
108
109
  - app/controllers/active_storage/blobs/proxy_controller.rb
@@ -115,7 +116,7 @@ files:
115
116
  - app/controllers/concerns/active_storage/file_server.rb
116
117
  - app/controllers/concerns/active_storage/set_blob.rb
117
118
  - app/controllers/concerns/active_storage/set_current.rb
118
- - app/controllers/concerns/active_storage/set_headers.rb
119
+ - app/controllers/concerns/active_storage/streaming.rb
119
120
  - app/javascript/activestorage/blob_record.js
120
121
  - app/javascript/activestorage/blob_upload.js
121
122
  - app/javascript/activestorage/direct_upload.js
@@ -146,9 +147,13 @@ files:
146
147
  - db/migrate/20170806125915_create_active_storage_tables.rb
147
148
  - db/update_migrate/20190112182829_add_service_name_to_active_storage_blobs.rb
148
149
  - db/update_migrate/20191206030411_create_active_storage_variant_records.rb
150
+ - db/update_migrate/20211119233751_remove_not_null_on_active_storage_blobs_checksum.rb
149
151
  - lib/active_storage.rb
150
152
  - lib/active_storage/analyzer.rb
153
+ - lib/active_storage/analyzer/audio_analyzer.rb
151
154
  - lib/active_storage/analyzer/image_analyzer.rb
155
+ - lib/active_storage/analyzer/image_analyzer/image_magick.rb
156
+ - lib/active_storage/analyzer/image_analyzer/vips.rb
152
157
  - lib/active_storage/analyzer/null_analyzer.rb
153
158
  - lib/active_storage/analyzer/video_analyzer.rb
154
159
  - lib/active_storage/attached.rb
@@ -158,12 +163,18 @@ files:
158
163
  - lib/active_storage/attached/changes/create_one_of_many.rb
159
164
  - lib/active_storage/attached/changes/delete_many.rb
160
165
  - lib/active_storage/attached/changes/delete_one.rb
166
+ - lib/active_storage/attached/changes/detach_many.rb
167
+ - lib/active_storage/attached/changes/detach_one.rb
168
+ - lib/active_storage/attached/changes/purge_many.rb
169
+ - lib/active_storage/attached/changes/purge_one.rb
161
170
  - lib/active_storage/attached/many.rb
162
171
  - lib/active_storage/attached/model.rb
163
172
  - lib/active_storage/attached/one.rb
173
+ - lib/active_storage/direct_upload_token.rb
164
174
  - lib/active_storage/downloader.rb
165
175
  - lib/active_storage/engine.rb
166
176
  - lib/active_storage/errors.rb
177
+ - lib/active_storage/fixture_set.rb
167
178
  - lib/active_storage/gem_version.rb
168
179
  - lib/active_storage/log_subscriber.rb
169
180
  - lib/active_storage/previewer.rb
@@ -188,12 +199,12 @@ licenses:
188
199
  - MIT
189
200
  metadata:
190
201
  bug_tracker_uri: https://github.com/rails/rails/issues
191
- changelog_uri: https://github.com/rails/rails/blob/v6.1.7/activestorage/CHANGELOG.md
192
- documentation_uri: https://api.rubyonrails.org/v6.1.7/
202
+ changelog_uri: https://github.com/rails/rails/blob/v7.0.0/activestorage/CHANGELOG.md
203
+ documentation_uri: https://api.rubyonrails.org/v7.0.0/
193
204
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
194
- source_code_uri: https://github.com/rails/rails/tree/v6.1.7/activestorage
205
+ source_code_uri: https://github.com/rails/rails/tree/v7.0.0/activestorage
195
206
  rubygems_mfa_required: 'true'
196
- post_install_message:
207
+ post_install_message:
197
208
  rdoc_options: []
198
209
  require_paths:
199
210
  - lib
@@ -201,15 +212,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
201
212
  requirements:
202
213
  - - ">="
203
214
  - !ruby/object:Gem::Version
204
- version: 2.5.0
215
+ version: 2.7.0
205
216
  required_rubygems_version: !ruby/object:Gem::Requirement
206
217
  requirements:
207
218
  - - ">="
208
219
  - !ruby/object:Gem::Version
209
220
  version: '0'
210
221
  requirements: []
211
- rubygems_version: 3.3.3
212
- signing_key:
222
+ rubygems_version: 3.2.32
223
+ signing_key:
213
224
  specification_version: 4
214
225
  summary: Local and cloud file storage framework.
215
226
  test_files: []
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActiveStorage::SetHeaders #:nodoc:
4
- extend ActiveSupport::Concern
5
-
6
- private
7
- def set_content_headers_from(blob)
8
- response.headers["Content-Type"] = blob.content_type_for_serving
9
- response.headers["Content-Disposition"] = ActionDispatch::Http::ContentDisposition.format \
10
- disposition: blob.forced_disposition_for_serving || params[:disposition] || "inline", filename: blob.filename.sanitized
11
- end
12
- end