desarrollamos comunidades y redes sociales verticales

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

Ventajas de usar la consola

0
Publicado por jguitar el 23 de Junio de 2014

Siempre que había visto a alguien manejar la consola me había quedado impresionado de las cosas que sucedían en el prompt, de la velocidad de ejecutar comandos, de la magia de ver comandos completamente desconocidos, … Y a la vez aparecía el miedo de salir de la zona de confort, así que nunca me lanzaba a la aventura de lanzar comandos.

Pero desde que salí del mundo Windows, y Delphi como IDE y lenguaje de programación, me he centrado en usar la consola todo lo que he podido para ser más rápido y productivo en mi trabajo.

Además, aprovechando que esta semana estuvo con nosotros Alberto Hernández de Aentos (un gran consolero) me puse a profundizar más en todo lo que ya había ido aprendiendo.   Leer más Ventajas de usar la consola

Cambio de servidores en Rankia y Verema. Ya estamos en Ruby 2.1

0
Publicado por Fernan2 el 30 de Mayo de 2014

Esta noche hemos cambiado los servidores de Rankia.com y hace un par de días hicimos lo mismo en Verema.com

El motivo del cambio era que hemos pasado de Ruby 1.9.3 a Ruby 2.1.2 (la última versión), y como nuestros servidores tenían un stack de aplicaciones antiguo, no se podía hacer el cambio sin arrancar una máquina desde cero para ponerle el stack nuevo.

No ha sido el único cambio; también se ha actualizado la versión de Rails, de 3.1 a 3.2, que incluye las últimas actualizaciones de seguridad, y además es el paso previo para pasar luego a Rails 4.1. (la última versión).

La subida de versión de Ruby nos va a aportar velocidad de ejecución, sobre todo en los momentos de más stress: los deploys, arrancar máquinas desde cero (algo que en producción se hace poco pero los infos en local hacemos continuamente) o correr los tests antes de la subida para comprobar que no hay fallos.   Leer más Cambio de servidores en Rankia y Verema. Ya estamos en Ruby 2.1

La magia del render layout

0
Publicado por esaborit4code el 18 de Diciembre de 2013

A petición de @jguitar_, voy a contar el truco que aprendí el otro día y que os puede ayudar a aplicar DRY en las vistas.

Para los ejemplos voy a usar HAML, ya que es lo que usamos nosotros para nuestras vistas. Con ERB también se puede hacer, pero tendréis que cambiar la sintaxis.

El problema

Para poneros en contexto, os enseño el diseño de la página que tuve que maquetar:

Un layout muy mono.

Como podéis ver hay un patron que se repite tres veces. Para los de la ESO lo voy a indicar con un recuadro discontínuo rojo:

Marcado para la ESO.

Básicamente el patrón consiste en una cabecera con un número, un título y una caja blanca de contenido variado.

La solución: render layout

En esta ocasión, necesitamos que a un partial le lleguen las variables con el numerito y el título, pero además un bloque de HAML que será renderizado en su interior.   Leer más La magia del render layout

Etiquetas: render · layout · rails · haml · DRY · vistas · views

Primer encuentro de Ruby en Valencia: Valencia.rb

2
Publicado por jguitar el 23 de Septiembre de 2013

El próximo martes 24 de Septiembre vamos a reunirnos en Workether.

Llevaba tiempo observando y aprendiendo de la comunidad de Madrid.rb y recientemente veía por Twitter como Zaragoza.rb también empezaban a organizarse y a ir haciendo quedadas, charlas y conociéndose. Así que, con la envidia de querer que algo así sucediese en Valencia, empecé a tantear primero a compañeros del trabajo y después también a través de Twitter quiénes estarían dispuestos a unirse.

No somos muchas las personas que trabajamos con Ruby en Valencia, pero estoy seguro que somos más de los creemos:

Personalmente conozco a:

Y de oídas sé que PlayJugo, OnBuyWeb, Axtro y Logica2 también trabajan en Rails en Valencia.   Leer más Primer encuentro de Ruby en Valencia: Valencia.rb

Etiquetas: ruby valencia

Avanzando con pluralize, inflectors, I18n y demás

0
Publicado por jguitar el 11 de Septiembre de 2013

Queremos crear la tabla (y un nuevo modelo) para "planes de pensiones". Palabra compuesta y además complicada porque:

  • Singular: plan de pensiones
  • Plural: planes de pensiones

Lo primero que se me ocurrió para que todo fuese sobre ruedas fue meterlo en inflectors.rb

inflect.irregular 'plan_de_pensiones', 'planes_de_pensiones'

Pero al usar:

rails g scaffold PlanDePensiones nombre:string ...

No funcionaba porque creaba cosas como:

app/models/plan_de_pensione.rb
app/assets/javascripts/plan_de_pensiones.js.coffee
app/assets/stylesheets/plan_de_pensiones.css.scss
app/controllers/plan_de_pensiones_controller.rb
app/decorators/plan_de_pensione_decorator.rb
app/helpers/plan_de_pensiones_helper.rb
app/models/plan_de_pensione.rb
app/views/plan_de_pensiones/
db/migrate/20130911084339_create_plan_de_pensiones.rb
spec/controllers/plan_de_pensiones_controller_spec.rb
spec/decorators/plan_de_pensione_decorator_spec.rb
spec/helpers/plan_de_pensiones_helper_spec.rb
spec/models/plan_de_pensione_spec.rb
spec/requests/
spec/routing/plan_de_pensiones_routing_spec.rb
spec/views/

El modelo debería haber sido "plan_de_pensiones.rb" y, sin embargo, ha creado "plan_de_pensione.rb"   Leer más Avanzando con pluralize, inflectors, I18n y demás

Etiquetas: rails · I18n · routes

A buen entendedor pocos tests bastan

0
Publicado por esaborit4code el 29 de Julio de 2013

El viernes, durante un refactor en nombre del SRP, moví una función del modelo Usuario al concern Suscriptores, lugar al que realmente pertenecía.

Al tratar de mover el test unitario que comprobaba el funcionamiento de dicha función, me topé con varios problemas hasta que acabé consultando con el señor jguitar para ver si entre los dos lo sacábamos.

¿La solución? Eliminar el test.

Algunos dirán "WTF!? Sois una panda de negligentes, ¡estáis cargándoos la cobertura de tests por algo que no sabéis hacer!".

Pues bien, aunque pueda sonar a excusa por no saber hacer, creo que la conclusión tiene buena argumentación.

La clave está en ser consciente de que haciendo TDD escribes los tests que guían o "sujetan" el desarrollo/refactor que tienes entre manos y que algunos de estos tests solo tienen sentido durante el proceso del red, green, refactor. De hecho, en varios sitios he visto nombrados este tipo de tests como scaffolding (o andamiaje, en castellano), haciendo referencia al recurrente símil entre desarrollo de software y construcción de edificios.   Leer más A buen entendedor pocos tests bastan

Etiquetas: testing · TDD · scaffolding

Usando filtros AROUND en los tests - el ejemplo que falta en la documentación oficial

0
Publicado por Fernan2 el 22 de Julio de 2013

Los filtros around vienen descritos en la documentación y en las especificaciones con estos ejemplos: around(:each) do |ex| # do some stuff before ex.run # do some stuff after end describe "around filter" do around(:each) do |example| puts "around each before" example.run puts "around each after" end it "gets run in order" do puts "in the example" end end

Así, si yo quiero correr un test de capybara con un dominio concreto (y luego restaurar el dominio por defecto), puedo optar por hacerlo con un before + after: before { capybara_en_dominio('www.rankia.cl') } after { restaura_capybara } it "debe integrarse bien con la plantilla de latam" do ... end

O puedo usar un around: around do |codigo_del_test| capybara_en_dominio('www.rankia.cl') codigo_del_test.run restaura_capybara end it "debe integrarse bien con la plantilla de latam" do ... end   Leer más Usando filtros AROUND en los tests - el ejemplo que falta en la documentación oficial