Sha256: c6afa9c0221528c7837058f80b50d4b20ff87a77274040bdd4ff4a08c5acc662

Contents?: true

Size: 1.02 KB

Versions: 11

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true
module Dynflow
  module ExecutionPlan::Steps
    class AbstractFlowStep < Abstract

      # Method called when initializing the step to customize the behavior based on the
      # action definition during the planning phase
      def update_from_action(action)
        @queue = action.queue
        @queue ||= action.triggering_action.queue if action.triggering_action
        @queue ||= :default
      end

      def execute(*args)
        return self if [:skipped, :success].include? self.state
        open_action do |action|
          with_meta_calculation(action) do
            action.execute(*args)
            @delayed_events = action.delayed_events
          end
        end
      end

      def clone
        self.class.from_hash(to_hash, execution_plan_id, world)
      end

      private

      def open_action
        action = persistence.load_action(self)
        yield action
        persistence.save_action(execution_plan_id, action)
        save

        return self
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
dynflow-1.4.9 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.4.8 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.5.0 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.4.7 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.4.6 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.4.5 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.4.4 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.4.3 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.4.2 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.4.1 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.4.0 lib/dynflow/execution_plan/steps/abstract_flow_step.rb