gpt4 book ai didi

ruby - 可以在不调用 thor 的情况下调用可执行的 Thor-powered 脚本吗?

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

我有一个基于 thor 的 Ruby 脚本,但我想将它作为 gem 部署在人们的 bin 目录中,人们无需执行 thor mytool 即可访问。

所以他们只会使用 mytool

这可能吗?

我知道使用 vanilla optparse 是可行的,但如果可能的话我宁愿使用 Thor。

更新:这是我根据 Thor 页面上的示例使用的代码,但出现以下错误:

#!/usr/bin/env thor

class App < Thor
map "-L" => :list

desc "install APP_NAME", "install one of the available apps"
method_options :force => :boolean, :alias => :string
def install(name)
user_alias = options[:alias]
if options.force?
# do something
end
# other code
end

desc "list [SEARCH]", "list all of the available apps, limited by SEARCH"
def list(search="")
# list everything
end
end

错误:

/usr/lib/ruby/gems/1.8/gems/thor-0.14.0/lib/thor/runner.rb:34:in `method_missing': undefined method `start' for nil:NilClass (NoMethodError)        from /usr/lib/ruby/gems/1.8/gems/thor-0.14.0/lib/thor/task.rb:22:in `send'        from /usr/lib/ruby/gems/1.8/gems/thor-0.14.0/lib/thor/task.rb:22:in `run'        from /usr/lib/ruby/gems/1.8/gems/thor-0.14.0/lib/thor/task.rb:108:in `run'        from /usr/lib/ruby/gems/1.8/gems/thor-0.14.0/lib/thor/invocation.rb:118:in `invoke_task'        from /usr/lib/ruby/gems/1.8/gems/thor-0.14.0/lib/thor.rb:246:in `dispatch'        from /usr/lib/ruby/gems/1.8/gems/thor-0.14.0/lib/thor/base.rb:389:in `start'        from /usr/lib/ruby/gems/1.8/gems/thor-0.14.0/bin/thor:6        from /usr/bin/thor:19:in `load'        from /usr/bin/thor:19

最佳答案

制作shebang线

#!/usr/bin/env ruby

然后在脚本末尾添加

App.start

关于ruby - 可以在不调用 thor 的情况下调用可执行的 Thor-powered 脚本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3584731/

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