Incluir otros Archivos en Ruby

Debido a que Ruby hace que sea fácil escribir buen código modular, nos encontraremos con pequeños archivos que contienen funcionalidades.

Para incorporar a nuevos programas u otros archivos Ruby tiene dos instrucciones:

  • load ‘nombrearchivo.rb’
  • require ‘nombrearchivo’

Las variables locales de un archivo no se propagan en donde se requieren.

Fichero vehiculo.rb

  gasolina = 2

  def total_ruedas
    return 2
  end

  def que_soy
    return "eres un vehiculo"
  end

Fichero ejemplo.rb

gasolina = 1
total_ruedas = 1
require './vehiculo'

puts "gasolina= #{gasolina}"           # gasolina= 1
puts "total ruedas= #{total_ruedas}"   # total ruedas= 1
puts "que eres= #{que_soy}"            # que eres= eres un vehiculo

 

Los archivos cargados con load o require pueden incluir archivos que a su vez, incluyan otros archivos.

Lo que no puede ser obvio es que require es una sentencia ejecutable (puede estar dentro de una sentencia if o puede incluir una cadena que acaba de ser construida).

5.times do |index|
  
  File.open("ejemplo.rb", "w") do |fichero|
    fichero.puts "module ModuloEjemplo"
    fichero.puts "  def ModuloEjemplo.variable"
    fichero.puts "    #{index}"
    fichero.puts "  end"
    fichero.puts "end"
  end

  load "ejemplo.rb"
  puts ModuloEjemplo.variable
  
end


#RESULTADO:
# 0
# 1
# 2
# 3
# 4