class SchemaDev::MatrixExecutor

Attributes

errors[R]

Public Class Methods

new(matrix) click to toggle source
# File lib/schema_dev/matrix_executor.rb, line 9
def initialize(matrix)
  @matrix = matrix
end

Public Instance Methods

run(cmd, dry_run: false) click to toggle source
# File lib/schema_dev/matrix_executor.rb, line 13
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