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