discourse/migrations/lib/converters/base/step.rb
Gerhard Schlager 5ac69076c1
REFACTOR: Simplify converter steps in migration tooling (#29779)
* Remove unused `report_progress_in_percent` option from step
* Remove `use_custom_progress_increment` option from the step because we can figure it out by looking at the progress
* Introduce `StepTracker` to for logging warnings and errors and tracking step progress
* Make it easier to log warnings and errors in all methods of `Step` without the need to pass around a `stats` object
2024-11-19 23:54:37 +01:00

43 lines
919 B
Ruby

# frozen_string_literal: true
module Migrations::Converters::Base
class Step
IntermediateDB = ::Migrations::Database::IntermediateDB
attr_accessor :settings
attr_reader :tracker
# inside of Step it might make more sense to access it as `step` instead of `tracker`
alias step tracker
def initialize(tracker, args = {})
@tracker = tracker
args.each do |arg, value|
setter = "#{arg}=".to_sym
public_send(setter, value) if respond_to?(setter, true)
end
end
def execute
# do nothing
end
class << self
def title(
value = (
getter = true
nil
)
)
@title = value unless getter
@title.presence ||
I18n.t(
"converter.default_step_title",
type: name&.demodulize&.underscore&.humanize(capitalize: false),
)
end
end
end
end