Class: Gitlab::ImportExport::AfterExportStrategyBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/import_export/after_export_strategy_builder.rb

Constant Summary collapse

StrategyNotFoundError =
Class.new(StandardError)

Class Method Summary collapse

Class Method Details

.build!(strategy_klass, attributes = {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/gitlab/import_export/after_export_strategy_builder.rb', line 8

def self.build!(strategy_klass, attributes = {})
  return default_strategy.new unless strategy_klass

  attributes ||= {}
  klass = begin
    strategy_klass.constantize
  rescue StandardError
    nil
  end

  unless klass && klass < AfterExportStrategies::BaseAfterExportStrategy
    raise StrategyNotFoundError, "Strategy #{strategy_klass} not found"
  end

  klass.new(**attributes.symbolize_keys)
end

.default_strategyObject



25
26
27
# File 'lib/gitlab/import_export/after_export_strategy_builder.rb', line 25

def self.default_strategy
  AfterExportStrategies::DownloadNotificationStrategy
end