Module: Brigadier::Helper
- Included in:
- Commands::Base, Runner
- Defined in:
- lib/brigadier/helper.rb
Instance Method Summary collapse
- #available_params_for(klasses, param) ⇒ Object
- #display_help_for(item, label) ⇒ Object
- #display_help_if_requested(klasses, args) ⇒ Object
- #help(klasses) ⇒ Object
- #help_requested?(args) ⇒ Boolean
- #inverse_toggle_arg?(arg) ⇒ Boolean
- #option_or_toggle?(arg) ⇒ Boolean
- #sub_command? ⇒ Boolean
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
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
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
45 46 47 |
# File 'lib/brigadier/helper.rb', line 45 def option_or_toggle?(arg) arg.match(/^-[-\w+]/) end |
#sub_command? ⇒ Boolean
41 42 43 |
# File 'lib/brigadier/helper.rb', line 41 def sub_command? is_a?(Brigadier::Commands::SubCommand) end |