class Git::Duet::Cli

Public Class Methods

run(prog, argv) click to toggle source
# File lib/git/duet/cli.rb, line 11
def run(prog, argv)
  invoke(File.basename(prog), argv.clone, ENV)
  0
rescue NoMethodError
  raise ScriptError, 'How did you get here???'
rescue Git::Duet::ScriptDieError => e
  e.exit_code
end

Private Class Methods

commit(options) click to toggle source
# File lib/git/duet/cli.rb, line 71
def commit(options)
  require 'git/duet/commit_command'
  Git::Duet::CommitCommand.new(
    options[:passthrough_args],
    options[:quiet]
  ).execute!
end
duet(options) click to toggle source
# File lib/git/duet/cli.rb, line 51
def duet(options)
  require 'git/duet/duet_command'
  Git::Duet::DuetCommand.new(
    options.fetch(:alpha),
    options.fetch(:omega),
    options[:quiet],
    options[:global]
  ).execute!
end
install_hook(options) click to toggle source
# File lib/git/duet/cli.rb, line 66
def install_hook(options)
  require 'git/duet/install_hook_command'
  Git::Duet::InstallHookCommand.new(options[:quiet]).execute!
end
invoke(prog_name, args, environment) click to toggle source
# File lib/git/duet/cli.rb, line 22
def invoke(prog_name, args, environment)
  method_name = prog_name
                .sub(/^git-duet-/, '')
                .sub(/^git-/, '')
                .tr('-', '_')
  options = CliOptions.parse_options(method_name, args)
  if environment['GIT_DUET_GLOBAL']
    options[:global] = parse_boolean(environment['GIT_DUET_GLOBAL'])
  end
  send(method_name, options)
end
parse_boolean(s) click to toggle source
# File lib/git/duet/cli.rb, line 34
def parse_boolean(s)
  case s
  when 'true' then true
  when 'false' then false
  else fail ArgumentError, "must be 'true' or 'false': #{s}"
  end
end
pre_commit(options) click to toggle source
# File lib/git/duet/cli.rb, line 61
def pre_commit(options)
  require 'git/duet/pre_commit_command'
  Git::Duet::PreCommitCommand.new(options[:quiet]).execute!
end
solo(options) click to toggle source
# File lib/git/duet/cli.rb, line 42
def solo(options)
  require 'git/duet/solo_command'
  Git::Duet::SoloCommand.new(
    options.fetch(:soloist),
    options[:quiet],
    options[:global]
  ).execute!
end