class GLI::Commands::Help

The help command used for the two-level interactive help system

Public Class Methods

new(app,output=$stdout,error=$stderr) click to toggle source
Calls superclass method GLI::Command.new
# File lib/gli/commands/help.rb, line 58
def initialize(app,output=$stdout,error=$stderr)
  super(:names => :help,
        :description => 'Shows a list of commands or help for one command',
        :arguments_name => 'command',
        :long_desc => 'Gets help for the application or its commands. Can also list the commands in a way helpful to creating a bash-style completion function',
        :arguments => [Argument.new(:command_name, [:multiple, :optional])])
  @app = app
  @parent = app
  @sorter = SORTERS[@app.help_sort_type]
  @text_wrapping_class = WRAPPERS[@app.help_text_wrap_type]
  @synopsis_formatter_class = SYNOPSIS_FORMATTERS[@app.synopsis_format_type]

  desc 'List commands one per line, to assist with shell completion'
  switch :c

  action do |global_options,options,arguments|
    if global_options[:version] && !global_options[:help]
      puts "#{@app.exe_name} version #{@app.version_string}"
    else
      show_help(global_options,options,arguments,output,error)
    end
  end
end
skips_around=(skips_around) click to toggle source

Configure help to explicitly skip or not skip the around block when the help command runs. This is here because the creation of the help command is outside of the client programmer's control

# File lib/gli/commands/help.rb, line 56
def self.skips_around=(skips_around) ; @@skips_around = skips_around ; end
skips_post=(skips_post) click to toggle source

Configure help to explicitly skip or not skip the post block when the help command runs. This is here because the creation of the help command is outside of the client programmer's control

# File lib/gli/commands/help.rb, line 52
def self.skips_post=(skips_post)     ; @@skips_post = skips_post     ; end
skips_pre=(skips_pre) click to toggle source

Configure help to explicitly skip or not skip the pre block when the help command runs. This is here because the creation of the help command is outside of the client programmer's control

# File lib/gli/commands/help.rb, line 48
def self.skips_pre=(skips_pre)       ; @@skips_pre = skips_pre       ; end

Public Instance Methods

skips_around() click to toggle source
# File lib/gli/commands/help.rb, line 84
def skips_around ; @@skips_around ; end
skips_post() click to toggle source
# File lib/gli/commands/help.rb, line 83
def skips_post   ; @@skips_post   ; end
skips_pre() click to toggle source
# File lib/gli/commands/help.rb, line 82
def skips_pre    ; @@skips_pre    ; end

Private Instance Methods

show_help(global_options,options,arguments,out,error) click to toggle source
# File lib/gli/commands/help.rb, line 88
def show_help(global_options,options,arguments,out,error)
  command_finder = HelpModules::CommandFinder.new(@app,arguments,error)
  if options[:c]
    help_output = HelpModules::HelpCompletionFormat.new(@app,command_finder,arguments).format
    out.puts help_output unless help_output.nil?
  elsif arguments.empty? || options[:c]
    out.puts HelpModules::GlobalHelpFormat.new(@app,@sorter,@text_wrapping_class).format
  else
    name = arguments.shift
    command = command_finder.find_command(name)
    unless command.nil?
      out.puts HelpModules::CommandHelpFormat.new(
        command,
        @app,
        @sorter,
        @synopsis_formatter_class,
        @text_wrapping_class).format
    end
  end
end