[英]Organize a structure of gem
我寫的寶石,它是除了faker
寶石(與像稅和增值稅et.c.俄語功能)
因此,我遇到了麻煩:每段代碼都很大,因此我需要將其拆分為邏輯部分。
IE瀏覽器,我有Inn
功能被稱為Faker::Russian.inn()
所以,我寫
Dir['faker/russian/*.rb'].each { |file| require file }
module Faker
class Russian
extend Inn
end
end
另外,我有(在faker/russian/inn.rb
)(這是必需的)
module Inn
def inn ; puts 'inn goes here' ; end
end
但是我有一個錯誤: lib/faker/russian.rb:5:in <class:Russian>': uninitialized constant Faker::Russian::Inn (NameError)
如何避免此錯誤並成功包含代碼並自動extend
所有連接的模塊?
選項1是在擴展時引用頂級名稱空間
extend ::Inn
選項2是使用正確的名稱空間定義Inn
module Faker
module Russian
module Inn
def inn; end
end
end
end
在gem選項2中,最好讓所有模塊在該gem的頂層模塊下都有名稱空間。 想象一下,如果您使用選項1並在應用程序中有一個Inn模塊而不是gem,那么您會遇到問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.