我有foo.gem,里面有lib/foo.rb
。如何自动将Gem包含在路径中?
当我添加宝石的Gemfile它的foo.rb在我的道路自动必需的。但我需要自动包含它。原因是我在做控制台扩展,我希望他们在没有我写'include Foo'的情况下可用。
我与
SOME_CLASS.send(:include, Foo)
但不知道是什么类的实验用把它添加到路径例如当我开始自动包含的控制台时。这里有一些自动包含在控制台中的mixin,我需要我的在那里:)谢谢
irb(main):006:0> self.class.included_modules
=> [PP::ObjectMixin, JSON::Ext::Generator::GeneratorMethods::Object, ActiveSupport::Dependencies::Loadable, Kernel]
P.S.
我能解决初始化问题,但我不想改变项目的代码,我只想补充的宝石,它的工作原理。
我想让它在控制台中可用,“某些类”是一个关于使用什么的问题。事实证明,它适用于'Object.send(:include,Foo)'。 –
@Dolphin,对不起,我误解了你的问题。我已经更新了我的答案,其中有几个原因可以代替您使用'Kernel'。 –
你说得对,在'Kernel'中使用它更有意义。似乎有错误或一些内部工作,我不明白哪些需要我做'Kernel.send(:include,self)',并且在将'Kernel'重新包含到'Object'之后,因为它不工作它,'Object.send(:include,Kernel)'。 底线方法以'Object'结尾,即使它是更多行代码,通过封装到'Kernel'也是更好的方法。你能否提出我可以用这些核心Ruby工作更好地教育自己的材料? –