Class: SourceMonitor::Fetching::Completion::RetentionHandler
- Inherits:
-
Object
- Object
- SourceMonitor::Fetching::Completion::RetentionHandler
- Defined in:
- lib/source_monitor/fetching/completion/retention_handler.rb
Overview
Applies item retention after a fetch completes.
Defined Under Namespace
Classes: Result
Instance Method Summary collapse
-
#call(source:, result:) ⇒ Object
rubocop:disable Lint/UnusedMethodArgument.
-
#initialize(pruner: SourceMonitor::Items::RetentionPruner) ⇒ RetentionHandler
constructor
A new instance of RetentionHandler.
Constructor Details
#initialize(pruner: SourceMonitor::Items::RetentionPruner) ⇒ RetentionHandler
Returns a new instance of RetentionHandler.
14 15 16 |
# File 'lib/source_monitor/fetching/completion/retention_handler.rb', line 14 def initialize(pruner: SourceMonitor::Items::RetentionPruner) @pruner = pruner end |
Instance Method Details
#call(source:, result:) ⇒ Object
rubocop:disable Lint/UnusedMethodArgument
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/source_monitor/fetching/completion/retention_handler.rb', line 18 def call(source:, result:) # rubocop:disable Lint/UnusedMethodArgument pruner_result = pruner.call( source: source, strategy: SourceMonitor.config.retention.strategy ) removed = pruner_result.respond_to?(:removed_total) ? pruner_result.removed_total : 0 Result.new(status: :applied, removed_total: removed) rescue StandardError => error Rails.logger.error( "[SourceMonitor::Fetching::Completion::RetentionHandler] Retention pruning failed for source #{source.id}: #{error.class} - #{error.}" ) Result.new(status: :failed, removed_total: 0, error: error) end |