gpt4 book ai didi

Ruby - Thor 首先执行特定任务

转载 作者:数据小太阳 更新时间:2023-10-29 06:57:42 26 4
gpt4 key购买 nike

当我运行 thor 任务时,是否可以先调用特定任务?

我的 Thorfile:

class Db < Thor

desc "show_Version", "some description ..."
def show_version # <= needs a database connection
puts ActiveRecord::Migrator.current_version
end

private

def connect_to_database # <= call this always when a task from this file is executed
# connect here to database
end

end

我可以在每个任务中编写“connect_to_database”方法,但这似乎不是很枯燥。

最佳答案

您可以使用调用来运行其他任务:

def show_version
invoke :connect_to_database
# ...
end

这也将确保它们只运行一次,否则您可以像往常一样调用该方法,例如

def show_version
connect_to_database
# ...
end

或者您可以添加对构造函数的调用,让它在每次调用时首先运行:

def initialize(*args)
super
connecto_to_database
end

super 的调用非常重要,没有它 Thor 将不知道该做什么。

关于Ruby - Thor 首先执行特定任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4152872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com