lib/ggem/cli.rb in ggem-1.9.1 vs lib/ggem/cli.rb in ggem-1.9.2
- old
+ new
@@ -1,63 +1,58 @@
require "ggem/version"
require "ggem/cli/clirb"
require "ggem/cli/commands"
-module GGem
+module GGem; end
+class GGem::CLI
+ COMMANDS = CommandSet.new{ |unknown| InvalidCommand.new(unknown) }.tap do |c|
+ c.add(GenerateCommand, "generate", "g")
+ c.add(BuildCommand, "build", "b")
+ c.add(InstallCommand, "install", "i")
+ c.add(PushCommand, "push", "p")
+ c.add(TagCommand, "tag", "t")
+ c.add(ReleaseCommand, "release", "r")
+ end
- class CLI
+ def self.run(args)
+ self.new.run(args)
+ end
- COMMANDS = CommandSet.new{ |unknown| InvalidCommand.new(unknown) }.tap do |c|
- c.add(GenerateCommand, "generate", "g")
- c.add(BuildCommand, "build", "b")
- c.add(InstallCommand, "install", "i")
- c.add(PushCommand, "push", "p")
- c.add(TagCommand, "tag", "t")
- c.add(ReleaseCommand, "release", "r")
- end
+ def initialize(kernel = nil, stdout = nil, stderr = nil)
+ @kernel = kernel || Kernel
+ @stdout = stdout || $stdout
+ @stderr = stderr || $stderr
+ end
- def self.run(args)
- self.new.run(args)
+ def run(args)
+ begin
+ cmd_name = args.shift
+ cmd = COMMANDS[cmd_name]
+ cmd.run(args)
+ rescue CLIRB::HelpExit
+ @stdout.puts cmd.help
+ rescue CLIRB::VersionExit
+ @stdout.puts GGem::VERSION
+ rescue CLIRB::Error, ArgumentError, InvalidCommandError => exception
+ display_debug(exception)
+ @stderr.puts "#{exception.message}\n\n"
+ @stdout.puts cmd.help
+ @kernel.exit 1
+ rescue CommandExitError
+ @kernel.exit 1
+ rescue StandardError => exception
+ @stderr.puts "#{exception.class}: #{exception.message}"
+ @stderr.puts exception.backtrace.join("\n")
+ @kernel.exit 1
end
+ @kernel.exit 0
+ end
- def initialize(kernel = nil, stdout = nil, stderr = nil)
- @kernel = kernel || Kernel
- @stdout = stdout || $stdout
- @stderr = stderr || $stderr
- end
+ private
- def run(args)
- begin
- cmd_name = args.shift
- cmd = COMMANDS[cmd_name]
- cmd.run(args)
- rescue CLIRB::HelpExit
- @stdout.puts cmd.help
- rescue CLIRB::VersionExit
- @stdout.puts GGem::VERSION
- rescue CLIRB::Error, ArgumentError, InvalidCommandError => exception
- display_debug(exception)
- @stderr.puts "#{exception.message}\n\n"
- @stdout.puts cmd.help
- @kernel.exit 1
- rescue CommandExitError
- @kernel.exit 1
- rescue StandardError => exception
- @stderr.puts "#{exception.class}: #{exception.message}"
- @stderr.puts exception.backtrace.join("\n")
- @kernel.exit 1
- end
- @kernel.exit 0
+ def display_debug(exception)
+ if ENV["DEBUG"]
+ @stderr.puts "#{exception.class}: #{exception.message}"
+ @stderr.puts exception.backtrace.join("\n")
end
-
- private
-
- def display_debug(exception)
- if ENV["DEBUG"]
- @stderr.puts "#{exception.class}: #{exception.message}"
- @stderr.puts exception.backtrace.join("\n")
- end
- end
-
end
-
end