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
