Ruby - 在哪里放置lib中的模块所依赖的资源文件?

时间:2012-03-11 14:07:58

标签: ruby rubygems ruby-1.9.3

我正在尝试按照最佳实践构建我的ruby项目。我现在有这样的事情:

test_project/
   bin/
       test_project # My Executable
   lib/
       test_project/
           my_module.rb
       test_project.rb # Loads my_module.rb

我是根据我在网络上找到的建议以这种方式设置的。

我的问题是我有一些资源文件,“resouce1.txt”和“resouce2.txt”。我的可执行文件需要打开文件“resource1.txt”。 my_module.rb需要能够打开文件“resource2.txt”。我在哪里将这些计划文本资源文件放在这个目录结构中,以及如何从相应的ruby文件中打开它们(File.open)。

先谢谢,
Corsen

2 个答案:

答案 0 :(得分:1)

由于/lib与专门为您的宝石提供支持的Ruby有关,因此我会将其放在宝石中以其主题命名的顶级目录中。如果它们是带有物种清单的文件,我会称之为/species

如果您有很多外部资源,例如/assets,您也可以使用Rails方式并将其放在/assets/species文件夹中。无论哪种方式,我都不会将它们放在/lib中。

答案 1 :(得分:0)

我认为这些不存在标准位置,因为大多数情况下它依赖于操作系统(/var/etc vs Program Files vs Application Bundle)。但你最好的选择(我认为)是将它们放在层次结构的根目录中,将它们放在lib/中,或者如果它们确实是静态文本文件,则将它们放在脚本中。