Publicidad:
Logo de La Coctelera

Dummy On Rails

O lo que es lo mismo un DOR escribiendo para aprender...

Categoría: Conceptos

Es un problema típico: en tu máquina tienes en acceso a Ruby en una ubicación, por ejemplo en "/usr/local/bin/ruby" y en tu entorno de desarrollo en "/usr/local/bin/ruby".

Esta información es necesaria en la primera línea de los scripts o shebang, que es aquella que llamará a los ejecutables de Ruby.

¿Qué significa esto? Que para ejecutar scripts en Ruby deberías cambiar la primera línea de tus scripts para acomodarlo al entorno en el que vaya a funcionar la aplicación.

Solución

Mediante el parámetro "--ruby /ruta/a/ruby" puedes generar las aplicaciones con el shebang que introduzcas en el parámetro. En este caso, tras averiguar la ruta hacia Ruby el servidor de producción:

puedes predeterminar el shebang de una aplicación para que cuadre con la ruta en producción, mediante el parámetro --ruby

El shebang resultante sería:

Si el enlace a tu máquina de desarrollo no tiene acceso a Ruby en esa ubicación, puedes, mediante un enlace simbólico (symlink) crear un vínculo entre las rutas de tu entorno de desarrollo y la que has definido para producción en el paso anterior. De esta manera, la aplicación funcionaría en ambos entornos sin tener que tocar el shebang.

 # Enlazar la ubicación de Ruby en desarrollo con un symlink
 local$ sudo ln -s /opt/local/bin/ruby /usr/local/bin/ruby 
 local$ sudo ln -s /opt/local/bin/ruby /usr/bin/ruby 
 

Fuente: Deploying Rails Applications. A step by step guide. Ezra Zygmuntowicz

  • sin comentarios compártelo favorito
  • Archivado en: Empezando Conceptos Proceso Problemas típicos
  • Si quieres comenzar o continuar con tu proceso de autoaprendizaje sobre programación con Ruby On Rails estás de suerte: la Comunidad Rails genera los mejores contenidos didacticos para aprender a programar. 


    Imprescindibles:

    Peepcode: es de pago. Por el precio de una comida -9$-, tienes un videocast con su documentación y código. Peepcode es imprescindible para aprender sobre tópicos avanzados.

    Railscasts: Más de 80 videocasts introductorios sobre todos los temas que puedes necesitar para programar una aplicación con Ruby On Rails.

    RubyPlus: de reciente lanzamiento y también gratuito. Su diferencia: no sólo se dedica a Rails, sino que comienza con videocasts de Ruby, algo que ayuda a comprender mejor cómo funciona todo este tinglado.

    A disfrutar...





  • sin comentarios compártelo favorito
  • Archivado en: Empezando Conceptos Herramientas Tutoriales Video Tags: , , , ,
  • Sobre Plugins

    Los Plugins son librerías independientes hechas especialmente para Rails. Son una buena manera de reutilizar el código de otras personas o empaquetar tu propio código para ser reutilizado posteriormente. (Geoffrey Grosenbach )

    The Complete Guide to Rails Plugins: Part I

    The Complete Guide to Rails Plugins: Part II

    Plugins Howto

    Making a Plugin (video)

  • sin comentarios compártelo favorito
  • Archivado en: Conceptos
  • Rake es el equivalente a make para Ruby. Sirve para crear y automatizar tareas de mantenimiento. Estos son algunos de los comandos más útiles:

    rake: sin parámetros reconstruye la base de datos de testing utilizando las migraciones y ejecuta todos los tests en el directorio test.

    rake db:migrate: actualiza la base de datos. Con el parámetro VERSION=X, después del comando, la actualiza a la versión especificada, por ejemplo, rake db:migrate VERSION=3.

    rake db:test:clone: copia la base de datos de desarrollo en la de testing para ejecutar los tests.

    rake stats: muestra las estadísticas de nuestra aplicación.

     +----------------------+-------+-------+---------+---------+-----+-------+
     | Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
     +----------------------+-------+-------+---------+---------+-----+-------+
     | Controllers          |     7 |     3 |       1 |       0 |   0 |     0 |
     | Helpers              |     3 |     2 |       0 |       0 |   0 |     0 |
     | Models               |    44 |    27 |       4 |       1 |   0 |    25 |
     | Libraries            |     0 |     0 |       0 |       0 |   0 |     0 |
     | Components           |     0 |     0 |       0 |       0 |   0 |     0 |
     | Integration tests    |     0 |     0 |       0 |       0 |   0 |     0 |
     | Functional tests     |     0 |     0 |       0 |       0 |   0 |     0 |
     | Unit tests           |    82 |    63 |       4 |       6 |   1 |     8 |
     +----------------------+-------+-------+---------+---------+-----+-------+
     | Total                |   136 |    95 |       9 |       7 |   0 |    11 |
     +----------------------+-------+-------+---------+---------+-----+-------+
       Code LOC: 32     Test LOC: 63     Code to Test Ratio: 1:2.0
     

    rake doc:app: genera la documentación del proyecto basándose en RDoc (Lectura recomendada: Introducing RDoc ).

    rake db:sessions:create: crea una tabla para almacenar sesiones de usuario mediate cookies. Útil para sistemas con autenticación.

    rake db:sessions:clear: Cada sesión de usuario crea una nueva fila en la tabla de sesiones, por lo que es importante realizar limpiezas periódicas. Este comando vacía la tabla de sesiones.

    rake log:clear: limpia los archivos de log de la aplicación. Conviene ejecutarlo periódicamente para evitar que los archivos ocupen demasiado espacio.

    rake rails:freeze:gems: importante si queremos mantener nuestra aplicación "congelada", es decir, utilizar la versión de Rails que tenemos instalada actualmente en el sistema de manera que una actualización inesperada incompatible no rompa nuestro trabajo.

    rake rails:unfreeze: descongela la aplicación abriéndola a actualizaciones.

    rake rails:freeze:edge: para valientes. Copia el último código disponible del repositorio subversion de Rails -posiblemente inestable- y lo almacena en el directorio vendor/rails de la aplicación.

    Fuentes: Ruby On Rails, Beginning Ruby On Rails for eCommerce Appress, 2006, Martin Fowler

  • sin comentarios compártelo favorito
  • Archivado en: Conceptos Proceso Testing Herramientas Tutoriales Tags: , , , , , , ,
  • Sigo dándole vueltas al TDD. Probando y cacharreando con herramientas que me permitan incorporar de manera más natural esta sana rutina.

    Ahora me toca con ZenTest y Autotest, como he leido en este antiguo post de Geoffrey Grosenbach.

    La idea es que el proceso de testing se acelera, si al menos es por dejar de mirar al navegador, ya estamos ganando algo. :-)

  • 4 comentarios compártelo favorito
  • Archivado en: Conceptos Proceso Testing Herramientas Tags: , , , , , ,
  • Un proyecto que empieza bajo unos requerimientos y alcance suele evolucionar: las cabezas piensan, las necesidades cambian y el mercado exige agilidad y adaptación. El desarrollo en cascada está bien... si eres vidente. Sino, más te vale o ser un férreo controlador de proyectos o tener capacidad de adaptación a requerimientos cambiantes.

    Si no tienes videntes en tu equipo, échale un vistazo a este video de 28 minutos en el que Gregg Pollack te dejará claro porqué Rails es ideal para proyectos web.

    Fuente Rails Envy

  • sin comentarios compártelo favorito
  • Archivado en: Empezando Conceptos Proceso Tutoriales Tags: , , , , , , ,
  • "Parsear". Bonita palabra. Úsala con soltura y serás aceptado en la comunidad de desarrolladores web. :-)

    Si le pegas al asunto de los microformatos , seguro que te vendrá bien mofo, un plugin para Rails de "parseo" de microformatos basada en Hpricot , el parseador de HTML desarrollado en Ruby por ese enigmático personaje: Why The Lucky Stiff.

    Más sobre mofo y microformatos

  • sin comentarios compártelo favorito
  • Archivado en: Conceptos Herramientas Tags: , , , , , , , , ,
  • Convenciones

    Tengo una teoría: todo profesional del código -sea frontend, backend-, con la suficiente dosis de presión, ñapeará su código, independientemente del punto de partida rompiendo las convenciones.

    De Rails me resulta fascinante la idea de que, en un framework con cierta complejidad, se hayan creado convenciones coherentes. Si ya hay problemas, desacuerdos y cierto caos cuando estás creando una plantilla sencilla de HTML o una CSS, imagínate la tendencia al caos que puede tener desarrollar un framework por "muy bello" que pueda resultar Ruby .

    De hecho... así son las cosas: tienes un framework limpito y ordenado como punto de partida sobre el que vas desarrollando, y poco a poco te das cuenta de que pierdes el criterio a la hora de nombrar métodos, componentes, etc.

    Ese es el poder de las convenciones: tener las cosas claras y empezar en pequeñito, o sino, échale un vistazo a los microformatos. (Si te suenan pero no sabes lo que son lee aquí: Microformatos. La Web Semántica para Torpes )

    Cambios en Rails 2.0

    Nada dura para siempre, y la versión de Rails 2.0 va a eliminar antiguas maneras de trabajar para crear convenciones más coherentes con lo desarrollado hasta ahora.

    Así, trabajando en la consola van apareciendo los famosos "DEPRECATION WARNING", o avisos de código que no será soportado en el futuro como es el caso de la etiqueta del helper end_form_tag: DEPRECATION WARNING: end_form_tag is deprecated and will be removed from Rails 2.0 See http://www.rubyonrails.org/deprecation for details.

    No es el único cambio. Hazles caso y échale un vistazo a Rails 2.0 Deprecation.

  • sin comentarios compártelo favorito
  • Archivado en: Conceptos Problemas típicos Tags: , , , ,
  • Sobre Dummy On Rails

    Como Sísifo, héroe absurdo, fui condenado la ceguera y a empujar una gran roca hasta la cima de la montaña. Una vez arriba, un segundo de felicidad para sentir como la piedra se despeña. Y así una y otra vez. Para siempre...

    Categorías