Sha256: 524e0e065ae49c0dd19fb03e7e06aa87193070ce0cf3673583d8b9b240a188f9

Contents?: true

Size: 813 Bytes

Versions: 10

Compression:

Stored size: 813 Bytes

Contents

require 'shellwords'

require_relative 'matrix_executor'
require_relative 'travis'
require_relative 'gemfiles'

module SchemaDev
  class Runner
    def initialize(config)
      @config = config
    end

    def travis
      Travis.update(@config) and puts "* Updated #{Travis::TRAVIS_FILE}"
    end

    def gemfiles
      Gemfiles.build(@config) and puts "* Created gemfiles"
    end

    def run(*args, dry_run: false, quick: false, ruby: nil, rails: nil, db: nil, freshen: true)
      self.travis if freshen

      matrix = MatrixExecutor.new @config.matrix(quick: quick, ruby: ruby, rails: rails, db: db)

      return true if matrix.run(Shellwords.join(args.flatten), dry_run: dry_run)

      puts "\n*** #{matrix.errors.size} failures:\n\t#{matrix.errors.join("\n\t")}"
      return false
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
schema_dev-1.2.5 lib/schema_dev/runner.rb
schema_dev-1.2.4 lib/schema_dev/runner.rb
schema_dev-1.2.3 lib/schema_dev/runner.rb
schema_dev-1.2.2 lib/schema_dev/runner.rb
schema_dev-1.2.1 lib/schema_dev/runner.rb
schema_dev-1.2.0 lib/schema_dev/runner.rb
schema_dev-1.1.0 lib/schema_dev/runner.rb
schema_dev-1.0.3 lib/schema_dev/runner.rb
schema_dev-1.0.2 lib/schema_dev/runner.rb
schema_dev-1.0.1 lib/schema_dev/runner.rb