desarrollamos comunidades y redes sociales verticales

Emergia-on-rails2
Emergia-on-rails1
Blog de Emergia On Rails

Construcción try en Rails, para preguntar si algo existe

3
Publicado por jguitar el 21 de Mayo de 2013

En algunas ocasiones acabas haciendo que objetos llamen a propiedades de otros objetos. Por ejemplo:

objeto.otro_objeto.length

Y claro, como otro_objeto sea nil te enfrentas a una excepción. La primera opción que se te ocurre es con un bonito if:

if objeto.otro_objeto
  objeto.otro_objeto.length
end

También, en modo locura-total se te podría ocurrir escribir algo así:

begin
  objeto.otro_objeto.length
rescue
  0
end

Pero en este último caso merecerías morir entre terribles sufrimientos.

Volviendo a la realidad, como quieres ser un buen rubista, descubres los if más molones:

objeto.otro_objeto.length if objeto.otro_objeto

Pero todavía se puede optimizar un poco más y dejar más claras las intenciones al usar try:   Leer más Construcción try en Rails, para preguntar si algo existe

Evitar la carpeta de SPAM al enviar emails - obviedades, tecnicismos y falsos mitos

1
Publicado por Fernan2 el 30 de Abril de 2013

Un compañero que está mareando con el tema del envío de e-mails me he pasado un enlace de Sendgrid, nuestro proveedor para envío de newsletters y emails:

10 Tips to Keep Email Out of the Spam Folder

  • Algunas son reglas de sentido común: no envíes correos a quien no quiere recibirlos, no uses palabras que puedan disparar filtros antispam (viagra, penis enlargement... you know), no adjuntes ejecutables, pide a los receptores que incluyan tu email en su agenda de contactos...
  • Otras son más técnicas: comprobar que están bien configurados tus DKIM, SPF, Sender-ID and Domain Keys , verificar que no estés en listas negras, hacer una comprobación previa antes del envío...
  • Y otras, pues bueno, da la impresión de que el que lo ha escrito tenía que llegar a 10 consejos, y las ha puesto de relleno: ratio texto/imágenes, enviar también versión texto... y como nosotros no estamos enviando versión texto de los emails, esto lo planteaba mi compañero como un aspecto a mejorar... aunque francamente, yo no creo que esto tenga ningún efecto en que los emails vayan o no a la bandeja de spam.

De las 10 reglas del artículo, la segunda es la que históricamente más impacto nos ha supuesto:   Leer más Evitar la carpeta de SPAM al enviar emails - obviedades, tecnicismos y falsos mitos

Etiquetas: spam · email

Cómo usar bien jQuery: no uses jQuery.

0
Publicado por esaborit4code el 24 de Abril de 2013

Hoy, leyendo un pull request en el repositorio de Verema he encontrado este trozo de código JavaScript:

jQuery(function($){
  vector = $('.js_toggler');
  vector.map(function() {
   $('#'+this.id).bind('mouseover', function() {
     $('#'+this.id+'_corto').toggle();
     $('#'+this.id+'_largo').toggle();
   });
   $('#'+this.id).bind('mouseout', function() {
     $('#'+this.id+'_corto').toggle();
     $('#'+this.id+'_largo').toggle();
   });
  });
});

 

Como he visto que tenía muchos aspectos por mejorar, me he puesto a redactar una lista por pasos de mejoras aplicables.

Al resto del equipo le ha gustado bastante esa lista y me han pedido que hiciera un post para el blog. ¿Y yo qué hago? Pues, copio el comentario de GitHub y lo pego aquí, a pelo, sin protección, living la vida loca.   Leer más Cómo usar bien jQuery: no uses jQuery.

Sobre tests funcionales y tests unitarios

4
Publicado por esaborit4code el 25 de Marzo de 2013

Nota: Antes de nada, quiero que quede claro que, aunque pueda parecerlo, mi deseo no es exterminar los tests de integración.

Parte 0: El problema
 
Este post surge a raíz del problema de tener una suite de tests que consideramos lenta (~5 min.) y, en parte, sirve de respuesta a la propuesta de dividir la suite en dos para lanzar un conjunto tests "para admins" con menos frecuencia y así aligerar los tests "para usuarios".
 
Si nuestros tests son tan lentos que no nos apetece lanzarlos todos, la solución no está en partirlos y lanzar los que nos interesen. Yo creo que la solución está en hacer el tipo de tests adecuado para cada objetivo y hacer código fácil de testear unitariamente (que suele ser código mantenible).
Etiquetas: testing funcionales unitarios

Zeus, Ruby 1.9.3 y cómo ganar velocidad en Rails

0
Publicado por jguitar el 28 de Enero de 2013

A raíz de un artículo sobre mejorar el tiempo de carga de Rails y ciertos problemas que tenemos con nuestras aplicaciones (sobre todo por los entornos de test) me entraron ganas de probar la gema de Zeus.

Hice alguna prueba en casa y ahora también en la oficina y veo que va como un tiro. Incluso, es mejor que Spork ya que también “precarga” el entorno de desarrollo, pudiendo lanzar “rake -T” sin levantar nada de nuevo.

Aunque, como ha visto Edu, haciendo lo que dice el post anterior se pierde Guard y con éste la posibilidad de lanzar los tests al cambiar los ficheros en el editor. Pero como en Internet hay solución para todo (faltará probarlo), en http://blog.andywaite.com/2012/12/05/zeus-cucumber-guard/ explican cómo se puede poner todo junto.   Leer más Zeus, Ruby 1.9.3 y cómo ganar velocidad en Rails

Etiquetas: ruby · zeus · rails

Comprobar el renderizado de un partial con RSpec (y refactor de regalo)

0
Publicado por jguitar el 21 de Enero de 2013

Verema no estaba sacando correctamente uno de los partials que le tocaba. Corregirlo ha sido tan sencillo como rastrear desde donde se llamaba al partial. En este caso, se hacía con una función que localizaba el partial dependiendo del producto que se estaba mostrando.

def carpeta_subnav(clase)
  txt = clase.to_s.downcase
  clase == 'productor' ? 'catas/aceite' : clase == 'destileria' ? 'catas/licor' : clase == 'fabricante' ? 'catas/cerveza' : 'guias'
end

¿Problema? Que la variable que guarda en txt ya no se vuelve a utilizar. Estaba devolviendo siempre 'guias'

Cambiarlo era muy sencillo (reemplazar clase por txt) pero he pensado que sería mejor dejar algún test que nos evitara futuros problemas.   Leer más Comprobar el renderizado de un partial con RSpec (y refactor de regalo)

Etiquetas: rspec refactor

Documentación básica de Ruby y Ruby on Rails

0
Publicado por jguitar el 19 de Diciembre de 2012

 

Aprovechando el break de este pomodoro, voy a a ver si me da tiempo a publicar estos enlaces que he encontrado:

El primer enlace es para los Observers y es que Rails ya viene preparado (habrá que buscar a partir de qué versión) con el patrón observador). Además de publicarlo aquí, espero que podamos verlo en el equipo todos juntos y empezar a probarlo, ya que hemos tenido recientemente varias conversaciones relacionadas con esto.

El segundo va a ser para la documentación de ActiveRecord::Base y es que creo que deberíamos visitarla más a menudo y aprender ciertos trucos. Al igual que hacemos con las clases String, Array y Hash de Ruby.

Vuelvo a enchufarme.

P.D. Perdón por las faltas, ya están corregidas.   Leer más Documentación básica de Ruby y Ruby on Rails

Etiquetas: enlaces · ruby · ruby on rails