MissingSourceFile - Como incluir codigo extra en /lib?

¡Buenas! No escribire con acentos por el encodding.

Mi problema surge debido a que no encuentro una explicacion clara a la
forma en la que se deben incluir las clases que no sean partes de la
aplicacion propia de rails (es decir las que no se encuentran en
/app/controllers, views, etc).

Podria incluirlas igualmente en el directorio controllers por ejemplo, o
en helpers, pero me suena a desordenado. Las clases que quiero usar y
llamar desde algun controlador tienen que ver con manejo de conexiones,
comunicacion con repositorios, interpretación de algunos archivos,
manejo de archivos, y otros detalles que quisiera que no se mezclen en
el mismo “paquete” que las que tienen que ver con la presentacion web de
la aplicacion.

Me gustaria saber como ordenarlas en el directorio /lib de la aplicacion
y luego incluirlas en el controlador mediante el uso de “require”.

Desde ya muchas gracias.

Eric Roscher wrote:

¡Buenas! No escribire con acentos por el encodding.

Mi problema surge debido a que no encuentro una explicacion clara a la
forma en la que se deben incluir las clases que no sean partes de la
aplicacion propia de rails (es decir las que no se encuentran en
/app/controllers, views, etc).

Podria incluirlas igualmente en el directorio controllers por ejemplo, o
en helpers, pero me suena a desordenado. Las clases que quiero usar y
llamar desde algun controlador tienen que ver con manejo de conexiones,
comunicacion con repositorios, interpretación de algunos archivos,
manejo de archivos, y otros detalles que quisiera que no se mezclen en
el mismo “paquete” que las que tienen que ver con la presentacion web de
la aplicacion.

Me gustaria saber como ordenarlas en el directorio /lib de la aplicacion
y luego incluirlas en el controlador mediante el uso de “require”.

Desde ya muchas gracias.

Puedes poner tus librerias extras en el directorio lib, una vez que
tengas por ejemplo tus archivos de la siguiente manera:

  • lib
    – connections.rb
    – versioning.rb
    – others.rb

simplemente haces require en tu environment (o un initializer):

require ‘connections’
require ‘versioning’
require ‘extras/others’

también puedes usar load en vez de require, la diferencia es que load
permite incluir los archivos varias veces (por ejemplo para archivos que
puedan cambiar su contenido durante el proceso), y require solo los
incluye una vez.

Ya que has hecho tus require’s, tendras a disposicion todas tus clases y
modulos de dichos archivos en cualquier parte de tu aplicacion.

Edgar J. Suarez wrote:>

  • lib
    – connections.rb
    – versioning.rb
    – others.rb

simplemente haces require en tu environment (o un initializer):

require ‘connections’
require ‘versioning’
require ‘extras/others’

La linea

require ‘extras/others’

esta mal jeje, no se en que estaba pensando (en el proyecto que estaba
haciendo tal vez jeje) :stuck_out_tongue: solo es:

require ‘others’

Yo para ello siempre utilizo …

Dir[“#{RAILS_ROOT}/lib/*.rb”].each { |lib| require lib }

Para incluir las librerias en lib/.

Un saludo,

Francesc

On Jan 8, 2008, at 12:49 AM, Edgar J. Suarez wrote:

ejemplo, o
Me gustaria saber como ordenarlas en el directorio /lib de la
-- versioning.rb
permite incluir los archivos varias veces (por ejemplo para archivos
Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

Solo añadir que si tu libreria

lib/my_project_utils.rb

define una clase o modulo MyProjectUtils entonces no hace falta el
require.

– fxn

Edgar J. Suarez wrote:

Edgar J. Suarez wrote:>

  • lib
    – connections.rb
    – versioning.rb
    – others.rb

simplemente haces require en tu environment (o un initializer):

require ‘connections’
require ‘versioning’
require ‘extras/others’

La linea

require ‘extras/others’

esta mal jeje, no se en que estaba pensando (en el proyecto que estaba
haciendo tal vez jeje) :stuck_out_tongue: solo es:

require ‘others’

Muchas gracias a todos por la ayuda! Era mas simple de lo que pensaba,
solo que no daba pie con bola. Me gusto la idea de Francesc E., y
me gustaria saber como hacer un initializer o hacer los require en el
enviroment. Me puse a revisar enviroment.rb y trate de descomentar y
modificar config.load_paths dentro del bloque de

Rails::Initializer.run do |config|

pero no me anduvo. Lo deje como

config.load_paths += %W(’#{RAILS_ROOT}/mixlib’)

con el objeto de cargar clases en la carpeta mixlib. Gracias nuevamente
por ayudar a un novato!
Donde puedo encontrar conceptualmente la arquitectura de rails?? no me
refiero a lo tipico de patron mvc y eso… sino a como esta armado o que
cosas intervienen en un request hasta que devuelve el resultado al
navegador… (si no es demasiado complejo nomas je) Muchas gracias
nuevamente!!! ya puedo ordenar mejor mi codigo!

En Rails 2.0 hay una carpeta llamada initializers. En los últimos
proyectos en los que he estado trabajando lo que he hecho es cargar
este fichero …

http://dev.intraducibles.net/svn/rails/snippets/app_initializer.rb

Si estas en Rails 1.2.6 lo que puede hacer es crearte tu mismo la
carpeta meter al final de todo de environment.rb. (La misma linea
que te recomendé para cargar los archivos de lib/

Dir[“#{RAILS_ROOT}/config/initializers/*.rb”].each { |lib| require
lib }

Un saludo,

Francesc

On Jan 8, 2008, at 4:15 AM, Eric Roscher wrote:

require ‘versioning’

cosas intervienen en un request hasta que devuelve el resultado al
navegador… (si no es demasiado complejo nomas je) Muchas gracias
nuevamente!!! ya puedo ordenar mejor mi codigo!

Posted via http://www.ruby-forum.com/.


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603