Module: Shrine::Plugins
- Defined in:
- lib/shrine/plugins.rb,
lib/shrine/plugins/model.rb,
lib/shrine/plugins/column.rb,
lib/shrine/plugins/entity.rb,
lib/shrine/plugins/sequel.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/mirroring.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/validation.rb,
lib/shrine/plugins/default_url.rb,
lib/shrine/plugins/derivatives.rb,
lib/shrine/plugins/form_assign.rb,
lib/shrine/plugins/multi_cache.rb,
lib/shrine/plugins/url_options.rb,
lib/shrine/plugins/_persistence.rb,
lib/shrine/plugins/activerecord.rb,
lib/shrine/plugins/add_metadata.rb,
lib/shrine/plugins/backgrounding.rb,
lib/shrine/plugins/rack_response.rb,
lib/shrine/plugins/atomic_helpers.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/dynamic_storage.rb,
lib/shrine/plugins/infer_extension.rb,
lib/shrine/plugins/instrumentation.rb,
lib/shrine/plugins/pretty_location.rb,
lib/shrine/plugins/type_predicates.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/remove_attachment.rb,
lib/shrine/plugins/validation_helpers.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, CachedAttachmentData, Column, DataUri, DefaultStorage, DefaultUrl, DeleteRaw, DerivationEndpoint, Derivatives, DetermineMimeType, DownloadEndpoint, DynamicStorage, Entity, FormAssign, Included, InferExtension, Instrumentation, KeepFiles, MetadataAttributes, Mirroring, Model, ModuleInclude, MultiCache, Persistence, PresignEndpoint, PrettyLocation, Processing, RackFile, RackResponse, Recache, RefreshMetadata, RemoteUrl, RemoveAttachment, RemoveInvalid, RestoreCachedData, Sequel, Signature, StoreDimensions, Tempfile, TypePredicates, UploadEndpoint, UploadOptions, UrlOptions, UrlsafeSerialization, Validation, ValidationHelpers, Versions Classes: AtomicHelpers
Class Method Summary collapse
-
.configure(plugin, uploader, *args, **kwargs, &block) ⇒ Object
Delegate call to the plugin in a way that works across Ruby versions.
-
.load_dependencies(plugin, uploader, *args, **kwargs, &block) ⇒ Object
Delegate call to the plugin in a way that works across Ruby versions.
-
.load_plugin(name) ⇒ Object
If the registered plugin already exists, use it.
-
.register_plugin(name, mod) ⇒ Object
Register the given plugin with Shrine, so that it can be loaded using ‘Shrine.plugin` with a symbol.
Class Method Details
.configure(plugin, uploader, *args, **kwargs, &block) ⇒ Object
Delegate call to the plugin in a way that works across Ruby versions.
33 34 35 36 37 38 39 40 41 |
# File 'lib/shrine/plugins.rb', line 33 def self.configure(plugin, uploader, *args, **kwargs, &block) return unless plugin.respond_to?(:configure) if kwargs.any? plugin.configure(uploader, *args, **kwargs, &block) else plugin.configure(uploader, *args, &block) end end |
.load_dependencies(plugin, uploader, *args, **kwargs, &block) ⇒ Object
Delegate call to the plugin in a way that works across Ruby versions.
22 23 24 25 26 27 28 29 30 |
# File 'lib/shrine/plugins.rb', line 22 def self.load_dependencies(plugin, uploader, *args, **kwargs, &block) return unless plugin.respond_to?(:load_dependencies) if kwargs.any? plugin.load_dependencies(uploader, *args, **kwargs, &block) else plugin.load_dependencies(uploader, *args, &block) end end |
.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
47 48 49 |
# File 'lib/shrine/plugins.rb', line 47 def self.register_plugin(name, mod) @plugins[name] = mod end |