Module: Brigadier::Helper

Included in:
Commands::Base, Runner
Defined in:
lib/brigadier/helper.rb

Instance Method Summary collapse

Instance Method Details

#available_params_for(klasses, param) ⇒ Object



33
34
35
# File 'lib/brigadier/helper.rb', line 33

def available_params_for(klasses, param)
  klasses.each_with_object({}) { |k, a| a.merge!(k.public_send(param)) }
end

#display_help_for(item, label) ⇒ Object



3
4
5
6
7
8
9
10
11
12
# File 'lib/brigadier/helper.rb', line 3

def display_help_for(item, label)
  opts = item.values.uniq(&:name)
  return if opts.empty?
  $stderr.puts label
  opts.each do |opt|
    next if opt.hidden?
    $stderr.puts '%s  %-28s %s' % [ indent, opt.display_name, opt.display_description ]
  end
  $stderr.puts
end

#display_help_if_requested(klasses, args) ⇒ Object



18
19
20
21
22
23
# File 'lib/brigadier/helper.rb', line 18

def display_help_if_requested(klasses, args)
  return false unless help_requested?(args)
  $stderr.puts
  help(klasses)
  true
end

#help(klasses) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/brigadier/helper.rb', line 25

def help(klasses)
  klasses = [ *klasses ]
  display_help_for(available_params_for(klasses, :toggles), 'Toggle(s)')
  display_help_for(available_params_for(klasses, :options), 'Option(s)')
  display_help_for(available_params_for(klasses, :arguments), 'Argument(s)')
  display_help_for(available_params_for(klasses, :sub_commands), 'Subcommand(s)') unless sub_command?
end

#help_requested?(args) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/brigadier/helper.rb', line 14

def help_requested?(args)
  !(%w( --help -help -h ) & args).empty?
end

#inverse_toggle_arg?(arg) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/brigadier/helper.rb', line 37

def inverse_toggle_arg?(arg)
  arg =~ /^-{1,}no.+$/ ? true : false
end

#option_or_toggle?(arg) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/brigadier/helper.rb', line 45

def option_or_toggle?(arg)
  arg.match(/^-[-\w+]/)
end

#sub_command?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/brigadier/helper.rb', line 41

def sub_command?
  is_a?(Brigadier::Commands::SubCommand)
end