gpt4 book ai didi

带有命名空间的基于 Ruby Thor 的可执行文件

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

是否可以创建一个接受命名空间的基于 Thor 的 Ruby 可执行文件?例如,允许从命令行执行以下操作:./thorfile greet:formal

鉴于我有以下 thorfile:

#!/usr/bin/env ruby

require 'rubygems'
require 'thor'

class TalkTasks < Thor
namespace "talk"

desc "greet", "says hello"
def greet
puts "Hello!"
end

class Formal < Thor
namespace "talk:formal"

desc "greet", "says a formal hello"
def greet
puts "Good evening!"
end
end

end

TalkTasks.start

这个 thorfile 提供以下任务(thor -T):

thor talk:formal:greet  # says a formal hello
thor talk:greet # says hello

我也可以直接将 thorfile 作为可执行文件来使用:

./thorfile greet

显示:

Hello!

如何让 ./thorfile formal:greet(或类似的东西)在 Formal 类中执行 greet 方法,以便显示:

Good evening!

最佳答案

更改 Formal 类的命名空间

class Formal < Thor
namespace "formal"
...
end

您已经嵌套了类,所以命名空间也嵌套了。如果你把它们分开,你可以 talk:formal 嘿嘿没时间测试了。应该可以。

关于带有命名空间的基于 Ruby Thor 的可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6561912/

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