Freeze Rails

Hola, el otro día me recomendo Raul [1] , que congelase Rails en Vendor
y
que “trasteara” en mi App trastear para aprender. Me dijo que una buena
forma de aprender ruby es coger el codigo de rails y debugearlo
(ruby-debug)
Bueno, ya tengo instalado ruby-debug y he creado una App con un par de
modelos project-task que tienen una relacion has_many y task está
anidado en
project…
El caso es que esta funcionando. Ahora quiero congelar la version de
rails
que tengo en el SO en la carpeta vendor de mi App.

Mi duda:
¿Se hace así?
trastear andres$ rake rails:freeze:gems

Freezing to the gems for Rails 2.2.2
rm -rf vendor/rails
mkdir -p vendor/rails
cd vendor/rails
WARNING: Installing to ~/.gem since /usr/local/lib/ruby/gems/1.8 and
/usr/local/bin aren’t both writable.
Unpacked gem:
‘/Users/andres/Documents/SOFTWARE/RAILS/App/2/trastear/vendor/rails/activesupport-2.2.2’
mv activesupport-2.2.2 activesupport
Unpacked gem:
‘/Users/andres/Documents/SOFTWARE/RAILS/App/2/trastear/vendor/rails/activerecord-2.2.2’
mv activerecord-2.2.2 activerecord
Unpacked gem:
‘/Users/andres/Documents/SOFTWARE/RAILS/App/2/trastear/vendor/rails/actionpack-2.2.2’
mv actionpack-2.2.2 actionpack
Unpacked gem:
‘/Users/andres/Documents/SOFTWARE/RAILS/App/2/trastear/vendor/rails/actionmailer-2.2.2’
mv actionmailer-2.2.2 actionmailer
Unpacked gem:
‘/Users/andres/Documents/SOFTWARE/RAILS/App/2/trastear/vendor/rails/activeresource-2.2.2’
mv activeresource-2.2.2 activeresource
Unpacked gem:
‘/Users/andres/Documents/SOFTWARE/RAILS/App/2/trastear/vendor/rails/rails-2.2.2’
cd -

EL WARNING que me sale no lo entiendo. Para qué necesita la tarea RAKE
escribir en /usr/local/bin y /usr/local/lib/ruby/gems/1.8?

El caso es que a pesar del warning, parece que si que me instala rails
en
/vendor. Pero como puedo comprobar que mi App esta tirando de /vendor y
no
del rails del SO?
He leido que tiene preferencia lo que este en /vendor, pero aún así me
gustaría saber si conocéis alguna forma de comprobar cual es la que usa.

Gracias

[1] ¿Rails es multi-hilo o no? - ES - Ruby-Forum

Pero como puedo comprobar que mi App esta tirando de /vendor y no del rails
del SO?
He leido que tiene preferencia lo que este en /vendor, pero aún así me
gustaría saber si conocéis alguna forma de comprobar cual es la que usa.

Si tienes Rails dentro de vendor va a tirar de ahí.
Echale un ojo al archivo config/boot.rb: Verás que hay un método
pick_boot
que se encarga de detectar si tienes rails en vendor y usar ese
rails(VendorBoot) o la gema del sistema(GemBoot). El criterio para
detectarlo es simplemente comprobar si existe el directorio rails dentro
del
directorio vendor.
Si además quieres verlo con tus propios ojos, una manera poco sútil
(pero
placentera :slight_smile: es simplemente desinstalar rails de tu sistema con un
‘sudo
gem uninstall rails’ y comprobar que tu aplicación funciona igual.

Ja!! Lo he hecho. La he desinstalado para verlo. Muchas gracias juanjo,
ahora me quedo tranquilo y se que puedo empezar a trastear con mi rails
de
/vendor

Solo una cosa:
Lo del WARNING. ¿Sabes por qué se ha producido?
Se que dice que es porque no tengo permisos de escritura en
/usr/local/bin y
/usr/local/lib/ruby/gems/1.8 pero…
repito…¿ Para qué necesita la tarea RAKE escribir en /usr/local/bin y
/usr/local/lib/ruby/gems/1.8?Me mosquea un poco…

Gracias
El 24 de enero de 2009 20:54, Juanjo Bazán [email protected] escribió:

Seguramente es el comando unpack de Rubygems, que checkea si puede
desempaquetar el contenido de una gema en el directorio de instalación
habitual de las gemas. Si ejecutas el comando con sudo supongo que se te
eliminará el warning. De todas maneras al hacer el rake freeze desde el
directorio de tu aplicación al final las gemas las desempaqueta al
directorio rails/vendor con lo cual el aviso te da lo mismo.

2009/1/24 Andrés gutiérrez

Seguramente es el comando unpack de Rubygems, que checkea si puede
desempaquetar el contenido de una gema en el directorio de instalación
habitual de las gemas. Si ejecutas el comando con sudo supongo que >>se
te
eliminará el warning. De todas maneras al hacer el rake freeze desde el
directorio de tu aplicación al final las gemas las desempaqueta al
directorio rails/vendor con lo cual el aviso te da lo mismo.

Vale, es lo que me imaginaba. Pero quería estar seguro. Gracias por
resolver
mis dudas

Un saludo
El 24 de enero de 2009 22:30, Juanjo Bazán [email protected] escribió: