dyl*_*nfm 121 ruby project-structure
我正在概述/澄清ruby(非rails/merb/etc)项目的理想项目结构.我猜它遵循以下几点:
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
Run Code Online (Sandbox Code Playgroud)
我有什么不对吗?我错过了哪些部分?
Chr*_*oyd 87
我认为这很有意义.默认情况下,Rubygems会将lib目录添加到加载路径,但您可以使用$:变量将所需的任何目录推送到该目录.即
$:.push File.expand_path(File.dirname(__FILE__) + '/../surfcompstuff')
Run Code Online (Sandbox Code Playgroud)
这意味着当你说,surfer.rb
在那个目录中,你可以require "surfer"
在任何地方找到文件.
此外,作为惯例,类和单例获取文件,模块获取目录.例如,如果你有LolCatz
模块和LolCatz::Moar
类看起来像:
lib/
appname.rb
lolcatz/
moar.rb
Run Code Online (Sandbox Code Playgroud)
这就是为什么有一个lib/appname文件夹,因为大多数库都在 appname
命名空间中.
另外,如果你尝试运行一个命令newgem --simple [projectname]
,它将为你快速生成一个脚手架,只需要一个Ruby项目的基本要素(以及一个Ruby Gem).我知道还有其他工具可以做到这一点,但是newgem很常见.我通常摆脱TODO文件和所有脚本的东西.
Sam*_*les 10
请参阅http://guides.rubygems.org/what-is-a-gem/中的以下示例
% tree freewill
freewill/
??? bin/
? ??? freewill
??? lib/
? ??? freewill.rb
??? test/
? ??? test_freewill.rb
??? README
??? Rakefile
??? freewill.gemspec
Run Code Online (Sandbox Code Playgroud)
我试图模仿Rails项目结构,因为我的团队(通常处理Rails)将比其他配置更好地理解结构.约定优于配置 - 从Rails中流血.
归档时间: |
|
查看次数: |
38396 次 |
最近记录: |