Sha256: cba4a42c1b2963296559e4533cd81f2bec653ab3a1dce1e6c91ed0d724250c60

Contents?: true

Size: 796 Bytes

Versions: 2

Compression:

Stored size: 796 Bytes

Contents

module Dynflow
  module Testing
    class DummyExecutor
      attr_reader :world

      def initialize(world)
        @world             = world
        @events_to_process = []
      end

      def event(execution_plan_id, step_id, event, future = Future.new)
        @events_to_process << [execution_plan_id, step_id, event, future]
      end

      # returns true if some event was processed.
      def progress
        events = @events_to_process.dup
        clear
        events.each do |execution_plan_id, step_id, event, future|
          future.resolve true
          if event && world.action.state != :suspended
            return false
          end
          world.action.execute event
        end
      end

      def clear
        @events_to_process.clear
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dynflow-0.7.9 lib/dynflow/testing/dummy_executor.rb
dynflow-0.7.8 lib/dynflow/testing/dummy_executor.rb