我有一段条件代码,只能在某些条件下加载。它是特定于平台的代码。
module MyGem
module MyPlatformSpecificThing
#stuff
end
end
我目前懒惰地要求这样做的尝试是这样执行的:
module MyGem
class AClass
def DoSomething
if thing_is_true
require 'my_platform_specific_thing.rb'
MyGem::MyPlatformSpecificThing.init
#more stuff
end
#even more stuff
end
end
这似乎是一个足够可靠的计划,不幸的是它不起作用。此代码导致错误:
uninitialized constant MyGem::MyPlatformSpecificThing (NameError)
堆栈跟踪表明错误的来源是在 DoSomething 方法中对 init 的调用。
我不完全确定为什么 Ruby 在这里适合我。我做错了什么,我应该怎么做?
编辑:
具体而言,我指的是位于此处的 Platform 类。以上应该有助于缩小我所指的细节,但如果有人想要/需要查看我正在使用的特定类/模块。