Follow the Brass

lib/press_results.rb

23 lines · ruby

Project files
# frozen_string_literal: true

StationResult = Data.define(:work, :fault)

PositionOutcome = Data.define(:station, :status, :fault)

PositionSnapshot = Data.define(:station, :work)

PositionAssessment = Data.define(:station, :disposition, :missing) do
  def initialize(station:, disposition:, missing:)
    super(station:, disposition:, missing: missing.dup.freeze)
  end
end

CycleResult = Data.define(:advanced, :outcomes, :ejected) do
  def initialize(advanced:, outcomes:, ejected:)
    super(advanced:, outcomes: outcomes.dup.freeze, ejected:)
  end

  def advanced?
    advanced
  end
end

Read along in the manual: The Reloading Lab · Download the project (zip)