命名Ruby Gem中的所有类?

时间:2018-04-16 16:25:46

标签: ruby rubygems

好的,所以我认为这可能是超级琐碎或不可能的,但无论哪种方式,我都在努力寻找答案。

我现在正在使用ruby创建一个gem,它在许多不同的文件中都有许多类,所有文件都在主gem文件中导入,如下所示:

# lib/main_gem_file.rb

module MainGemFile 
  Dir[File.join(__dir__, 'main_gem_file', '*.rb')].each do |file|
    require file 
  end
end

这很好用,我的所有文件都已加载。问题是,它们都没有在MainGemFile命名空间下加载。目前,main_gem_file中没有类文件在其定义中使用命名空间,因此它们如下所示:

# lib/main_gem_file/class_one.rb

class ClassOne
end

理想情况下,我会找到一种方法来执行以下操作:

  1. 将lib文件中的所有类加载到特定模块(MainGemFile)中,而不需要为每个单独的类命名(显然我可以在每个类的顶部执行MainGemFile :: ClassA,但这感觉就像我工作的很多笨拙的工作有很多类,我假设他们应该在main_gem_file.rb文件中自动执行此操作。
  2. 此外,我希望以一种方式构建所有内容,任何需要此gem的ruby项目必须使用MainGemFile :: ClassA语法来访问Class,同时允许gem的实际内部类访问其兄弟类只是ClassA调用,因为它们是在同一个模块中定义的。再一次,感觉就像在每个类调用之前必须经历并且手动添加MainGemFile ::的grunt工作,但是如果它们不是其他解决方案的话就会这样做。

0 个答案:

没有答案