Class: SourceMonitor::ImportSessions::OPMLImporter

Inherits:
Object
  • Object
show all
Defined in:
lib/source_monitor/import_sessions/opml_importer.rb

Overview

Orchestrates OPML import: selects entries, deduplicates, creates sources, records results, and broadcasts completion. Extracted from ImportOpmlJob so import logic can be invoked synchronously (console, tests).

Instance Method Summary collapse

Constructor Details

#initialize(import_session:, import_history:) ⇒ OPMLImporter

Returns a new instance of OPMLImporter.



14
15
16
17
# File 'lib/source_monitor/import_sessions/opml_importer.rb', line 14

def initialize(import_session:, import_history:)
  @import_session = import_session
  @import_history = import_history
end

Instance Method Details

#callObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/source_monitor/import_sessions/opml_importer.rb', line 19

def call
  import_history.update_columns(started_at: Time.current) unless import_history.started_at

  processed = Set.new

  selected_entries.each do |entry|
    process_entry(entry, processed)
  end

  import_history.update!(
    imported_sources: imported_sources,
    failed_sources: failed_sources,
    skipped_duplicates: skipped_duplicates,
    bulk_settings: import_session.bulk_settings.presence || {},
    completed_at: Time.current
  )

  broadcast_completion(import_history)
end