我有一个像这样的红宝石代码:
module MyClass
def self.my_method?
return false
end
end
从命令行我必须调用该方法并获取返回值。但是如果我做的话
ruby -e "require './PATH/TO/THE/FILE/file.rb'; MyClass.my_method?"
我总是得到$?或退出代码= 0。
如何调用ruby方法获取其返回值?
由于
答案 0 :(得分:1)
使用Kernel#exit
:
ruby -e 'require "file.rb"; exit MyClass.my_method?'
答案 1 :(得分:0)
这是一种非常不寻常的调用Ruby代码的方法,但是如果你确实需要这样做:
ruby -r ./file.rb -e 'exit(MyClass.my_method? ? 0 : -1)'
将布尔响应转换为显式传递给exit
的内容,您可以将其作为退出代码收集。如有必要,您可以将结果映射到某种错误代码。我在这里只使用-1作为例子。