Class: Mercury::CLI::Commands::Help

Inherits:
Cri::Command
  • Object
show all
Defined in:
lib/mercury/cli/commands/help.rb

Instance Method Summary collapse

Instance Method Details

#aliasesObject



24
25
26
# File 'lib/mercury/cli/commands/help.rb', line 24

def aliases
  []
end

#long_descObject



32
33
34
35
36
37
38
# File 'lib/mercury/cli/commands/help.rb', line 32

def long_desc
  'Show help for the given command, or show general help. When no ' +
  'command is given, a list of available commands is displayed, as ' +
  'well as a list of global commandline options. When a command is ' +
  'given, a command description as well as command-specific ' +
  'commandline options are shown.'
end

#nameObject



20
21
22
# File 'lib/mercury/cli/commands/help.rb', line 20

def name
  'help'
end

#run(options, arguments) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/mercury/cli/commands/help.rb', line 44

def run(options, arguments)
  # Check arguments
  if arguments.size > 1
    $stderr.puts "usage: #{usage}"
    exit 1
  end

  if arguments.length == 0
    # Build help text
    text = ''

    # Add title
    text << "A Mercury Server client written in Ruby.\n"

    # Add available commands
    text << "\n"
    text << "Available commands:\n"
    text << "\n"
    @base.commands.sort.each do |command|
      text << sprintf("    %-20s %s\n", command.name, command.short_desc)
    end

    # Add global options
    text << "\n"
    text << "Global options:\n"
    text << "\n"
    @base.global_option_definitions.sort { |x,y| x[:long] <=> y[:long] }.each do |opt_def|
      text << sprintf("    -%1s --%-15s %s\n", opt_def[:short], opt_def[:long], opt_def[:desc])
    end

    # Display text
    puts text
  elsif arguments.length == 1
    command = @base.command_named(arguments[0])
    puts command.help
  end
end

#short_descObject



28
29
30
# File 'lib/mercury/cli/commands/help.rb', line 28

def short_desc
  'Show help for a command'
end

#usageObject



40
41
42
# File 'lib/mercury/cli/commands/help.rb', line 40

def usage
  "mercury help [command]"
end