class SchemaDev::Runner

Attributes

config[R]

Public Class Methods

new(config) click to toggle source
# File lib/schema_dev/runner.rb, line 14
def initialize(config)
  @config = config
end

Public Instance Methods

freshen(quiet: false) click to toggle source
# File lib/schema_dev/runner.rb, line 36
def freshen(quiet: false)
  github_actions(quiet: quiet)
  gemfiles(quiet: quiet)
  readme(quiet: quiet)
end
gemfiles(quiet: false) click to toggle source
# File lib/schema_dev/runner.rb, line 24
def gemfiles(quiet: false)
  if Gemfiles.build(@config)
    puts '* Updated gemfiles' unless quiet
  end
end
github_actions(quiet: false) click to toggle source
# File lib/schema_dev/runner.rb, line 18
def github_actions(quiet: false)
  if GithubActions.update(@config)
    puts "* Updated #{GithubActions::WORKFLOW_FILE}" unless quiet
  end
end
readme(quiet: false) click to toggle source
# File lib/schema_dev/runner.rb, line 30
def readme(quiet: false)
  if Readme.update(@config)
    puts '* Updated README' unless quiet
  end
end
run(*args, dry_run: false, quick: false, ruby: nil, activerecord: nil, db: nil, freshen: true) click to toggle source
# File lib/schema_dev/runner.rb, line 42
def run(*args, dry_run: false, quick: false, ruby: nil, activerecord: nil, db: nil, freshen: true)
  self.freshen if freshen

  matrix = MatrixExecutor.new @config.matrix(quick: quick, ruby: ruby, activerecord: activerecord, 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")}"
  false
end