Module: ActiveStorage::AsyncVariants

Defined in:
lib/active_storage/async_variants.rb,
lib/active_storage/async_variants/version.rb,
lib/active_storage/async_variants/registry.rb,
lib/active_storage/async_variants/process_job.rb,
lib/active_storage/async_variants/transformer.rb,
lib/active_storage/async_variants/blob_extension.rb,
lib/active_storage/async_variants/preview_extension.rb,
lib/active_storage/async_variants/variation_extension.rb,
lib/active_storage/async_variants/attachment_extension.rb,
lib/active_storage/async_variants/reflection_extension.rb,
lib/active_storage/async_variants/variant_record_extension.rb,
lib/active_storage/async_variants/asset_tag_helper_extension.rb,
lib/active_storage/async_variants/variant_with_record_extension.rb,
app/controllers/active_storage/async_variants/callbacks_controller.rb,
lib/active_storage/async_variants/representations_redirect_controller_extension.rb

Defined Under Namespace

Modules: AssetTagHelperExtension, AttachmentExtension, BlobExtension, PreviewExtension, ReflectionExtension, RepresentationsRedirectControllerExtension, VariantRecordExtension, VariantWithRecordExtension, VariationExtension Classes: CallbacksController, Engine, ProcessJob, Registry, Transformer

Constant Summary collapse

VERSION =
"0.3.1"

Class Method Summary collapse

Class Method Details

.callback_token_for(variant_record) ⇒ Object



86
87
88
# File 'lib/active_storage/async_variants.rb', line 86

def self.callback_token_for(variant_record)
  ActiveStorage.verifier.generate(variant_record.id, purpose: :async_variant_callback)
end

.callback_url_for(variant_record) ⇒ Object



90
91
92
93
94
95
96
97
# File 'lib/active_storage/async_variants.rb', line 90

def self.callback_url_for(variant_record)
  url_options = ActiveStorage::Current.url_options || Rails.application.default_url_options
  token = callback_token_for(variant_record)
  Rails.application.routes.url_helpers.active_storage_async_variant_callback_url(
    token: token,
    **url_options,
  )
end

.prepend_model_extensions!Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/active_storage/async_variants.rb', line 58

def self.prepend_model_extensions!
  return if @model_extensions_prepended
  @model_extensions_prepended = true

  require "active_storage/reflection"
  ActiveStorage::Reflection::HasAttachedReflection.prepend(
    ActiveStorage::AsyncVariants::ReflectionExtension
  )
  ActiveStorage::Blob.prepend(
    ActiveStorage::AsyncVariants::BlobExtension
  )
  ActiveStorage::Variation.prepend(
    ActiveStorage::AsyncVariants::VariationExtension
  )
  ActiveStorage::VariantWithRecord.prepend(
    ActiveStorage::AsyncVariants::VariantWithRecordExtension
  )
  ActiveStorage::VariantRecord.include(
    ActiveStorage::AsyncVariants::VariantRecordExtension
  )
  ActiveStorage::Attachment.prepend(
    ActiveStorage::AsyncVariants::AttachmentExtension
  )
  ActiveStorage::Preview.prepend(
    ActiveStorage::AsyncVariants::PreviewExtension
  )
end