【发布时间】:2015-11-24 15:27:06
【问题描述】:
对于一个 cli 项目,我希望有一个带有 thor 任务的共享超类。调用子命令帮助时,它应该使用自定义描述公开共享命令。
我想出了下面的代码,但变量@plural 没有在描述中替换。
这可以通过 Thor 和一些元编程实现吗?
module MyModule
class ResourceSubcommand < Thor
def initialize(*args)
super
end
desc "list", "list all #{@plural}"
def list
list_object(@default_list_columns)
end
end
end
module MyModule
class Account < MyModule::ResourceSubcommand
def initialize(*args)
super
@plural = 'accounts'
end
end
end
module MyModule
class Commands < Thor
desc "account SUBCOMMAND ...ARGS", "manage Exact Online accounts"
subcommand "account", Account
end
end
运行$ thorcli account help 应该输出:
Commands:
thorcli account help [COMMAND] # Describe subcommands or one specific subcommand
thorcli account list # list all accounts
【问题讨论】:
标签: ruby command-line-interface thor