module Shrine::Plugins::ConfigurableStorage::ClassMethods

Public Instance Methods

configurable_storage_name(name) click to toggle source
# File lib/shrine/plugins/configurable_storage.rb, line 52
def configurable_storage_name(name)
  name = name.to_sym
  @storage_name = name
  @memoized_storage.delete(name)
end
find_storage(name) click to toggle source
Calls superclass method
# File lib/shrine/plugins/configurable_storage.rb, line 58
def find_storage(name)
  return super unless @storage_name

  name = name.to_sym
  @memoized_storage.fetch(name) do
    group = ConfigurableStorage.fetch(@storage_name || :default) do
      ConfigurableStorage.fetch(:default) do
        raise_storage_not_configured(name)
      end
    end
    group[name] || super
  end
end
raise_storage_not_configured(name) click to toggle source
# File lib/shrine/plugins/configurable_storage.rb, line 72
def raise_storage_not_configured(name)
  raise(
    StorageNotConfigured,
    format(
      "Uploader storage not set up for '%<storage_name>s'. " \
      "Make sure you setup the configurable storage: \n\n" \
      "Shrine::Plugins::ConfigurableStorage.configure do |config| \n" \
      "  config[:%<storage_key>s] = { \n"\
      "    cache: Shrine::Storage::..., \n"\
      "    store: Shrine::Storage::... \n"\
      "  }.freeze \n" \
      'end',
      storage_name: name,
      storage_key: @storage_name
    )
  )
end
setup() click to toggle source
# File lib/shrine/plugins/configurable_storage.rb, line 47
def setup
  @storage_name = nil
  @memoized_storage = {}
end