Publicidad:
Logo de La Coctelera

Dummy On Rails

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

Categoría: Proceso

Al crear una aplicación con Rails 2.0.2, te encontrarás que, por defecto, la base de datos es SQLite3. ¿Razón? Sencillez, según el equipo responsable de Rails.

Si estás acostumbrado a trabajar con MySQL, mediante el parámetro "-d mysql", puedes saltarte la versión por defecto tomar como base de datos MySQL.

 rails mi-aplicacion -d mysql
 

Fuente: Rails 2.0.2: Some new defaults and a few fixes

  • sin comentarios compártelo favorito
  • Archivado en: Empezando Controladores Proceso MySQL Problemas típicos Tags: , , , , , ,
  • 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
  • El equipo de Jesper Rønn-Jensen, lleva trabajando con Rails como herramienta de prototipado desde hace tiempo para grandes clientes de Capgemini Dinamarca. Jesper es un participante activo en la Comunidad Rails internacional, desarrollando plugins, asistiendo a Conferencias. Ha hecho varias presentaciones explicando los beneficios de Rails para prototipar , como en reboot8.

    El caso es que ya es oficial:
    Capgemini Dinamarca usa Ruby On Rails como herramienta de prototipado y en algunos casos en producción.

    Razones: mayor productividad, menor coste y mejoras notables en la calidad del producto final. Tal y como lo cuentan parece ser la piedra filosofal del software.

    We have had working prototypes up and running in a matter of hours. A specific example was a project we decided to implement in Ruby on Rails. Originally the project was estimated at 400 hours in Microsoft .Net. With Ruby on Rails we could deliver it in 110 hours.
    -- Jesper Rønn-Jensen

  • sin comentarios compártelo favorito
  • Archivado en: Proceso Testing charlas Tags: , , ,
  • Estamos en entorno de desarrollo (Mac Os X)...

    • Has creado tu aplicación mediante el comando Rails (rails miapp --database=mysql). Es importante que especifiques el tipo de base de datos que quieres emplear, ya que en caso contrario, por defecto puede tomar SQLite.
    • Has creado la base de datos de desarrollo: con el comando mysqladmin -u root miapp_development.
    • Has configurado el archivo config/database.yml para conectar con la base de datos de desarrollo.

    Para comprobar que todo funciona correctamente, acude al shell e introduce el comando:

    rake db:migrate

    Si el sistema muestra el siguiente mensaje de error:

    /usr/local/bin/rake:17: undefined method `require_gem' for main:Object (NoMethodError)

    Es porque la versión de rake en nuestro sistema está desactualizada. Para actualizarla, y desde el shell, debemos introducir el siguiente comando.

    sudo gem install --remote rake

    Vuelve a introducir rake db:migrate y el mensaje de error habrá desaparecido.

  • sin comentarios compártelo favorito
  • Archivado en: Proceso MySQL Problemas típicos Tutoriales Tags: , , , , , , , ,
  • 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: , , , , , , ,
  • Va de herramientas.

    Acabo de descubrir Monkey Test.

    Es una gema que puedes instalar en tu máquina y sirve para mostrar el output de tus baterías de tests de forma más ordenada y en color (el clásico rojo/verde).

    Para instalar la gema de Monkey Test, si estás en Mac OS X o en Linux, desde tu consola debes teclear: sudo gem install monkeytest. Selecciona el número de tipo de instalación y ya lo tienes.

    Si ya has escrito tus primeros tests puedes probarla. Para ejecutarla, desde el directorio raíz de tu aplicación y teclea monkeytest. Obtendrás una resultado similar a esta captura: una tabla y el resultado de cada test (PASS, FAIL, ERROR) en color.

    Más visual y atractivo. ¿No?

    Monkey Test

  • sin comentarios compártelo favorito
  • Archivado en: Proceso Testing Herramientas 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