我有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工作更好地教育自己的材料? –