activestorage 6.1.4.1 → 7.0.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +130 -220
  3. data/MIT-LICENSE +1 -1
  4. data/README.md +25 -11
  5. data/app/assets/javascripts/activestorage.esm.js +844 -0
  6. data/app/assets/javascripts/activestorage.js +257 -376
  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/representations/base_controller.rb +5 -1
  11. data/app/controllers/active_storage/representations/proxy_controller.rb +6 -4
  12. data/app/controllers/active_storage/representations/redirect_controller.rb +6 -4
  13. data/app/controllers/concerns/active_storage/set_blob.rb +6 -2
  14. data/app/controllers/concerns/active_storage/set_current.rb +3 -3
  15. data/app/controllers/concerns/active_storage/streaming.rb +65 -0
  16. data/app/javascript/activestorage/ujs.js +1 -1
  17. data/app/models/active_storage/attachment.rb +36 -3
  18. data/app/models/active_storage/blob/representable.rb +7 -5
  19. data/app/models/active_storage/blob.rb +26 -27
  20. data/app/models/active_storage/current.rb +12 -2
  21. data/app/models/active_storage/preview.rb +6 -4
  22. data/app/models/active_storage/record.rb +1 -1
  23. data/app/models/active_storage/variant.rb +3 -6
  24. data/app/models/active_storage/variant_record.rb +2 -0
  25. data/app/models/active_storage/variant_with_record.rb +9 -5
  26. data/app/models/active_storage/variation.rb +2 -2
  27. data/config/routes.rb +10 -10
  28. data/db/migrate/20170806125915_create_active_storage_tables.rb +29 -8
  29. data/db/update_migrate/20191206030411_create_active_storage_variant_records.rb +15 -2
  30. data/lib/active_storage/analyzer/audio_analyzer.rb +65 -0
  31. data/lib/active_storage/analyzer/image_analyzer/image_magick.rb +39 -0
  32. data/lib/active_storage/analyzer/image_analyzer/vips.rb +49 -0
  33. data/lib/active_storage/analyzer/image_analyzer.rb +2 -30
  34. data/lib/active_storage/analyzer/video_analyzer.rb +26 -11
  35. data/lib/active_storage/analyzer.rb +8 -4
  36. data/lib/active_storage/attached/changes/create_many.rb +7 -3
  37. data/lib/active_storage/attached/changes/create_one.rb +1 -1
  38. data/lib/active_storage/attached/changes/create_one_of_many.rb +1 -1
  39. data/lib/active_storage/attached/changes/delete_many.rb +1 -1
  40. data/lib/active_storage/attached/changes/delete_one.rb +1 -1
  41. data/lib/active_storage/attached/changes/detach_many.rb +18 -0
  42. data/lib/active_storage/attached/changes/detach_one.rb +24 -0
  43. data/lib/active_storage/attached/changes/purge_many.rb +27 -0
  44. data/lib/active_storage/attached/changes/purge_one.rb +27 -0
  45. data/lib/active_storage/attached/changes.rb +7 -1
  46. data/lib/active_storage/attached/many.rb +27 -15
  47. data/lib/active_storage/attached/model.rb +31 -5
  48. data/lib/active_storage/attached/one.rb +32 -27
  49. data/lib/active_storage/downloader.rb +2 -2
  50. data/lib/active_storage/engine.rb +28 -1
  51. data/lib/active_storage/fixture_set.rb +76 -0
  52. data/lib/active_storage/gem_version.rb +4 -4
  53. data/lib/active_storage/previewer.rb +4 -4
  54. data/lib/active_storage/reflection.rb +12 -2
  55. data/lib/active_storage/service/azure_storage_service.rb +1 -1
  56. data/lib/active_storage/service/configurator.rb +1 -1
  57. data/lib/active_storage/service/disk_service.rb +13 -18
  58. data/lib/active_storage/service/gcs_service.rb +91 -7
  59. data/lib/active_storage/service/mirror_service.rb +1 -1
  60. data/lib/active_storage/service/registry.rb +1 -1
  61. data/lib/active_storage/service/s3_service.rb +4 -4
  62. data/lib/active_storage/service.rb +3 -3
  63. data/lib/active_storage/transformers/image_processing_transformer.rb +1 -1
  64. data/lib/active_storage/transformers/transformer.rb +1 -1
  65. data/lib/active_storage.rb +3 -1
  66. metadata +30 -21
  67. data/app/controllers/concerns/active_storage/set_headers.rb +0 -12
@@ -17,7 +17,7 @@ module ActiveStorage
17
17
  :url_for_direct_upload, :headers_for_direct_upload, :path_for, to: :primary
18
18
 
19
19
  # Stitch together from named services.
20
- def self.build(primary:, mirrors:, name:, configurator:, **options) #:nodoc:
20
+ def self.build(primary:, mirrors:, name:, configurator:, **options) # :nodoc:
21
21
  new(
22
22
  primary: configurator.build(primary),
23
23
  mirrors: mirrors.collect { |mirror_name| configurator.build mirror_name }
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveStorage
4
- class Service::Registry #:nodoc:
4
+ class Service::Registry # :nodoc:
5
5
  def initialize(configurations)
6
6
  @configurations = configurations.deep_symbolize_keys
7
7
  @services = {}
@@ -96,14 +96,14 @@ module ActiveStorage
96
96
  end
97
97
 
98
98
  private
99
- def private_url(key, expires_in:, filename:, disposition:, content_type:, **)
99
+ def private_url(key, expires_in:, filename:, disposition:, content_type:, **client_opts)
100
100
  object_for(key).presigned_url :get, expires_in: expires_in.to_i,
101
101
  response_content_disposition: content_disposition_with(type: disposition, filename: filename),
102
- response_content_type: content_type
102
+ response_content_type: content_type, **client_opts
103
103
  end
104
104
 
105
- def public_url(key, **)
106
- object_for(key).public_url
105
+ def public_url(key, **client_opts)
106
+ object_for(key).public_url(**client_opts)
107
107
  end
108
108
 
109
109
 
@@ -35,8 +35,8 @@ module ActiveStorage
35
35
  # can configure the service to use like this:
36
36
  #
37
37
  # ActiveStorage::Blob.service = ActiveStorage::Service.configure(
38
- # :Disk,
39
- # root: Pathname("/foo/bar/storage")
38
+ # :local,
39
+ # { local: {service: "Disk", root: Pathname("/tmp/foo/storage") } }
40
40
  # )
41
41
  class Service
42
42
  extend ActiveSupport::Autoload
@@ -57,7 +57,7 @@ module ActiveStorage
57
57
  # Passes the configurator and all of the service's config as keyword args.
58
58
  #
59
59
  # See MirrorService for an example.
60
- def build(configurator:, name:, service: nil, **service_config) #:nodoc:
60
+ def build(configurator:, name:, service: nil, **service_config) # :nodoc:
61
61
  new(**service_config).tap do |service_instance|
62
62
  service_instance.name = name
63
63
  end
@@ -31,7 +31,7 @@ module ActiveStorage
31
31
  if name.to_s == "combine_options"
32
32
  raise ArgumentError, <<~ERROR.squish
33
33
  Active Storage's ImageProcessing transformer doesn't support :combine_options,
34
- as it always generates a single ImageMagick command.
34
+ as it always generates a single command.
35
35
  ERROR
36
36
  end
37
37
 
@@ -31,7 +31,7 @@ module ActiveStorage
31
31
  private
32
32
  # Returns an open Tempfile containing a transformed image in the given +format+.
33
33
  # All subclasses implement this method.
34
- def process(file, format:) #:doc:
34
+ def process(file, format:) # :doc:
35
35
  raise NotImplementedError
36
36
  end
37
37
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  #--
4
- # Copyright (c) 2017-2020 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,6 +37,7 @@ 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
@@ -59,6 +60,7 @@ module ActiveStorage
59
60
  mattr_accessor :content_types_allowed_inline, default: []
60
61
 
61
62
  mattr_accessor :service_urls_expire_in, default: 5.minutes
63
+ mattr_accessor :urls_expire_in
62
64
 
63
65
  mattr_accessor :routes_prefix, default: "/rails/active_storage"
64
66
  mattr_accessor :draw_routes, default: true
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.4.1
4
+ version: 7.0.0.alpha1
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: 2021-08-19 00:00:00.000000000 Z
11
+ date: 2021-09-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.4.1
19
+ version: 7.0.0.alpha1
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.4.1
26
+ version: 7.0.0.alpha1
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.4.1
33
+ version: 7.0.0.alpha1
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.4.1
40
+ version: 7.0.0.alpha1
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.4.1
47
+ version: 7.0.0.alpha1
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.4.1
54
+ version: 7.0.0.alpha1
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.4.1
61
+ version: 7.0.0.alpha1
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.4.1
68
+ version: 7.0.0.alpha1
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
@@ -148,7 +149,10 @@ files:
148
149
  - db/update_migrate/20191206030411_create_active_storage_variant_records.rb
149
150
  - lib/active_storage.rb
150
151
  - lib/active_storage/analyzer.rb
152
+ - lib/active_storage/analyzer/audio_analyzer.rb
151
153
  - lib/active_storage/analyzer/image_analyzer.rb
154
+ - lib/active_storage/analyzer/image_analyzer/image_magick.rb
155
+ - lib/active_storage/analyzer/image_analyzer/vips.rb
152
156
  - lib/active_storage/analyzer/null_analyzer.rb
153
157
  - lib/active_storage/analyzer/video_analyzer.rb
154
158
  - lib/active_storage/attached.rb
@@ -158,12 +162,17 @@ files:
158
162
  - lib/active_storage/attached/changes/create_one_of_many.rb
159
163
  - lib/active_storage/attached/changes/delete_many.rb
160
164
  - lib/active_storage/attached/changes/delete_one.rb
165
+ - lib/active_storage/attached/changes/detach_many.rb
166
+ - lib/active_storage/attached/changes/detach_one.rb
167
+ - lib/active_storage/attached/changes/purge_many.rb
168
+ - lib/active_storage/attached/changes/purge_one.rb
161
169
  - lib/active_storage/attached/many.rb
162
170
  - lib/active_storage/attached/model.rb
163
171
  - lib/active_storage/attached/one.rb
164
172
  - lib/active_storage/downloader.rb
165
173
  - lib/active_storage/engine.rb
166
174
  - lib/active_storage/errors.rb
175
+ - lib/active_storage/fixture_set.rb
167
176
  - lib/active_storage/gem_version.rb
168
177
  - lib/active_storage/log_subscriber.rb
169
178
  - lib/active_storage/previewer.rb
@@ -188,11 +197,11 @@ licenses:
188
197
  - MIT
189
198
  metadata:
190
199
  bug_tracker_uri: https://github.com/rails/rails/issues
191
- changelog_uri: https://github.com/rails/rails/blob/v6.1.4.1/activestorage/CHANGELOG.md
192
- documentation_uri: https://api.rubyonrails.org/v6.1.4.1/
200
+ changelog_uri: https://github.com/rails/rails/blob/v7.0.0.alpha1/activestorage/CHANGELOG.md
201
+ documentation_uri: https://api.rubyonrails.org/v7.0.0.alpha1/
193
202
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
194
- source_code_uri: https://github.com/rails/rails/tree/v6.1.4.1/activestorage
195
- post_install_message:
203
+ source_code_uri: https://github.com/rails/rails/tree/v7.0.0.alpha1/activestorage
204
+ post_install_message:
196
205
  rdoc_options: []
197
206
  require_paths:
198
207
  - lib
@@ -200,15 +209,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
200
209
  requirements:
201
210
  - - ">="
202
211
  - !ruby/object:Gem::Version
203
- version: 2.5.0
212
+ version: 2.7.0
204
213
  required_rubygems_version: !ruby/object:Gem::Requirement
205
214
  requirements:
206
- - - ">="
215
+ - - ">"
207
216
  - !ruby/object:Gem::Version
208
- version: '0'
217
+ version: 1.3.1
209
218
  requirements: []
210
- rubygems_version: 3.2.15
211
- signing_key:
219
+ rubygems_version: 3.1.6
220
+ signing_key:
212
221
  specification_version: 4
213
222
  summary: Local and cloud file storage framework.
214
223
  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