class Git::Duet::CliOptions
Public Class Methods
parse_options(method_name, argv)
click to toggle source
# File lib/git/duet/cli_options.rb, line 5 def parse_options(method_name, argv) case method_name when 'pre_commit', 'install_hook' parse_generic_options(argv) else send("parse_#{method_name}_options", argv) end end
Private Class Methods
parse_commit_options(argv)
click to toggle source
# File lib/git/duet/cli_options.rb, line 60 def parse_commit_options(argv) opts_argv = [] opts_argv << '-q' if argv.delete('-q') options = with_common_opts(opts_argv, 'Usage: __PROG__').last options[:passthrough_args] = argv options end
parse_duet_options(argv)
click to toggle source
# File lib/git/duet/cli_options.rb, line 35 def parse_duet_options(argv) parse_options_with_positional_args( argv, '<alpha-initials> <omega-initials>' ) do |leftover_argv, options| options[:alpha], options[:omega] = leftover_argv[0..1] end end
parse_generic_options(argv)
click to toggle source
# File lib/git/duet/cli_options.rb, line 56 def parse_generic_options(argv) with_common_opts(argv, 'Usage: __PROG__').last end
parse_options_with_positional_args(argv, usage) { |leftover_argv, options| ... }
click to toggle source
# File lib/git/duet/cli_options.rb, line 44 def parse_options_with_positional_args(argv, usage) leftover_argv, options = with_common_opts( argv, 'Usage: __PROG__ [options] ' << usage ) do |opts, options_hash| opts.on('-g', '--global', 'Change global git config') do |_| options_hash[:global] = true end end yield leftover_argv, options options end
parse_solo_options(argv)
click to toggle source
# File lib/git/duet/cli_options.rb, line 28 def parse_solo_options(argv) parse_options_with_positional_args( argv, '<soloist-initials>') do |leftover_argv, options| options[:soloist] = leftover_argv.first end end
with_common_opts(argv, banner) { |opts, options| ... }
click to toggle source
# File lib/git/duet/cli_options.rb, line 16 def with_common_opts(argv, banner) options = {} leftover_argv = OptionParser.new do |opts| opts.banner = banner.gsub(/__PROG__/, opts.program_name) opts.on('-q', 'Silence output') do |_| options[:quiet] = true end yield opts, options if block_given? end.parse!(argv) [leftover_argv, options] end