Module: Shrine::Plugins

Defined in:
lib/shrine/plugins.rb,
lib/shrine/plugins/copy.rb,
lib/shrine/plugins/hooks.rb,
lib/shrine/plugins/backup.rb,
lib/shrine/plugins/moving.rb,
lib/shrine/plugins/sequel.rb,
lib/shrine/plugins/logging.rb,
lib/shrine/plugins/recache.rb,
lib/shrine/plugins/data_uri.rb,
lib/shrine/plugins/included.rb,
lib/shrine/plugins/tempfile.rb,
lib/shrine/plugins/versions.rb,
lib/shrine/plugins/rack_file.rb,
lib/shrine/plugins/signature.rb,
lib/shrine/plugins/delete_raw.rb,
lib/shrine/plugins/keep_files.rb,
lib/shrine/plugins/processing.rb,
lib/shrine/plugins/remote_url.rb,
lib/shrine/plugins/default_url.rb,
lib/shrine/plugins/parallelize.rb,
lib/shrine/plugins/parsed_json.rb,
lib/shrine/plugins/activerecord.rb,
lib/shrine/plugins/add_metadata.rb,
lib/shrine/plugins/multi_delete.rb,
lib/shrine/plugins/backgrounding.rb,
lib/shrine/plugins/direct_upload.rb,
lib/shrine/plugins/rack_response.rb,
lib/shrine/plugins/module_include.rb,
lib/shrine/plugins/remove_invalid.rb,
lib/shrine/plugins/upload_options.rb,
lib/shrine/plugins/default_storage.rb,
lib/shrine/plugins/delete_promoted.rb,
lib/shrine/plugins/dynamic_storage.rb,
lib/shrine/plugins/infer_extension.rb,
lib/shrine/plugins/instrumentation.rb,
lib/shrine/plugins/pretty_location.rb,
lib/shrine/plugins/upload_endpoint.rb,
lib/shrine/plugins/presign_endpoint.rb,
lib/shrine/plugins/refresh_metadata.rb,
lib/shrine/plugins/store_dimensions.rb,
lib/shrine/plugins/download_endpoint.rb,
lib/shrine/plugins/migration_helpers.rb,
lib/shrine/plugins/remove_attachment.rb,
lib/shrine/plugins/validation_helpers.rb,
lib/shrine/plugins/default_url_options.rb,
lib/shrine/plugins/derivation_endpoint.rb,
lib/shrine/plugins/determine_mime_type.rb,
lib/shrine/plugins/metadata_attributes.rb,
lib/shrine/plugins/restore_cached_data.rb,
lib/shrine/plugins/_urlsafe_serialization.rb,
lib/shrine/plugins/cached_attachment_data.rb

Overview

Module in which all Shrine plugins should be stored. Also contains logic for registering and loading plugins.

Defined Under Namespace

Modules: Activerecord, AddMetadata, Backgrounding, Backup, CachedAttachmentData, Copy, DataUri, DefaultStorage, DefaultUrl, DefaultUrlOptions, DeletePromoted, DeleteRaw, DerivationEndpoint, DetermineMimeType, DirectUpload, DownloadEndpoint, DynamicStorage, Hooks, Included, InferExtension, Instrumentation, KeepFiles, Logging, MetadataAttributes, MigrationHelpers, ModuleInclude, Moving, MultiDelete, Parallelize, ParsedJson, PresignEndpoint, PrettyLocation, Processing, RackFile, RackResponse, Recache, RefreshMetadata, RemoteUrl, RemoveAttachment, RemoveInvalid, RestoreCachedData, Sequel, Signature, StoreDimensions, Tempfile, UploadEndpoint, UploadOptions, UrlsafeSerialization, ValidationHelpers, Versions

Class Method Summary collapse

Class Method Details

.load_plugin(name) ⇒ Object

If the registered plugin already exists, use it. Otherwise, require it and return it. This raises a LoadError if such a plugin doesn’t exist, or a Shrine::Error if it exists but it does not register itself correctly.



13
14
15
16
17
18
19
# File 'lib/shrine/plugins.rb', line 13

def self.load_plugin(name)
  unless plugin = @plugins[name]
    require "shrine/plugins/#{name}"
    raise Error, "plugin #{name} did not register itself correctly in Shrine::Plugins" unless plugin = @plugins[name]
  end
  plugin
end

.register_plugin(name, mod) ⇒ Object

Register the given plugin with Shrine, so that it can be loaded using ‘Shrine.plugin` with a symbol. Should be used by plugin files. Example:

Shrine::Plugins.register_plugin(:plugin_name, PluginModule)


25
26
27
# File 'lib/shrine/plugins.rb', line 25

def self.register_plugin(name, mod)
  @plugins[name] = mod
end