aboutsummaryrefslogtreecommitdiffstats
path: root/lib/active_storage/engine.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2017-07-11 18:53:17 +0200
committerDavid Heinemeier Hansson <david@loudthinking.com>2017-07-11 18:53:17 +0200
commit1966c188cfb06b39a47082e2f6c6e33a43668ae5 (patch)
treeda96a28a10f331a38eb88a8b033f24bf38948d1e /lib/active_storage/engine.rb
parent9cf33478991b9fab663d5502342729b98eafa2bd (diff)
downloadrails-1966c188cfb06b39a47082e2f6c6e33a43668ae5.tar.gz
rails-1966c188cfb06b39a47082e2f6c6e33a43668ae5.tar.bz2
rails-1966c188cfb06b39a47082e2f6c6e33a43668ae5.zip
Very incomplete first stab
Diffstat (limited to 'lib/active_storage/engine.rb')
-rw-r--r--lib/active_storage/engine.rb59
1 files changed, 36 insertions, 23 deletions
diff --git a/lib/active_storage/engine.rb b/lib/active_storage/engine.rb
index c251f522c6..8918b179e0 100644
--- a/lib/active_storage/engine.rb
+++ b/lib/active_storage/engine.rb
@@ -33,29 +33,42 @@ module ActiveStorage
end
end
- config.after_initialize do |app|
- if config_choice = app.config.active_storage.service
- config_file = Pathname.new(Rails.root.join("config/storage_services.yml"))
- raise("Couldn't find Active Storage configuration in #{config_file}") unless config_file.exist?
-
- require "yaml"
- require "erb"
-
- configs =
- begin
- YAML.load(ERB.new(config_file.read).result) || {}
- rescue Psych::SyntaxError => e
- raise "YAML syntax error occurred while parsing #{config_file}. " \
- "Please note that YAML must be consistently indented using spaces. Tabs are not allowed. " \
- "Error: #{e.message}"
- end
-
- ActiveStorage::Blob.service =
- begin
- ActiveStorage::Service.configure config_choice, configs
- rescue => e
- raise e, "Cannot load `Rails.config.active_storage.service`:\n#{e.message}", e.backtrace
- end
+ initializer "active_storage.verifiers" do
+ require "active_storage/verified_key_with_expiration"
+ require "active_storage/variant"
+
+ config.after_initialize do |app|
+ ActiveStorage::VerifiedKeyWithExpiration.verifier = \
+ ActiveStorage::Variant.verifier = \
+ Rails.application.message_verifier('ActiveStorage')
+ end
+ end
+
+ initializer "active_storage.services" do
+ config.after_initialize do |app|
+ if config_choice = app.config.active_storage.service
+ config_file = Pathname.new(Rails.root.join("config/storage_services.yml"))
+ raise("Couldn't find Active Storage configuration in #{config_file}") unless config_file.exist?
+
+ require "yaml"
+ require "erb"
+
+ configs =
+ begin
+ YAML.load(ERB.new(config_file.read).result) || {}
+ rescue Psych::SyntaxError => e
+ raise "YAML syntax error occurred while parsing #{config_file}. " \
+ "Please note that YAML must be consistently indented using spaces. Tabs are not allowed. " \
+ "Error: #{e.message}"
+ end
+
+ ActiveStorage::Blob.service =
+ begin
+ ActiveStorage::Service.configure config_choice, configs
+ rescue => e
+ raise e, "Cannot load `Rails.config.active_storage.service`:\n#{e.message}", e.backtrace
+ end
+ end
end
end
end