lib/ggem/cli/commands.rb in ggem-1.9.1 vs lib/ggem/cli/commands.rb in ggem-1.9.2

- old
+ new

@@ -1,16 +1,14 @@ require "ggem/cli/clirb" require "much-plugin" module GGem; end class GGem::CLI - InvalidCommandError = Class.new(ArgumentError) CommandExitError = Class.new(RuntimeError) class InvalidCommand - attr_reader :name, :clirb def initialize(name) @name = name @clirb = CLIRB.new @@ -28,22 +26,16 @@ "Usage: ggem [COMMAND] [options]\n\n" \ "Options: #{@clirb}\n" \ "Commands:\n" \ "#{COMMANDS.to_s.split("\n").map{ |l| " #{l}" }.join("\n")}\n" end - end module ValidCommand include MuchPlugin - plugin_included do - include InstanceMethods - end - - module InstanceMethods - + plugin_instance_methods do def initialize(&clirb_build) @clirb = CLIRB.new(&clirb_build) end def clirb; @clirb; end @@ -55,24 +47,17 @@ end def summary "" end - end - end module NotifyCmdCommand include MuchPlugin - plugin_included do - include InstanceMethods - end - - module InstanceMethods - + plugin_instance_methods do private def notify(success_msg, &cmd_block) cmd(&cmd_block) @stdout.puts success_msg @@ -83,25 +68,22 @@ if ENV["DEBUG"] @stdout.puts cmd @stdout.puts output end end - end - end module GitRepoCommand include MuchPlugin plugin_included do include ValidCommand include NotifyCmdCommand - include InstanceMethods end - module InstanceMethods + plugin_instance_methods do def initialize(*args) super require "ggem/git_repo" @repo = GGem::GitRepo.new(Dir.pwd) @@ -115,11 +97,10 @@ rescue GGem::GitRepo::CmdError => exception @stderr.puts exception.message raise CommandExitError end end - end end class GenerateCommand include GitRepoCommand @@ -149,23 +130,21 @@ "Usage: ggem generate [options] GEM-NAME\n\n" \ "Options: #{@clirb}\n" \ "Description:\n" \ " #{self.summary}" end - end module GemspecCommand include MuchPlugin plugin_included do include ValidCommand include NotifyCmdCommand - include InstanceMethods end - module InstanceMethods + plugin_instance_methods do def initialize(*args) super require "ggem/gemspec" begin @@ -185,11 +164,10 @@ rescue GGem::Gemspec::CmdError => exception @stderr.puts exception.message raise CommandExitError end end - end end class BuildCommand include GemspecCommand @@ -210,11 +188,10 @@ "Usage: ggem build [options]\n\n" \ "Options: #{@clirb}\n" \ "Description:\n" \ " #{self.summary}" end - end class InstallCommand include GemspecCommand @@ -240,11 +217,10 @@ "Usage: ggem install [options]\n\n" \ "Options: #{@clirb}\n" \ "Description:\n" \ " #{self.summary}" end - end class PushCommand include GemspecCommand @@ -271,33 +247,28 @@ "Usage: ggem push [options]\n\n" \ "Options: #{@clirb}\n" \ "Description:\n" \ " #{self.summary}" end - end module ForceTagOptionCommand include MuchPlugin plugin_included do include ValidCommand - include InstanceMethods end - module InstanceMethods - + plugin_instance_methods do def initialize super do option "force-tag", "force tagging even with uncommitted files", { :abbrev => "f" } end end - end - end class TagCommand include GitRepoCommand include GemspecCommand @@ -343,11 +314,10 @@ "Usage: ggem tag [options]\n\n" \ "Options: #{@clirb}\n" \ "Description:\n" \ " #{self.summary}" end - end class ReleaseCommand include GemspecCommand include ForceTagOptionCommand @@ -374,15 +344,13 @@ "Options: #{@clirb}\n" \ "Description:\n" \ " #{self.summary}\n" \ " (macro for running `ggem tag && ggem push`)" end - end class CommandSet - def initialize(&unknown_cmd_block) @lookup = Hash.new{ |h,k| unknown_cmd_block.call(k) } @names = [] @aliases = {} @summaries = {} @@ -423,9 +391,7 @@ @to_s ||= @names.map do |n| "#{n.ljust(max_name_size)} #{@aliases[n].ljust(max_alias_size)} #{@summaries[n]}" end.join("\n") end - end - end