是否有一种方法可以将钩子添加到Thor类中,以便在所有命令之前/之后运行代码?

问题描述 投票:0回答:1

我正在使用由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

我如何定义在所有命令之前或之后运行的方法?

例如,假设我创建了两个私有方法–我们将其称为setupteardown。如何使setupversionsomethingthing之前运行?如何使teardownversionsomething之后运行?

我希望有一种方法可以声明一个钩子方法(类似于Rails的thing,因此我可以避免在每个命令中首先手动调用before_action,在每个命令中最后手动调用setup

ruby command-line-interface hook thor
1个回答
0
投票

似乎在Thor Thor gem中没有内置的方法来进行此类回调。 (我认为这将是一个流行的功能,但也许我正在以错误的方式看待事物。)

以上评论指向第三方解决方案teardown,但我没有尝试过。

© www.soinside.com 2019 - 2024. All rights reserved.