Forum: Rails-ES Cargando clases en orden

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
A1247f73598357f06388e863c41aa624?d=identicon&s=25 Elias Orozco (elioncho)
on 2009-04-03 22:56
Hola,

Tengo un directorio que contiene diversas clases. Estas clases tienen
ciertas dependencias entre ellas. Por ejemplo una clase puede extender
de otra. Estoy tratando de cargarlas con "require" dinamicamente pero
estoy obteniendo:

uninitialized constant <nombre de la clase>

Esto sucede porque estoy tratando de require una clase que extiende de
otra que no he require todavia. Alguien sabe como puede cargarlas
dinamicamente y manejar esas dependencias? (mas o menos como hace rails
al cargar las clases)

Gracias,

Elías
Bfc10c0ca5d53debe12fa2b7b66a434f?d=identicon&s=25 Miguel Fernández (miguelff)
on 2009-04-04 16:25
(Received via mailing list)
Estimado Elias,

Una cosa que puedes hacer es redefinir el hook const_missing en la clase
module ya que cuando se encuentra una referencia a un simbolo que no
est'e
definido 'este se invoca. Salvando las distancias rails aplica una
convencion de manera que cuando se encuentra un simbolo no definido y se
invoca al hook const-missing, su implementacion hace una carga del
modulo
homonimo al simblo no definido (sustituyendo camel cases por underscores
y
andiamientos ( :: ) por separadores de ruta ( / ).
Es una explicacion un poco rapida. Pero si quieres mas detalles
obtendras
pistas googleando los siguientes t'erminos: ruby metaprogramming
const_missing

Espero que te sirva de algo.

Un saludo,

Miguel
http://miguelfernandez.info
(Desde el m'ovil)

On Apr 3, 2009 10:56 PM, "Elias Orozco"
<ruby-forum-incoming@andreas-s.net>
wrote:

Hola,

Tengo un directorio que contiene diversas clases. Estas clases tienen
ciertas dependencias entre ellas. Por ejemplo una clase puede extender
de otra. Estoy tratando de cargarlas con "require" dinamicamente pero
estoy obteniendo:

uninitialized constant <nombre de la clase>

Esto sucede porque estoy tratando de require una clase que extiende de
otra que no he require todavia. Alguien sabe como puede cargarlas
dinamicamente y manejar esas dependencias? (mas o menos como hace rails
al cargar las clases)

Gracias,

Elías
--
Posted via http://www.ruby-forum.com/.
7223c62b7310e164eb79c740188abbda?d=identicon&s=25 Xavier Noria (fxn)
on 2009-04-04 19:22
(Received via mailing list)
2009/4/3 Elias Orozco <ruby-forum-incoming@andreas-s.net>:

> al cargar las clases)
Si uno esta fuera de Rails la aproximacion es distinta. Si a.rb
necesita tener B definido, pues hace un require

   require 'b'

   class A < B
     ...
   end

Esa es la manera de trabajar en Ruby. Y ya hagas un preloading o no,
eso es lo que resuelve las dependencias.
This topic is locked and can not be replied to.