diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2017-07-11 18:53:17 +0200 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2017-07-11 18:53:17 +0200 |
commit | 1966c188cfb06b39a47082e2f6c6e33a43668ae5 (patch) | |
tree | da96a28a10f331a38eb88a8b033f24bf38948d1e /lib/active_storage/engine.rb | |
parent | 9cf33478991b9fab663d5502342729b98eafa2bd (diff) | |
download | rails-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.rb | 59 |
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 |