Module: ActiveStorageDedup
- Defined in:
- lib/active_storage_dedup.rb,
lib/active_storage_dedup/railtie.rb,
lib/active_storage_dedup/version.rb,
lib/active_storage_dedup/configuration.rb,
lib/active_storage_dedup/changes_extension.rb,
lib/active_storage_dedup/deduplication_job.rb,
lib/active_storage_dedup/attachment_options.rb,
lib/active_storage_dedup/blob_deduplication.rb,
lib/active_storage_dedup/attachment_extension.rb,
lib/generators/active_storage_dedup/install_generator.rb,
sig/active_storage_dedup.rbs
Defined Under Namespace
Modules: AttachmentExtension, AttachmentOptions, BlobDeduplication, ChangesExtension, Generators
Classes: Configuration, DeduplicationJob, Railtie
Constant Summary
collapse
- VERSION =
"1.0.0"
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.configuration ⇒ Object
29
30
31
|
# File 'lib/active_storage_dedup/configuration.rb', line 29
def configuration
@configuration ||= Configuration.new
end
|
Class Method Details
.attachment_settings ⇒ Object
Track which attachments have deduplicate disabled
44
45
46
|
# File 'lib/active_storage_dedup/configuration.rb', line 44
def attachment_settings
@attachment_settings ||= {}
end
|
33
34
35
36
37
|
# File 'lib/active_storage_dedup/configuration.rb', line 33
def configure
Rails.logger.debug "[ActiveStorageDedup] Configuring ActiveStorageDedup..." if defined?(Rails)
yield(configuration)
Rails.logger.info "[ActiveStorageDedup] Configuration updated: enabled=#{configuration.enabled}, deduplicate_by_default=#{configuration.deduplicate_by_default}, auto_purge_orphans=#{configuration.auto_purge_orphans}" if defined?(Rails)
end
|
.deduplicate_enabled_for?(record, attachment_name) ⇒ Boolean
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/active_storage_dedup/configuration.rb', line 54
def deduplicate_enabled_for?(record, attachment_name)
unless configuration.enabled
Rails.logger.debug "[ActiveStorageDedup] Gem is disabled globally (enabled=false)" if defined?(Rails)
return false
end
key = "#{record.class.name}##{attachment_name}"
settings = attachment_settings[key]
if settings.nil?
result = configuration.deduplicate_by_default
Rails.logger.debug "[ActiveStorageDedup] Deduplication check for #{key}: #{result} (using deduplicate_by_default)" if defined?(Rails)
else
result = settings[:deduplicate]
Rails.logger.debug "[ActiveStorageDedup] Deduplication check for #{key}: #{result} (model-level override)" if defined?(Rails)
end
result
end
|
.enabled? ⇒ Boolean
39
40
41
|
# File 'lib/active_storage_dedup/configuration.rb', line 39
def enabled?
configuration.enabled
end
|
.register_attachment(model_name, attachment_name, deduplicate:) ⇒ Object
48
49
50
51
52
|
# File 'lib/active_storage_dedup/configuration.rb', line 48
def register_attachment(model_name, attachment_name, deduplicate:)
key = "#{model_name}##{attachment_name}"
attachment_settings[key] = { deduplicate: deduplicate }
Rails.logger.debug "[ActiveStorageDedup] Registered attachment #{key} with deduplicate=#{deduplicate}" if defined?(Rails)
end
|