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.rbsi está en el mismo directorio.
Esto requiere automáticamente el archivo y le permite trabajar con él inmediatamente.
rake irby 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 irbcon la siguiente línea de comando:
irb -I . -r foo.rb
¿Dónde foo.rbestá el archivo que quiero cargar desde mi directorio actual? La -Iopció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 requirearchivos del directorio actual, que es lo -rque irblogra la opción .
La pieza clave que no fue obvia para mí cuando tuve este problema es la -Iopción. Una vez que haga eso, puede llamar require 'foo.rb'desde dentro irbpara cualquier archivo en el directorio actual. Y, por supuesto, puede especificar cualquier directorio que desee, no solo .con la -Iopció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, bary bazal camino de carga de rubí.
La última alternativa es usar la ruta relativa o absoluta al archivo cuando se usa requireo -rpara 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"
.rbes opcional, puede escribir require './ruby_file'. I checked in ruby 1.9.3p551`
Dos caminos:
source("filename.rb")
require("filename.rb")
requirelo que no parece recargar el script (cualquier modificación a la fuente original no se refleja en su sesión), mientras que sourceparece 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 requireo loadpara incluir el archivo.
requireno requiere que agregue el sufijo del archivo cuando intente encontrarlo y solo incluirá el archivo una vez. requiredebe usarse en lugar de la loadmayor 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.