Module: Morpheus::Cli::CliCommand::ClassMethods
- Defined in:
- lib/morpheus/cli/cli_command.rb
Instance Method Summary collapse
- #add_subcommand(cmd_name, method) ⇒ Object
- #add_subcommand_alias(alias_cmd_name, cmd_name) ⇒ Object
-
#alias_subcommand(alias_cmd_name, cmd_name) ⇒ Object
register an alias for a command.
- #command_name ⇒ Object
- #default_command_name ⇒ Object
- #default_subcommand ⇒ Object
- #has_subcommand?(cmd_name) ⇒ Boolean
- #hidden_command ⇒ Object
-
#register_subcommands(*cmds) ⇒ Object
construct map of command name => instance method.
- #remove_subcommand(cmd_name) ⇒ Object
- #remove_subcommand_alias(alias_cmd_name) ⇒ Object
- #set_command_hidden(val = true) ⇒ Object
- #set_command_name(cmd_name) ⇒ Object
- #set_default_subcommand(cmd) ⇒ Object
- #subcommand_aliases ⇒ Object
- #subcommands ⇒ Object
Instance Method Details
#add_subcommand(cmd_name, method) ⇒ Object
823 824 825 826 |
# File 'lib/morpheus/cli/cli_command.rb', line 823 def add_subcommand(cmd_name, method) @subcommands ||= {} @subcommands[cmd_name.to_s] = method end |
#add_subcommand_alias(alias_cmd_name, cmd_name) ⇒ Object
843 844 845 846 |
# File 'lib/morpheus/cli/cli_command.rb', line 843 def add_subcommand_alias(alias_cmd_name, cmd_name) @subcommand_aliases ||= {} @subcommand_aliases[alias_cmd_name.to_s] = cmd_name end |
#alias_subcommand(alias_cmd_name, cmd_name) ⇒ Object
register an alias for a command
834 835 836 837 |
# File 'lib/morpheus/cli/cli_command.rb', line 834 def alias_subcommand(alias_cmd_name, cmd_name) add_subcommand_alias(alias_cmd_name.to_s, cmd_name.to_s.gsub('_', '-')) return end |
#command_name ⇒ Object
770 771 772 773 |
# File 'lib/morpheus/cli/cli_command.rb', line 770 def command_name @command_name ||= default_command_name @command_name end |
#default_command_name ⇒ Object
764 765 766 767 768 |
# File 'lib/morpheus/cli/cli_command.rb', line 764 def default_command_name class_name = self.name.split('::')[-1] #class_name.sub!(/Command$/, '') Morpheus::Cli::CliRegistry.cli_ize(class_name) end |
#default_subcommand ⇒ Object
810 811 812 |
# File 'lib/morpheus/cli/cli_command.rb', line 810 def default_subcommand @default_subcommand end |
#has_subcommand?(cmd_name) ⇒ Boolean
818 819 820 821 |
# File 'lib/morpheus/cli/cli_command.rb', line 818 def has_subcommand?(cmd_name) return false if cmd_name.empty? @subcommands && @subcommands[cmd_name.to_s] end |
#hidden_command ⇒ Object
779 780 781 |
# File 'lib/morpheus/cli/cli_command.rb', line 779 def hidden_command !!@hidden_command end |
#register_subcommands(*cmds) ⇒ Object
construct map of command name => instance method
784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 |
# File 'lib/morpheus/cli/cli_command.rb', line 784 def register_subcommands(*cmds) @subcommands ||= {} cmds.flatten.each {|cmd| if cmd.is_a?(Hash) cmd.each {|k,v| # @subcommands[k] = v add_subcommand(k.to_s, v.to_s) } elsif cmd.is_a?(Array) cmd.each {|it| register_subcommands(it) } elsif cmd.is_a?(String) || cmd.is_a?(Symbol) #k = Morpheus::Cli::CliRegistry.cli_ize(cmd) k = cmd.to_s.gsub('_', '-') v = cmd.to_s.gsub('-', '_') register_subcommands({(k) => v}) else raise "Unable to register command of type: #{cmd.class} #{cmd}" end } return end |
#remove_subcommand(cmd_name) ⇒ Object
828 829 830 831 |
# File 'lib/morpheus/cli/cli_command.rb', line 828 def remove_subcommand(cmd_name) @subcommands ||= {} @subcommands.delete(cmd_name.to_s) end |
#remove_subcommand_alias(alias_cmd_name) ⇒ Object
848 849 850 851 |
# File 'lib/morpheus/cli/cli_command.rb', line 848 def remove_subcommand_alias(alias_cmd_name) @subcommand_aliases ||= {} @subcommand_aliases.delete(alias_cmd_name.to_s) end |
#set_command_hidden(val = true) ⇒ Object
775 776 777 |
# File 'lib/morpheus/cli/cli_command.rb', line 775 def set_command_hidden(val=true) @hidden_command = val end |
#set_command_name(cmd_name) ⇒ Object
759 760 761 762 |
# File 'lib/morpheus/cli/cli_command.rb', line 759 def set_command_name(cmd_name) @command_name = cmd_name Morpheus::Cli::CliRegistry.add(self, self.command_name) end |
#set_default_subcommand(cmd) ⇒ Object
806 807 808 |
# File 'lib/morpheus/cli/cli_command.rb', line 806 def set_default_subcommand(cmd) @default_subcommand = cmd end |
#subcommand_aliases ⇒ Object
839 840 841 |
# File 'lib/morpheus/cli/cli_command.rb', line 839 def subcommand_aliases @subcommand_aliases ||= {} end |
#subcommands ⇒ Object
814 815 816 |
# File 'lib/morpheus/cli/cli_command.rb', line 814 def subcommands @subcommands ||= {} end |