module HammerCLI::Subcommand::ClassMethods
Public Instance Methods
lazy_subcommand(name, description, subcommand_class, path)
click to toggle source
# File lib/hammer_cli/subcommand.rb, line 65 def lazy_subcommand(name, description, subcommand_class, path) # call original subcommand to ensure command's parameters are set correctly # (hammer command SUBCOMMAND [ARGS] ...) subcommand(name, description, Class) # replace last subcommand definition with correct lazy-loaded one recognised_subcommands[-1] = LazyDefinition.new(name, description, subcommand_class, path) end
lazy_subcommand!(name, description, subcommand_class, path)
click to toggle source
# File lib/hammer_cli/subcommand.rb, line 73 def lazy_subcommand!(name, description, subcommand_class, path) remove_subcommand(name) self.lazy_subcommand(name, description, subcommand_class, path) logger.info "subcommand #{name} (#{subcommand_class}) was created." end
remove_subcommand(name)
click to toggle source
# File lib/hammer_cli/subcommand.rb, line 36 def remove_subcommand(name) self.recognised_subcommands.delete_if do |sc| if sc.is_called?(name) logger.info "subcommand #{name} (#{sc.subcommand_class}) was removed." true else false end end end
subcommand(name, description, subcommand_class = self, &block)
click to toggle source
Calls superclass method
# File lib/hammer_cli/subcommand.rb, line 53 def subcommand(name, description, subcommand_class = self, &block) existing = find_subcommand(name) if existing raise HammerCLI::CommandConflict, _("can't replace subcommand %<name>s (%<existing_class>s) with %<name>s (%<new_class>s)") % { :name => name, :existing_class => existing.subcommand_class, :new_class => subcommand_class } end super end
subcommand!(name, description, subcommand_class = self, &block)
click to toggle source
# File lib/hammer_cli/subcommand.rb, line 47 def subcommand!(name, description, subcommand_class = self, &block) remove_subcommand(name) subcommand(name, description, subcommand_class, &block) logger.info "subcommand #{name} (#{subcommand_class}) was created." end