Los módulos tienen un doble propósito como soporte para funciones y como espacio de nombres. Mantener clases en módulos es perfectamente aceptable. Para poner una clase en un archivo separado, simplemente defina la clase como de costumbre y luego en el archivo donde desea usar la clase, simplemente ponga require 'name_of_file_with_class'
en la parte superior. Por ejemplo, si definí la clase Foo
en foo.rb
, en bar.rb
tendría la línea require 'foo'
.
Si está utilizando rieles, esto sucede a menudo incluyen automagicamente
Editar: clarificación de la estructura del archivo
#file: foo.rb
class Foo
def initialize
puts "foo"
end
end
...
#file: bar.rb
require 'foo'
Foo.new
Si se encuentra en los carriles, puso éstos las clases en lib/
y usan la convención de nomenclatura para los archivos de la versión de subrayado en minúsculas del nombre de la clase, por ejemplo Foo
->foo.rb
, FooBar
->foo_bar.rb
, etc.
A partir de la versión 1.9 de rubí puede utilizar require_relative
, para requerir archivos relativamente al archivo que se está editando.
Esta publicación aclara la expresión require_relative en caso de que tenga problemas con el ejemplo anterior cuando en Ruby> = 1.9.2 [Ruby require_relative example] (http://stackoverflow.com/questions/3672586/what-is -require-relative-in-ruby) – Dirk