我正在使用由the Thor gem支持的CLI工具。假设我有一个Cli
继承自Thor
的类,该类定义了一个CLI工具,该工具具有与其关联的一些命令:
class Cli < Thor
def version
# Prints out the version
end
def something
# Does something else
end
def thing
# Does a different thing
end
end
如何定义在所有命令之前或之后运行的方法?
例如,假设我创建了两个私有方法–我们将它们称为setup
和teardown
。如何使setup
在version
,something
和thing
之前运行?以及如何使teardown
在version
,something
和thing
之后运行?
我希望有一种方法可以声明一个钩子方法(类似于Rails的before_action
),因此我可以避免在每个命令中先手动调用setup
,然后teardown
在每个命令中都是最后一个。
答案 0 :(得分:0)
似乎在Thor的gem中没有内置的方法来进行此类回调。 (我认为这将是一个流行的功能,但也许我正在以错误的方式看待事物。)
以上评论指向第三方解决方案thor-hollaback,但我尚未尝试过。