Sha256: b96573fa0684eba1949a514524b51a7612067309e2d53d88f9ab2ee1505946b4

Contents?: true

Size: 1018 Bytes

Versions: 2

Compression:

Stored size: 1018 Bytes

Contents

# frozen_string_literal: true

module Dynflow
  # for cases the serialized action was renamed and it's not available
  # in the code base anymore.
  class Action::Missing < Dynflow::Action
    def self.generate(action_name)
      Class.new(self).tap do |klass|
        klass.singleton_class.send(:define_method, :name) do
          action_name
        end
      end
    end

    def plan(*args)
      raise StandardError,
        "The action class was not found and therefore plan phase failed, this can happen if the action was added/renamed but the executor was not restarted."
    end

    def run
      raise StandardError,
        "The action class was not found and therefore run phase failed, this can happen if the action was added/renamed but the executor was not restarted."
    end

    def finalize
      raise StandardError,
        "The action class was not found and therefore finalize phase failed, this can happen if the action was added/renamed but the executor was not restarted."
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dynflow-1.9.0 lib/dynflow/action/missing.rb
dynflow-1.8.3 lib/dynflow/action/missing.rb