我想了解一下ruby (非rails/merb/等)项目的理想项目结构。我猜是这样的
app/
bin/ #Files for command-line execution
lib/
appname.rb
appname/ #Classes and so on
Rakefile #Running tests
README
test,spec,features/ #Whichever means of testing you go for
appname.gemspec #If it's a gem
我是不是搞错了?我遗漏了哪些部分?
发布于 2009-03-05 11:20:59
我认为这是非常正确的。默认情况下,Rubygems会将lib目录添加到装入路径中,但您可以使用$:变量将任何您想要的目录推入到该目录中。即
$:.push File.expand_path(File.dirname(__FILE__) + '/../surfcompstuff')
这意味着当您在目录中输入surfer.rb
时,您可以require "surfer"
anywhere并找到该文件。
同样,按照惯例,类和单例获取一个文件,模块获取一个目录。例如,如果您有LolCatz
模块和LolCatz::Moar
类,它将如下所示:
lib/
appname.rb
lolcatz/
moar.rb
这就是存在lib/appname文件夹的原因,因为大多数库都在appname
名称空间中。
此外,如果您尝试运行newgem --simple [projectname]
命令,它将很快为您生成一个脚手架,其中只包含Ruby项目的基本要素(扩展为Ruby Gem)。我知道还有其他工具可以做到这一点,但newgem很常见。我通常会去掉TODO文件和所有的脚本。
发布于 2013-07-25 17:35:38
请参阅来自http://guides.rubygems.org/what-is-a-gem/的以下示例
% tree freewill
freewill/
├── bin/
│ └── freewill
├── lib/
│ └── freewill.rb
├── test/
│ └── test_freewill.rb
├── README
├── Rakefile
└── freewill.gemspec
发布于 2009-03-06 05:32:56
我尝试模仿Rails项目结构,因为我的团队通常处理Rails,他们会比另一个配置更好地理解该结构。约定重于配置-从Rails中渗出。
https://stackoverflow.com/questions/614309
复制相似问题