当前位置:  开发笔记 > 后端 > 正文

纯Ruby项目的目录布局

如何解决《纯Ruby项目的目录布局》经验,为你挑选了3个好方法。

我开始学习红宝石了.我也是一个日常的C++开发人员.对于C++项目,我通常使用以下dir结构

/
 -/bin <- built binaries
 -/build <- build time temporary object (eg. .obj, cmake intermediates)
 -/doc <- manuals and/or Doxygen docs
 -/src
 --/module-1
 --/module-2
 -- non module specific sources, like main.cpp
 - IDE project files (.sln), etc.

Ruby(非Rails,非Merb)的dir布局会建议保持干净,简单和可维护吗?



1> troutwine..:

截至2011年,通常使用珠宝商代替newgem,因为后者被有效放弃.


或者是Bundler.给你"捆绑宝石gemname"来创建一个新的宝石.

2> François Bea..:

Bundler包含生成gem的必要基础结构:

$ bundle gem --coc --mit --test=minitest --exe spider
Creating gem 'spider'...
MIT License enabled in config
Code of conduct enabled in config
      create  spider/Gemfile
      create  spider/lib/spider.rb
      create  spider/lib/spider/version.rb
      create  spider/spider.gemspec
      create  spider/Rakefile
      create  spider/README.md
      create  spider/bin/console
      create  spider/bin/setup
      create  spider/.gitignore
      create  spider/.travis.yml
      create  spider/test/test_helper.rb
      create  spider/test/spider_test.rb
      create  spider/LICENSE.txt
      create  spider/CODE_OF_CONDUCT.md
      create  spider/exe/spider
Initializing git repo in /Users/francois/Projects/spider
Gem 'spider' was successfully created. For more information on making a RubyGem visit https://bundler.io/guides/creating_gem.html

然后,在lib /中,根据需要创建模块:

lib/
  spider/
    base.rb
  crawler/
    base.rb
  spider.rb
    require "spider/base"
    require "crawler/base"

请阅读手册页包宝石有关详细信息--coc,--exe--mit选择.



3> trans..:

标准Ruby项目的核心结构基本上是:

  lib/
    foo.rb
    foo/
  share/
    foo/
  test/
    helper.rb
    test_foo.rb
  HISTORY.md (or CHANGELOG.md)
  LICENSE.txt
  README.md
  foo.gemspec

share/是罕见的,有时也被称为data/替代.它用于通用非ruby文件.大多数项目都不需要它,但即使它们多次执行,一切都只是保留lib/,尽管这可能不是最佳实践.

如果使用BDD而不是TDD,则test/可能会调用该目录spec/,但您可能还会看到features/是否使用了Cucumber,或者demo/是否使用了QED.

这些天foo.gemspec可以 - 特别是.gemspec如果不是手动维护.

如果您的项目具有命令行可执行文件,则添加:

  bin/
    foo
  man/
    foo.1
    foo.1.md or foo.1.ronn

此外,大多数Ruby项目都有:

  Gemfile
  Rakefile

Gemfile是使用捆扎机,以及Rakefile对Rake构建工具.但如果您想使用不同的工具,还有其他选择.

其他一些不那么罕见的文件:

  VERSION
  MANIFEST

VERSION文件只包含当前版本号.并且MANIFEST(或Manifest.txt)包含要包含在项目的包文件中的文件列表(例如gem包).

你可能会看到什么,但使用是零星的:

  config/
  doc/ (or docs/)
  script/
  log/
  pkg/
  task/ (or tasks/)
  vendor/
  web/ (or site/)

其中config/包含各种配置文件; doc/包含生成的文档,例如RDoc,或者有时包含手动维护的文档; script/包含供项目使用的shell脚本; log/包含生成的项目日志,例如测试覆盖率报告; pkg/保存生成的包文件,例如foo-1.0.0.gem; task/可以容纳各种任务文件,如foo.rakefoo.watchr; vendor/包含其他项目的副本,例如git子模块; 最后web/包含项目的网站文件.

然后一些工具特定的文件也相对常见:

  .document
  .gitignore
  .yardopts
  .travis.yml

它们相当不言自明.

最后,我将添加我个人添加一个.index文件和一个var/目录来构建该文件(搜索"Rubyworks Indexer"以获取更多相关信息)并且通常有一个work目录,例如:

  work/
    NOTES.md
    consider/
    reference/
    sandbox/

只是用于开发目的的scrapyard.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有