2012-04-28 10 views
7

Ich brauche etwas Einblick in die Konstruktion von Ruby-Programmen. Ich versuche Ruby (unabhängig von Rails) zu schreiben, also übersetze ich einige Perl-Skripte, die ich in einem Bioinformatik-Projekt geschrieben habe, in Ruby-Code. Grundsätzlich Klassen erstellen, wo nützlich und was nicht.Struktur von Ruby-Programmen

Mein Problem ist, wie kann ich es ausführen? Die Perl-Skripte sind nur lange Blöcke von Befehlen hintereinander. Was ist in Ruby angemessen? Sollte ich meine Klassen in ihren eigenen .rb-Dateien definieren und diese und ihre Methoden in einer separaten rb-Datei aufrufen, die sie zur Ausführung meines Programms benutzt?

Was wird normalerweise getan? Jedes Beispiel würde sehr geschätzt werden. Ich würde auch alle Tipps im Allgemeinen schätzen, wie man so etwas lernt.

+0

"Sollte ich meine Klassen in ihren eigenen .rb-Dateien definieren und diese und ihre Methoden in einer separaten rb-Datei aufrufen, die sie dazu benutzt, mein Programm auszuführen?" Das ist so ziemlich alles. Sie haben ein Skript, das Sie ausführen, um das Programm zu starten, und dieses Skript benötigt die Dateien, die benötigt werden, und geht von dort. – x1a4

Antwort

6

Ruby hat, was man normalerweise die Top-Level-Ausführungsumgebung nennt, und so wird eine lange Reihe von Befehlen sofort wie Perl ausgeführt. Oder Sie können Klassen und Module definieren und alle OOP auf Ihr Problem anwenden, wenn Sie möchten, oder Sie können die Ansätze mischen.

Sie benötigen mindestens eine Zeile auf der obersten oder obersten Ebene einer Klasse, um alles zu starten. Also:

p :hello 

oder

class A 
    p :hello 
end 

oder

class A 
    def run 
    p :hello 
    end 
end 
A.new.run 

oder, mein Favorit:

class A 
    def run 
    p :hello 
    end 
    self 
end.new.run 
3

ich sehr auf einige Ihrer anderen Lieblingsedelsteine ​​suchen würde empfehlen, um zu sehen, wie ihr Code strukturiert ist (wie auf Github). So habe ich meinen Anfang gefunden. Denken Sie an Ihr Projekt als ein "Juwel", freigegeben oder nicht, ist ein guter Weg, um Ihre Meinung um das Problem zu wickeln.