- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我是 Thor(和 Ruby)的新手,我正在考虑在构建脚本中使用它,因为据说它可以替代 Rake(从而替代 Make)。然而,经过短暂的试用,我对它返回的错误状态感到困惑。我快速浏览了 wiki,但没有看到任何提及。
只有第一个“简单示例”,test.thor
:
class Test < Thor
desc "example", "an example task"
def example
puts "I'm a thor task!"
end
end
版本号:
eruve>thor version
Thor 0.18.1
我尝试了以下,故意错误的命令:
eruve>ruby --version; thor test:example badarg; echo exit status: $?
ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin10.8.0]
ERROR: thor example was called with arguments ["badarg"]
Usage: "thor test:example".
exit status: 0
因此,出现了一个错误,但它仍然以状态 0 退出...这意味着我宁愿不在(非 ruby)脚本中使用它,否则脚本将继续运行,即使它应该终止。后续错误可能难以分析。
我一定是遗漏了什么,因此我的问题是:
有没有一种简单的方法可以在出现错误(配置文件等)时默认获取非零状态?
如果不是,我应该怎么做才能正确处理?
谢谢。
最佳答案
我知道这已经得到回答,但我认为这是一个更好的答案,所以我想我还是会贡献它。
Thor 有一个方法可以用来改变行为,因此错误会导致非零退出代码。它没有很好地记录(恕我直言)。
class Test < Thor
def self.exit_on_failure?
true
end
desc "example", "an example task"
def example
puts "I'm a thor task!"
end
end
这个默认值莫名其妙地是 false
。我不知道为什么有人会希望它表现得像那样。 Thor issue 244也解决了这个问题。
更新:从 Thor 1.0.0 开始,您将获得 deprecation warning如果您不提供自己的exit_on_failure?
方法。这是为了处理令人困惑的默认行为。
关于出现错误时的 Ruby/Thor 退出状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17241932/
我已经创建了一个 .thor 脚本来按照我喜欢的方式设置一个新的 ruby 项目。我正在使用 Thor::Actions directory 命令完全从模板目录结构构建应用程序,而不是使用 her
我想访问 Thor::Actions ( http://textmate.rubyforge.org/thor/Thor/Actions.html) 中的一些很棒的辅助方法,但如果不使用 Thor C
我有一个基于 thor 的 Ruby 脚本,但我想将它作为 gem 部署在人们的 bin 目录中,人们无需执行 thor mytool 即可访问。 所以他们只会使用 mytool 这可能吗? 我知道使
有没有办法让雷神有两个互斥的选项?例如,我需要提供一个列表选项。我可能有一个选择 -l ent1 ent2 ent3 ent67 ,我可能有一个选项 -f我传递了一个包含内容的文件 ent1 ent2
我正计划制作我的第一个命令行工具,并且想知道命名和命令是如何工作的。 我希望我的工具的功能与 Git 类似,因为您只需安装它,然后只需输入 git clone 或 git commit 即可运行命令。
我必须使用这个命令来运行我的 ruby 程序: $ruby filename.rb NAME --from="People" --yell 我有这样的脚本: require 'thor' class
我正在使用 Thor 编写 CLI gem。现在我有两个子命令,我想用连字符连接它们的名称。但我不知道如何让它发挥作用。 这是主类 module CLI class Base Could not
当我运行 thor 任务时,是否可以先调用特定任务? 我的 Thorfile: class Db < Thor desc "show_Version", "some description ...
我正在使用 Thor 内置操作“copy_file”从我的模板源复制文件,覆盖现有文件。 我总是想覆盖,不想以交互方式确认这一点。 文档并未建议此操作的配置哈希中有强制选项,但 http://text
我想将一个值合并到一个 Thor option hash 中. 如果我只是使用合并,我会得到一个错误,HashWithIndifferentAccess 我已经阅读了文档,但我很难理解如何让它工作。我
我想使用 Thor 在 Ruby 中创建一个命令行工具。此工具应打包为 gem,以便轻松安装和卸载。 创建并发布 gem,我已经完成了。我还创建了几个同样有效的 Thor 脚本。但是,我不知道如何将它
是否可以创建一个接受命名空间的基于 Thor 的 Ruby 可执行文件?例如,允许从命令行执行以下操作:./thorfile greet:formal 鉴于我有以下 thorfile: #!/usr/
这是我的 Ruby 代码: require 'thor' require 'thor/group' module CLI class Greet :string, :description
我是 Thor(和 Ruby)的新手,我正在考虑在构建脚本中使用它,因为据说它可以替代 Rake(从而替代 Make)。然而,经过短暂的试用,我对它返回的错误状态感到困惑。我快速浏览了 wiki,但没
雷神维基页面,Making an Exectable , 向您展示了如何创建一个看起来像这样的 thor 支持的 CLI 命令: 庆典 ./mythorcommand foo 这需要您将 thor 任
我正在寻找一种在 thors 模板操作中将选项传递给 ERB 模板引擎的方法。 我偶然发现了像这样使用 thors 模板操作的 bundler cli 源代码: opts = {:name => na
my_gem 你好 name1 name2 name3 给我一个 my_gem hello requires at least 1 argument: my_gem hello name 我应该只解析
我正在使用 Thor 并尝试将 YAML 输出到文件。在 irb 中,我得到了我所期望的。 YAML 格式的纯文本。但是当 Thor 中的方法的一部分时,它的输出是不同的...... class Fo
是否可以使用 Thor Action 从文件中删除一行文本。例如我想删除 ruby 评论。到目前为止,我已经找到了 2 个操作:comment_lines - 注释行,以及 gsub_file 谢谢
我刚刚开始使用 Thor。我一直在查看文档,但找不到任何隐藏任务的代码示例。我想要的是这样的, desc "configure", "Do the configuration" def configu
我是一名优秀的程序员,十分优秀!