Sha256: 49b6ac3678a59fa8231db9e699ab70ea35f8bd83f69f46a52898cd05b945a801
Contents?: true
Size: 1.11 KB
Versions: 4
Compression:
Stored size: 1.11 KB
Contents
require "optparse" class Ppl::Application::Shell attr_writer :router def run(input, output) outcome = false begin command = select_command(input) prepare_command(command, input) outcome = execute_command(command, input, output) rescue Ppl::Error::ContactNotFound output.error("ppl: Contact '#{$!}' not found") rescue OptionParser::InvalidOption, OptionParser::MissingArgument, Ppl::Error::IncorrectUsage output.error($!) output.error(@optparse.to_s) rescue output.error("ppl: " + $!.message) outcome = false end return outcome end private def select_command(input) @router.route(input.arguments.shift) end def prepare_command(command, input) if !command.nil? && !command.is_a?(Ppl::Command::Execute) @optparse = OptionParser.new do |parser| command.options(parser, input.options) end @optparse.parse!(input.arguments) end end def execute_command(command, input, output) outcome = false if !command.nil? outcome = command.execute(input, output) end return outcome end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
ppl-1.15.0 | lib/ppl/application/shell.rb |
ppl-1.14.1 | lib/ppl/application/shell.rb |
ppl-1.14.0 | lib/ppl/application/shell.rb |
ppl-1.13.0 | lib/ppl/application/shell.rb |