Sha256: 22f2f2c6d74519ec8146a71aeef576df4a1029db1d84d266f658026177a39605

Contents?: true

Size: 708 Bytes

Versions: 10

Compression:

Stored size: 708 Bytes

Contents

# frozen_string_literal: true
module Dynflow
  module Flows
    class Concurrence < AbstractComposed

      protected

      def add_to_sequence(satisfying_flows, dependent_flow)
        if satisfying_flows.empty?
          self.sub_flows << dependent_flow
          return
        end
        extracted_flow = extract_flows(satisfying_flows)
        sequence       = Sequence.new([extracted_flow])

        self.sub_flows << sequence
        sequence << dependent_flow
      end

      def extract_flows(extracted_sub_flows)
        extracted_sub_flows.each do |sub_flow|
          self.sub_flows.delete(sub_flow)
        end

        return Concurrence.new(extracted_sub_flows)
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
dynflow-1.4.9 lib/dynflow/flows/concurrence.rb
dynflow-1.4.8 lib/dynflow/flows/concurrence.rb
dynflow-1.4.7 lib/dynflow/flows/concurrence.rb
dynflow-1.4.6 lib/dynflow/flows/concurrence.rb
dynflow-1.4.5 lib/dynflow/flows/concurrence.rb
dynflow-1.4.4 lib/dynflow/flows/concurrence.rb
dynflow-1.4.3 lib/dynflow/flows/concurrence.rb
dynflow-1.4.2 lib/dynflow/flows/concurrence.rb
dynflow-1.4.1 lib/dynflow/flows/concurrence.rb
dynflow-1.4.0 lib/dynflow/flows/concurrence.rb