Hola a todos, hoy os voy a contar cuales son mis gemas preferidas para un proyecto nuevo.

 

Podemos dividirlas en gemas globales y para desarrollo. Se que hay muchos más grupos, por ejemplo para contenido estático, para producción, test... pero vamos a simplificar.

 

GLOBALES

Unicorn

https://github.com/samuelkadolph/unicorn-rails

Esta gema deja por defecto el servidor de rails en Unicorn. WEBrick que es el que trae por defecto es peor que este servidor. Es muy fácil de usar y más aun de instalar.

 

Devise

https://github.com/plataformatec/devise

Esta gema es vital para cualquier aplicación porque otorga capacidad de login a nuestro proyecto. Tiene todo lo que necesitas: autenticar, reestablecer contraseñas, vistas para todo, … un básico. Sigue las instrucciones de su web para instalarla y no tendrás más problemas para usarla. Esta muy bien explicada.

 

Cancan

https://github.com/ryanb/cancan

https://github.com/CanCanCommunity/cancancan

 Con esta gema tendremos seguridad en la web. ¿Nunca te has preguntado?:

  1. ¿Y si ahora mi usuario normal quiere pasar al menú de administrador porque alguien le ha soplado la ruta web?

  2. Yo solo quiero que el propietario de la entrada borre su entrada, no cualquier entrada del blog,

 Esta gema es la solución. Hay muchos manuales para aprender a usarla, aquí os dejo uno: http://railscasts.com/episodes/192-authorization-with-cancan

 

Tinymce

https://github.com/spohlenz/tinymce-rails

Que bonitas son esas tiras llenas de juguetitos que hay arriba de donde se escribe en un cuadro de texto. Estos iconitos nos permiten poner negritas, listas con puntitos, párrafos, colorines, … incluso imagenes o videos. Es como un mini Office para nuestro proyecto. Esta gema proporciona todas esas cosas de manera bastante sencilla.

 

Will paginate

https://github.com/mislav/will_paginate

Fue la primera gema que use, vale para paginar una web. Son los numeritos que hacen pasar página abajo de un blog para pasar a las siguientes X entradas. Es un básico para la acción index de cualquier controlador. Instalar y funcionar, casi tan fácil como la gema para Unicorn.

 

Friendly id

https://github.com/norman/friendly_id

Seguro que quieres que tu proyecto se lleve bien con Google, Bing, Yahoo o tus compañeros y amigos. No es lo mismo www.miweb/blog/show/654 que www.miweb/blog/show/mi-super-entrada

Esta gema sirve para humanizar el nombre url de las rutas de tu proyecto. La verdad es que merece la pena usarla, no cuesta demasiado (esta muy bien explicada) y todo gana un aspecto más natural.

 

Humanizer

https://github.com/kiskolabs/humanizer

Bip bip..

  1. ¿Este comentario lo esta haciendo un robot o eres una persona de verdad?

  2. Hola, identifícate pero espera, ¿eres una máquina intentando probar contraseñas en mi formulario de login o eres una persona que se ha equivocado metiendo una vez la contraseña?

Esta es la solución, un captcha facilito para que un humano sin mucho esfuerzo se identifique, además de como usuario, como persona y no como máquina.

 

Therubyracer

https://github.com/cowboyd/therubyracer

Estoy seguro que no quieres problemas con JavaScript; librerias que no compilan, complementos que no inicializan y tu proyecto Rails que sigue sin arrancar. Instala esta gema y asunto resuelto, menos problemas.

 

Twitter Bootstrap

https://github.com/seyhunak/twitter-bootstrap-rails

Seguramente querrás un aspecto bonito para tu web, con varias columnas, botones grandotes, formularios sin descuadrar, una barra de navegación arriba con muchos enlaces a tus productos, incluso un rotador arriba con las últimas noticias de tu web con dibujos y todo. Necesitas ayuda para las vistas. Este framework te ayudara con esto, aquí tienes la web del proyecto para que aprendas a usarlo: http://getbootstrap.com/

 

Contenido estático para tu web

Pues ahora necesito que mis usuarios tengan una imagen de perfil, compartir archivos pdf o mandar albaranes de pedidos a mis trabajadores que andan de viaje en sus furgonetas. Esto es contenido estático para tu web y hay que meterlo en algún sitio. Lo más fácil es alojarlo en el espacio donde tienes alojado tu proyecto web, en alguna carpeta dentro del proyecto o... seria más interesante hacerlo en un servicio externo como Amazon o Mega.

Aquí os dejo unas gemas que pueden conseguir cualquiera de estas cosas:

https://github.com/thoughtbot/paperclip

https://github.com/topac/rmega

 

DESARROLLO

 

Jazz hands

https://github.com/nixme/jazz_hands

Esta gema nos permite algo muy importante en la consola de rails, entender que contiene un objeto, sobre todo en el caso de una consulta a base de datos. Lo normal es ver en una linea una retaila de caracteres que a duras penas puedes entender porque esta todo apelotonado. Con esta gema veras la consola con colores, tabulada en las consultas a base de datos y con un aspecto más natural que te dejara ver de un vistazo si vas bien con el proyecto o algo se te esta escapando.

 

Better errors

https://github.com/charliesome/better_errors

Esta parte esta mejorada en Rails 4, de todas maneras deberías probarla. Cuando llamas a tu aplicación y esta devuelve un “bonito error”, seria interesante ver claramente que, donde y como esta fallando. Esta gema te proporciona información clara sobre que esta ocurriendo y porque está rompiendo el programa.

 

Xray rails

https://github.com/brentd/xray-rails

Las vistas a veces se convierten en terreno hostil donde no sabes que vista parcial esta cargando y a que archivo se refiere. Sería interesante ver en la vista que archivo esta cargando, que trozo de la vista corresponde a que cosa. Esta gema te proporcionara super poderes láser para descubrirlos.

 

Sextant

https://github.com/schneems/sextant

- Hola marinero, ¿donde vamos ahora?

- Pues donde nos deje ir “rake routes”

Si sigues sin ver donde ir, estas como yo... demasiadas letras apelotonadas en consola. Simplifiquemos con una bonita vista web de las rutas que ahora mismo tiene nuestra aplicación con esta gema, mira tu carta de navegación en http://localhost:3000/rails/routes

 

Letter Opener

https://github.com/ryanb/letter_opener

En determinado momento del proyecto probablemente tendrás que enviar emails a los usuarios porque se han registrado o porque les notificas que tienen un mensaje nuevo o cualquier asunto por el estilo. Probablemente estés usando una dirección de emails de prueba y andes comprobando a cada rato que los correos llegan y llegan como deben. Con esta gema eso se ha terminado, te previsualiza los correos que manda tu aplicación en la vista web, no puede ser mas cómodo ahora seguir con el desarrollo del sistema de emails.

 

Faker

https://github.com/stympy/faker

Bueno pues parece que mi aplicación esta funcionando bien pero no tengo ni un usuario, ni datos con los que probar. Esta gema te proporcionara datos de mentira para llenar la base de datos de tantas cosas como necesites. Muy útil para test o para ir probando que todo esta yendo bien.

 

Rspec

https://github.com/rspec/rspec-rails

Como leí hace poco: “los test son por tu bien, no para fastidiarte la existencia”. Unos test a tiempo pueden prevenirte de que la estas liando con esa nueva funcionalidad que estas haciendo. Lo se, hay que programarlos y aprender a hacerlos... así que si hay que ponerse, mejor hacerlo bien. Los test Rspec son muy potentes y no demasiado difíciles de implementar. Anímate con ellos, hay muchos ejemplos en internet y en Español :)

 

 

Estas son mis gemas preferidas, hay alguna más interesante que me dejo en el tintero para futuras entradas pero con estas es difícil que un proyecto no llegue a buen puerto.

Animaos a probarlas, sobre todo las de la parte de desarrollo, seguro que os harán el trabajo más sencillo y con menos quebraderos de cabeza.

 

Un saludo a todos :)

 

Volver