¿Cómo ejecutar un archivo .rb desde IRB?

88

Estoy comenzando con Ruby on Rails. Actualmente estoy pasando por un tutorial donde dice que tengo que ejecutar un archivo .rb desde IRB y que eso creará un archivo .xml en mi directorio actual.

Mi pregunta es ¿cómo ejecuto un archivo .rb en IRB?
¿Y tengo que estar en el directorio donde vive este archivo .rb cuando lo ejecuto en IRB?

Intenté lo siguiente: simplemente escribiendo irben la línea de comando en el directorio del archivo. Eso inicia una sesión de IRB por lo que tengo entendido.
Luego escribí irb "filename.rb"cuál pasó pero no creó nada en el directorio actual, pero al menos no dio ningún error.

También probé un montón de otras cosas que simplemente me dieron errores. Así que no creo que pueda resolver esto yo mismo y buscar en Google no ayudó en absoluto.

Estoy ejecutando Leopard.

Katrina
fuente

Respuestas:

175

Puede "ejecutar" un archivo en irb simplemente solicitándolo o cargándolo.

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

Para cambiar su directorio de trabajo actual dentro de irb, puede usar FileUtils :

>> require 'fileutils'
>> FileUtils.pwd # prints working directory
>> FileUtils.cd '/path/to/somewhere' # changes the directory
J -_- L
fuente
3
para solicitarlo de irb, debe proporcionar la ruta completamente calificada, por lo tanto: en require '~/myrubystuff/coolstuff.rb' lugar de solo require 'coolstuff'
runlevel0
Pude solicitar fileutilssolo por nombre, no se necesita ruta de directorio. Estoy seguro de que depende del entorno y no todos necesitarán usar la ruta calificada.
volx757
5

En caso de que desee cargar su archivo en la sesión de irb y esté utilizando Ruby 2+, puede cargar un archivo en irb como este:

irb -r ./the_name_of_your_file.rb

Esto abre una sesión de irb con el archivo dado cargado.

Imagina que tienes un archivo con una clase como esta:

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

  def print__example
    p name
  end
end

Podrá utilizar la clase Example en la sesión de irb .

Gabriel Lidenor
fuente
eso era lo que estaba buscando, ¡muchas gracias!
thomas
Esto da acceso solo a funciones, no a variables definidas en el archivo.
Radon Rosborough
2

Podemos simplemente crear un archivo .rb en el directorio en el que está trabajando actualmente usando cualquier editor de texto y escribir todo el código en ese y luego usar el comando ruby filename.rben la terminal, no en el irb, luego muestra la salida en irb.

Sreenivas
fuente
4
Pero al cargar el archivo puede acceder a las variables definidas allí. Útil para solucionar problemas o jugar con una biblioteca.
Sonia Hamilton
@Sreenivas Esto era justo lo que estaba buscando. ¡Gracias!
Joshua Pinter