Sha256: 3d3c241687d2a1b4dea358fc53285ca569f118aa6c07bd7358d61d90d2211e58

Contents?: true

Size: 1.16 KB

Versions: 5

Compression:

Stored size: 1.16 KB

Contents

require 'shellwords'

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

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

    def travis(quiet: false)
      if Travis.update(@config)
        puts "* Updated #{Travis::TRAVIS_FILE}" unless quiet
      end
    end

    def gemfiles(quiet: false)
      if Gemfiles.build(@config)
        puts "* Updated gemfiles" unless quiet
      end
    end

    def readme(quiet: false)
      if Readme.update(@config)
        puts "* Updated README" unless quiet
      end
    end

    def freshen(quiet: false)
      self.travis(quiet: quiet)
      self.gemfiles(quiet: quiet)
      self.readme(quiet: quiet)
    end

    def run(*args, dry_run: false, quick: false, ruby: nil, rails: nil, db: nil, freshen: true)
      self.freshen 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

5 entries across 5 versions & 1 rubygems

Version Path
schema_dev-2.0.4 lib/schema_dev/runner.rb
schema_dev-2.0.3 lib/schema_dev/runner.rb
schema_dev-2.0.2 lib/schema_dev/runner.rb
schema_dev-2.0.1 lib/schema_dev/runner.rb
schema_dev-2.0.0 lib/schema_dev/runner.rb