Sha256: 46afcb705beb86fef8f72ed10e8dbcd579d6fd68a774efdfacf8a19091644507

Contents?: true

Size: 731 Bytes

Versions: 4

Compression:

Stored size: 731 Bytes

Contents

# frozen_string_literal: true

require_relative 'executor'

module SchemaDev
  class MatrixExecutor
    attr_reader :errors

    def initialize(matrix)
      @matrix = matrix
    end

    def run(cmd, dry_run: false)
      @errors = []
      @matrix.each_with_index do |tuple, i|
        ruby = tuple[:ruby]
        activerecord = tuple[:activerecord]
        db = tuple[:db]

        label = "ruby #{ruby} - activerecord #{activerecord} - db #{db}"
        msg = "#{label} [#{i + 1} of #{@matrix.size}]"
        puts "\n\n*** #{msg}\n\n"

        if not Executor.new(ruby: ruby, activerecord: activerecord, db: db).run(cmd, dry_run: dry_run)
          @errors << label
        end
      end
      @errors.empty?
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
schema_dev-4.2.0 lib/schema_dev/matrix_executor.rb
schema_dev-4.2.beta.5 lib/schema_dev/matrix_executor.rb
schema_dev-4.1.1 lib/schema_dev/matrix_executor.rb
schema_dev-4.1.0 lib/schema_dev/matrix_executor.rb