Frage

Ich bin nach einem überblick/Klärung der ideale Projekt-Struktur für ein ruby (non-rails/merb/etc) - Projekt.Ich vermute, es folgt

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

Habe ich etwas falsch gemacht?Welche Teile habe ich verpasst?

War es hilfreich?

Lösung

Ich denke, dass ziemlich viel Spot ist auf. Standardmäßig Rubygems das lib-Verzeichnis in das Lastweg, fügen Sie können jedoch ein beliebiges Verzeichnis drücken Sie auf, dass wollen die $ mit: Variable. d.

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

Das bedeutet, dass, wenn Sie zu sagen haben, surfer.rb in diesem Verzeichnis können Sie require "surfer" überall und die Datei gefunden wird.

Auch als Kongress, Klassen und Singletons erhalten eine Datei und Module erhalten Sie ein Verzeichnis. Zum Beispiel hatten, wenn Sie das LolCatz Modul und die LolCatz::Moar Klasse, die aussehen würde:

lib/
  appname.rb
  lolcatz/
    moar.rb

Aus diesem Grund gibt es eine lib / appname Ordner, weil die meisten Bibliotheken im appname Namespace sind.

Außerdem, wenn Sie den Befehl newgem --simple [projectname] Versuchen Sie, die schnell ein Gerüst für Sie mit nur dem Nötigsten für ein Ruby-Projekt (und durch die Erweiterung ein Ruby Gem) erzeugen werden. Es gibt auch andere Werkzeuge, die dies tun, ich weiß, aber newgem ist sehr verbreitet. Ich werde in der Regel von der TODO-Datei zu befreien und alle das Skript Zeug.

Andere Tipps

Siehe das folgende Beispiel von http://guides.rubygems.org/what- is-a-Juwel /

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

ich versuche, die Rails Projektstruktur zu imitieren, weil mein Team, das in der Regel mit Rails befaßt, wird die Struktur besser als eine andere Konfiguration verstehen. Konvention über Konfiguration -. Blutungen über von Rails

Wenn Sie bundler verwenden, dieser Befehl ausgeführt wird bundle gem app_name wird geben Sie die gleiche Verzeichnisstruktur.

Wenn Sie verwenden möchten rspec anstelle von unit-tests können Sie dann diesen Befehl ausführen rspec --init (Nur stellen Sie sicher, dass Sie cd app_name erste)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top