我正在使用由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
之后运行?
我希望有一种方法可以声明一个钩子方法(类似于Rails的thing
,因此我可以避免在每个命令中首先手动调用before_action
,在每个命令中最后手动调用setup
。
似乎在Thor Thor gem中没有内置的方法来进行此类回调。 (我认为这将是一个流行的功能,但也许我正在以错误的方式看待事物。)
以上评论指向第三方解决方案teardown
,但我没有尝试过。