理想的ruby工程结构是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

我猜是这样的:

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

提问于
用户回答回答于

默认情况下,Rubygems会将lib目录添加到loadpath,可以使用$:变量将所需的任何目录推送到该目录。即

$:.push File.expand_path(File.dirname(__FILE__) + '/../surfcompstuff')

这意味着,如果surfer.rb在该目录中,可以require "surfer"在任何地方找到该文件。

另外,作为一个约定,类和单例获得一个文件,模块获得一个目录。例如,如果你有LolCatz模块和LolCatz::Moar类看起来像:

lib/
  appname.rb
  lolcatz/
    moar.rb

这就是为什么有一个lib / appname文件夹,因为大多数库都位于appname命名空间中。

另外,如果你尝试运行这个命令newgem --simple [projectname],那么只需要Ruby项目的基本要素(通过Ruby Gem的扩展)就可以快速生成。

用户回答回答于

请参阅http://guides.rubygems.org/what-is-a-gem/中的以下示例

 % tree freewill
    freewill/
    ├── bin/
    │   └── freewill
    ├── lib/
    │   └── freewill.rb
    ├── test/
    │   └── test_freewill.rb
    ├── README
    ├── Rakefile
    └── freewill.gemspec

扫码关注云+社区