module DTK::Client::CLI::Command::Mixin::Class
Public Instance Methods
command_def(opts = {})
click to toggle source
# File lib/cli/command/mixin.rb, line 57 def command_def(opts = {}) command_name = command_name() mangled_method = mangled_method(command_name) subcommand_mangled_methods = all_subcommands.map { |subcommand_name| mangled_subcommand_method(subcommand_name) } block = proc do if context_attributes[:only_context_commands] subcommand_mangled_methods.each do |subcommand_mangled_method| instance_eval { send(subcommand_mangled_method, self) } end else desc opts[:desc] if opts[:desc] command command_name do |c| subcommand_mangled_methods.each do |subcommand_mangled_method| instance_eval { send(subcommand_mangled_method, c) } end end end end class_eval { define_method(mangled_method, &block) } end
subcommand_def(subcommand_name, &block)
click to toggle source
# File lib/cli/command/mixin.rb, line 79 def subcommand_def(subcommand_name, &block) mangled_subcommand_method = mangled_subcommand_method(subcommand_name) class_eval { define_method(mangled_subcommand_method, &block) } end
Private Instance Methods
all_subcommands()
click to toggle source
# File lib/cli/command/mixin.rb, line 90 def all_subcommands self::ALL_SUBCOMMANDS end
command_name()
click to toggle source
# File lib/cli/command/mixin.rb, line 94 def command_name self.to_s.split('::').last.downcase.to_sym end
mangled_subcommand_method(subcommand_name)
click to toggle source
# File lib/cli/command/mixin.rb, line 86 def mangled_subcommand_method(subcommand_name) "#{mangled_method(command_name)}__#{subcommand_name}".to_sym end