Class: Mongrel::Command::Registry

Class | Mongrel::Command::Registry
In: | lib/mongrel/command.rb lib/mongrel/command.rb
Parent: | Object

A Singleton class that manages all of the available commands and handles running them.

### Methods

commands commands print_command_list print_command_list run run

### Included Modules

Singleton Singleton

### Public Instance methods

commands()

Builds a list of possible commands from the Command derivates list

[Source]

         # File lib/mongrel/command.rb, line 150
    150:       def commands
    151:         pmgr = GemPlugin::Manager.instance
    152:         list = pmgr.plugins["/commands"].keys
    153:         return list.sort
    154:       end

commands()

Builds a list of possible commands from the Command derivates list

[Source]

         # File lib/mongrel/command.rb, line 150
    150:       def commands
    151:         pmgr = GemPlugin::Manager.instance
    152:         list = pmgr.plugins["/commands"].keys
    153:         return list.sort
    154:       end

print_command_list()

Prints a list of available commands.

[Source]

         # File lib/mongrel/command.rb, line 157
    157:       def print_command_list
    158:         puts "#{Mongrel::Command::BANNER}\nAvailable commands are:\n\n"
    159:
    160:         self.commands.each do |name|
    161:           if /mongrel::/ =~ name
    162:             name = name[9 .. -1]
    163:           end
    164:
    165:           puts " - #{name[1 .. -1]}\n"
    166:         end
    167:
    168:         puts "\nEach command takes -h as an option to get help."
    169:
    170:       end

print_command_list()

Prints a list of available commands.

[Source]

         # File lib/mongrel/command.rb, line 157
    157:       def print_command_list
    158:         puts "#{Mongrel::Command::BANNER}\nAvailable commands are:\n\n"
    159:
    160:         self.commands.each do |name|
    161:           if /mongrel::/ =~ name
    162:             name = name[9 .. -1]
    163:           end
    164:
    165:           puts " - #{name[1 .. -1]}\n"
    166:         end
    167:
    168:         puts "\nEach command takes -h as an option to get help."
    169:
    170:       end

run(args)

Runs the args against the first argument as the command name. If it has any errors it returns a false, otherwise it return true.

[Source]

         # File lib/mongrel/command.rb, line 175
    175:       def run(args)
    176:         # find the command
    177:         cmd_name = args.shift
    178:
    179:         if !cmd_name or cmd_name == "?" or cmd_name == "help"
    180:           print_command_list
    181:           return true
    182:         elsif cmd_name == "--version"
    183:           puts "Mongrel Web Server #{Mongrel::Const::MONGREL_VERSION}"
    184:           return true
    185:         end
    186:
    187:         begin
    188:           # quick hack so that existing commands will keep working but the Mongrel:: ones can be moved
    189:           if ["start", "stop", "restart"].include? cmd_name
    190:             cmd_name = "mongrel::" + cmd_name
    191:           end
    192:
    193:           command = GemPlugin::Manager.instance.create("/commands/#{cmd_name}", :argv => args)
    194:         rescue OptionParser::InvalidOption
    195:           STDERR.puts "#$! for command '#{cmd_name}'"
    196:           STDERR.puts "Try #{cmd_name} -h to get help."
    197:           return false
    198:         rescue
    199:           STDERR.puts "ERROR RUNNING '#{cmd_name}': #$!"
    200:           STDERR.puts "Use help command to get help"
    201:           return false
    202:         end
    203:
    204:         # Normally the command is NOT valid right after being created
    205:         # but sometimes (like with -h or -v) there's no further processing
    206:         # needed so the command is already valid so we can skip it.
    207:         if not command.done_validating
    208:           if not command.validate
    209:             STDERR.puts "#{cmd_name} reported an error. Use mongrel_rails #{cmd_name} -h to get help."
    210:             return false
    211:           else
    212:             command.run
    213:           end
    214:         end
    215:
    216:         return true
    217:       end

run(args)

Runs the args against the first argument as the command name. If it has any errors it returns a false, otherwise it return true.

[Source]

         # File lib/mongrel/command.rb, line 175
    175:       def run(args)
    176:         # find the command
    177:         cmd_name = args.shift
    178:
    179:         if !cmd_name or cmd_name == "?" or cmd_name == "help"
    180:           print_command_list
    181:           return true
    182:         elsif cmd_name == "--version"
    183:           puts "Mongrel Web Server #{Mongrel::Const::MONGREL_VERSION}"
    184:           return true
    185:         end
    186:
    187:         begin
    188:           # quick hack so that existing commands will keep working but the Mongrel:: ones can be moved
    189:           if ["start", "stop", "restart"].include? cmd_name
    190:             cmd_name = "mongrel::" + cmd_name
    191:           end
    192:
    193:           command = GemPlugin::Manager.instance.create("/commands/#{cmd_name}", :argv => args)
    194:         rescue OptionParser::InvalidOption
    195:           STDERR.puts "#$! for command '#{cmd_name}'"
    196:           STDERR.puts "Try #{cmd_name} -h to get help."
    197:           return false
    198:         rescue
    199:           STDERR.puts "ERROR RUNNING '#{cmd_name}': #$!"
    200:           STDERR.puts "Use help command to get help"
    201:           return false
    202:         end
    203:
    204:         # Normally the command is NOT valid right after being created
    205:         # but sometimes (like with -h or -v) there's no further processing
    206:         # needed so the command is already valid so we can skip it.
    207:         if not command.done_validating
    208:           if not command.validate
    209:             STDERR.puts "#{cmd_name} reported an error. Use mongrel_rails #{cmd_name} -h to get help."
    210:             return false
    211:           else
    212:             command.run
    213:           end
    214:         end
    215:
    216:         return true
    217:       end

[Validate]