我主要在Rails工作,我正在使用命令行数据转换gem,“Mongify”,我对如何在Ruby cli应用程序中扩展核心类感到困惑。
我想用.is_date?
方法扩展String类,以检查字符串是否可以转换为Date
。我已经在Rails控制台中使用了它,
我使用以下内容向string.rb
添加了lib/ext
个文件;
class String
def is_date?
begin
return true if Date.parse(self)
rescue
#do nothing
end
return false
end
end
然后在Rails控制台中我执行require 'ext/string'
它会起作用。
但我无法弄清楚如何让它在Mongify cli应用程序中运行。我将string.rb复制到gem的lib文件夹中,我尝试将require 'string'
添加到gem中的许多不同文件中,但我不断收到undefined method
个错误。
有人能指出我正确的方向吗?
答案 0 :(得分:2)
你如何从lib/mongify.rb
那样需要它:
require 'string/extensions.rb'
然后将您的代码放入lib/string/extensions.rb
如果不是解决方案,请告诉我们您遇到的确切undefined method
错误。
答案 1 :(得分:1)
帮助您完成调试练习,为您提供所需的答案。首先在函数调用的位置之前放置一个断点。
在调试器中,加载所需的文档,然后在调用发生后跳过断点到下一个断点。
一旦你有了这个工作,然后在堆栈跟踪的早期开始 - 在一个之前加载的文件中。继续向后移动,直到你在gem的加载过程中得到足够早的部分,并使它成为你加载代码的地方。