Sha256: 01b7bc9e2a7679cd5bcd45a008c6e55c38be42e3dff374828610fa27c643b5cf

Contents?: true

Size: 1.44 KB

Versions: 6

Compression:

Stored size: 1.44 KB

Contents

#!/usr/bin/env ruby

require 'active_support/core_ext/hash'
require 'thor'
require 'schema_dev/config'
require 'schema_dev/runner'

$config = SchemaDev::Config.load
$runner = SchemaDev::Runner.new($config)

class CLI < Thor

  def self.matrix_options
    method_option :dry_run, aliases: "-n", type: :boolean, desc: "Show what the commands would be without running them"
    method_option :quick, type: :boolean, desc: "Only execute on the 'quick' choice: #{$config.quick.inspect}"
    method_option :ruby, type: :string, desc: "Only execute for the specified version of ruby"
    method_option :rails, type: :string, desc: "Only execute for the specified version of rails"
    method_option :db, type: :string, desc: "Only execute for the specified database" if $config.db?
  end

  desc "run command", "run a command over the matrix"
  matrix_options
  def matrix(*args)
    $runner.run(args, **options.symbolize_keys)
  end

  desc "bundle", "shorthand for '#{$0} matrix bundle ...'"
  matrix_options
  def bundle(*args)
    $runner.run('bundle', args, **options.symbolize_keys)
  end

  desc "rake", "shorthand for '#{$0} matrix bundle exec rake ...'"
  matrix_options
  def rake(*args)
    $runner.run('bundle', 'exec', 'rake', args, **options.symbolize_keys)
  end

  desc "rspec", "shorthand for '#{$0} bundle exec rspec ...'"
  matrix_options
  def rspec(*args)
    $runner.run('bundle', 'exec', 'rspec', args, **options.symbolize_keys)
  end

end

CLI.start(ARGV)

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
schema_dev-0.1.5 bin/schema_dev
schema_dev-0.1.4 bin/schema_dev
schema_dev-0.1.3 bin/schema_dev
schema_dev-0.1.2 bin/schema_dev
schema_dev-0.1.1 bin/schema_dev
schema_dev-0.1.0 bin/schema_dev