Class: Metanorma::Release::AggregationPipeline

Inherits:
Object
  • Object
show all
Defined in:
lib/metanorma/release/aggregation_pipeline.rb

Defined Under Namespace

Classes: Config, Dependencies, Result

Instance Method Summary collapse

Constructor Details

#initialize(deps) ⇒ AggregationPipeline

Returns a new instance of AggregationPipeline.



46
47
48
# File 'lib/metanorma/release/aggregation_pipeline.rb', line 46

def initialize(deps)
  @deps = deps
end

Instance Method Details

#run(config, output_dir) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/metanorma/release/aggregation_pipeline.rb', line 50

def run(config, output_dir)
  @deps.delta_state.load
  repos = @deps.discoverer.discover

  if config.concurrency > 1
    publications, reports, failed_repos = run_concurrent(repos,
                                                         output_dir, config)
  else
    publications, reports, failed_repos = run_sequential(repos,
                                                         output_dir, config)
  end

  @deps.delta_state.save

  Result.new(
    publications: publications,
    repo_count: repos.length,
    channels_found: publications.flat_map(&:channels).uniq.sort,
    report: reports,
    failed_repos: failed_repos,
  )
end