Wie führe ich eine .rb-Datei von IRB aus?

88

Ich beginne mit Ruby on Rails. Ich mache gerade ein Tutorial durch, in dem es heißt, dass ich eine .rb-Datei von IRB ausführen muss und dass dadurch eine .xml-Datei in meinem aktuellen Verzeichnis erstellt wird.

Meine Frage ist, wie ich eine .rb-Datei in IRB ausführen kann.
Und muss ich mich in dem Verzeichnis befinden, in dem sich diese .rb-Datei befindet, wenn ich sie in IRB ausführe?

Ich habe Folgendes versucht: Geben Sie einfach irbin die Befehlszeile im Verzeichnis der Datei ein. Damit beginnt meines Wissens eine IRB-Sitzung.
Dann habe ich getippt, irb "filename.rb"was durchgegangen ist, aber nichts im aktuellen Verzeichnis erstellt hat, aber zumindest hat es keine Fehler gegeben.

Ich habe auch eine ganze Reihe anderer Dinge ausprobiert, die mir einfach Fehler gemacht haben. Ich glaube also nicht, dass ich das selbst lösen kann, und das Googeln hat überhaupt nicht geholfen.

Ich leite Leopard.

Katrina
quelle

Antworten:

175

Sie können eine Datei in irb "ausführen", indem Sie sie nur benötigen oder laden.

$ irb
>> load './filename.rb'

Um Ihr aktuelles Arbeitsverzeichnis in irb zu ändern, können Sie FileUtils verwenden :

>> require 'fileutils'
>> FileUtils.pwd # prints working directory
>> FileUtils.cd '/path/to/somewhere' # changes the directory
J L
quelle
3
Um es von irb zu fordern, müssen Sie den vollständig qualifizierten Pfad angeben, also: require '~/myrubystuff/coolstuff.rb' statt nur require 'coolstuff'
runlevel0
Ich konnte nur fileutilsmit Namen verlangen , kein Verzeichnispfad erforderlich. Ich bin sicher, dass es von der Umgebung abhängt und nicht jeder den qualifizierten Pfad verwenden muss.
Volx757
5

Wenn Sie möchten, dass Ihre Datei in der irb- Sitzung geladen wird und Sie Ruby 2+ verwenden, können Sie eine Datei wie folgt in irb laden :

irb -r ./the_name_of_your_file.rb

Dies öffnet eine irb-Sitzung mit der angegebenen geladenen Datei.

Stellen Sie sich vor, Sie haben eine Datei mit einer Klasse wie dieser:

class Example
  def initialize(name)
    @name = name
  end

  def print__example
    p name
  end
end

Sie können die Example-Klasse in der irb- Sitzung verwenden.

Gabriel Lidenor
quelle
das war es, wonach ich eigentlich gesucht habe, vielen Dank!
Thomas
Dies ermöglicht nur den Zugriff auf Funktionen, nicht auf in der Datei definierte Variablen.
Radon Rosborough
1

Wir können einfach eine .rb-Datei in dem Verzeichnis erstellen, in dem Sie gerade arbeiten, und einen beliebigen Texteditor verwenden. Geben Sie den gesamten Code ein und verwenden Sie dann den Befehl ruby filename.rbim Terminal, nicht im irb. Dann wird die Ausgabe in irb angezeigt.

Sreenivas
quelle
4
Durch Laden der Datei können Sie jedoch auf die dort definierten Variablen zugreifen. Praktisch bei der Fehlerbehebung oder beim Spielen mit einer Bibliothek.
Sonia Hamilton
@ Greenivas Das war genau das, wonach ich gesucht habe. Vielen Dank!
Joshua Pinter