Estoy usando IRB (consola interactiva de ruby) para aprender a programar con Ruby. ¿Cómo cargo un archivo en la consola si primero escribo mis programas en un editor de texto?
Estoy usando IRB (consola interactiva de ruby) para aprender a programar con Ruby. ¿Cómo cargo un archivo en la consola si primero escribo mis programas en un editor de texto?
Respuestas:
Si solo necesita cargar un archivo en IRB, puede invocarlo irb -r ./your_file.rb
si está en el mismo directorio.
Esto requiere automáticamente el archivo y le permite trabajar con él inmediatamente.
rake irb
y lo hace todo por mí.
irb -r /foo/foo.rb
Usando ruby 1.9.3 en Ubuntu 14.04, puedo cargar archivos desde el directorio actual irb
con la siguiente línea de comando:
irb -I . -r foo.rb
¿Dónde foo.rb
está el archivo que quiero cargar desde mi directorio actual? La -I
opción es necesaria para agregar el directorio actual ( .
) a la ruta de carga de ruby, como se explica en la página de manual de ruby. Esto hace posible require
archivos del directorio actual, que es lo -r
que irb
logra la opción .
La pieza clave que no fue obvia para mí cuando tuve este problema es la -I
opción. Una vez que haga eso, puede llamar require 'foo.rb'
desde dentro irb
para cualquier archivo en el directorio actual. Y, por supuesto, puede especificar cualquier directorio que desee, no solo .
con la -I
opción. Para incluir varios directorios en la ruta de carga, sepárelos con dos puntos (:), por ejemplo:
irb -I foo/:bar/:baz/
Este comando agregará los directorios foo
, bar
y baz
al camino de carga de rubí.
La última alternativa es usar la ruta relativa o absoluta al archivo cuando se usa require
o -r
para cargar un archivo:
irb -r ./foo.rb
o desde dentro irb
:
> require './foo.rb'
Escribir irb
Y entonces
require './ruby_file.rb'
Esto supone que ruby_file.rb está en el mismo directorio. Ajustar en consecuencia.
require_relative
. Por ejemplo, require "./lib/foo"
hace lo mismo querequire_relative "lib/foo"
.rb
es opcional, puede escribir require './ruby_file'. I checked in
ruby 1.9.3p551`
Dos caminos:
source("filename.rb")
require("filename.rb")
require
lo que no parece recargar el script (cualquier modificación a la fuente original no se refleja en su sesión), mientras que source
parece reflejar cambios en el script original.
Depende de tu rubí. Ruby 1.8 incluye su ruta actual, mientras que ruby 1.9 no. Evalúe $:
para determinar si su ruta está incluida o no. Entonces, en ruby 1.9 debes usar la ruta completa, que siempre es una apuesta segura.
Entonces puede usar require
o load
para incluir el archivo.
require
no requiere que agregue el sufijo del archivo cuando intente encontrarlo y solo incluirá el archivo una vez. require
debe usarse en lugar de la load
mayor parte del tiempo.
Consulte Agregar un directorio a $ LOAD_PATH (Ruby) si va a utilizar ruby 1.8
Escriba los códigos ruby en el editor de texto.
Guárdelo con la extensión .rb (por ejemplo: demo.rb ).
En Linux, abra su terminal y luego cambie el directorio a la ubicación actual de ese archivo (el comando cd se usa para cambiar el directorio).
Después de eso, escriba irb y su nombre de archivo (no olvide incluir su extensión (.rb)).
En esa imagen, cargué un archivo ruby simple que solo imprime "ruby".
Otra forma de cargar la ruta en irb es simplemente escribir require y luego arrastrar y soltar el archivo en la terminal. Probado usando Linux Mint.