Module: Luban::CLI::Commands::ClassMethods
Instance Method Summary
collapse
#has_command?, #has_commands?, #list_commands
Instance Method Details
#command(app = self, cmd, **opts, &blk) ⇒ Object
34
35
36
37
38
39
40
41
42
|
# File 'lib/luban/cli/commands.rb', line 34
def command(app = self, cmd, **opts, &blk)
cmd_class = command_class(cmd)
klass = if self.const_defined?(command_class(cmd))
self.const_get(command_class(cmd))
else
self.const_set(command_class(cmd), Class.new(Command))
end
commands[cmd] = klass.new(app, cmd, **opts, &blk)
end
|
#command_class(cmd) ⇒ Object
30
31
32
|
# File 'lib/luban/cli/commands.rb', line 30
def command_class(cmd)
"#{classify(cmd)}Command"
end
|
#commands ⇒ Object
26
27
28
|
# File 'lib/luban/cli/commands.rb', line 26
def commands
@commands ||= {}
end
|
#undef_command(cmd) ⇒ Object
44
45
46
|
# File 'lib/luban/cli/commands.rb', line 44
def undef_command(cmd)
undef_method(commands.delete(cmd).action_method)
end
|