130

ruby (非レール/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

何か間違っていますか?どの部分を見逃しましたか?

4

4 に答える 4

93

私はそれがかなりスポットだと思います。デフォルトでは、Rubygemsはlibディレクトリをロードパスに追加しますが、$:変数を使用して任意のディレクトリをそのディレクトリにプッシュできます。すなわち

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

つまりsurfer.rb、そのディレクトリでは、require "surfer"どこにでも移動でき、ファイルが見つかります。

また、慣例として、クラスとシングルトンはファイルを取得し、モジュールはディレクトリを取得します。たとえば、次のようなLolCatzモジュールとLolCatz::Moarクラスがある場合:

lib/
  appname.rb
  lolcatz/
    moar.rb

appnameほとんどのライブラリは名前空間にあるため、lib/appnameフォルダーがあるのはそのためです。

newgem --simple [projectname]さらに、 Rubyプロジェクト(さらにはRuby Gem)に必要なものだけを備えたスキャフォールドをすばやく生成するコマンドを実行しようとすると、これを行うツールは他にもありますが、newgemはかなり一般的です。私は通常、TODOファイルとすべてのスクリプトを取り除きます。

于 2009-03-05T11:20:58.690 に答える
6

通常Railsを扱う私のチームは、他の構成よりも構造をよく理解しているため、Railsプロジェクトの構造を模倣しようとします。設定より規約 - Rails からの出血。

于 2009-03-06T05:32:55.897 に答える