Debió ser cosa de la suerte que todavía quedasen unidades en la tienda de música de la edición coleccionista del DVD + Doble CD del Alchemy de Dire Straits. Debió ser cosa de la suerte que cuando acompañé a mi hermana a comprarlo nos encontrásemos con una persona amante de la buena música y nos pusiera sobre la pista de que en poco tiempo Mark Knopfler pasaría por España en la gira de presentación de su último disco, el Get Lucky.

Debió ser también cosa de la suerte que mi buen amigo Ilde Cortés me avisase que en pocos días Knopfler estaría en Córdoba, dentro de los conciertos del Festival de la guitarra. Y el que todavía quedasen entradas. Y que al preguntar a mi familia me recomendasen un hotel en el que ya habían estado que casualmente pillaba a 5 minutos andando de la plaza de toros, donde se desarrollaría el concierto.

Tener la oportunidad de disfrutar en compañía de una persona muy especial de Romeo and Juliet, ver a Knopfler improvisar al ritmo del Oe oe que coreaba el público para a continuación enlazar con la mítica Sultans of swing son cosas para las que tendrán que pasar muchos años hasta que ocurra algo que iguale o supere ese momento.
Aunque serán dos horas muy difíciles de olvidar, pocos días después de ese maravilloso 25 de julio descubrimos de nuevo gracias a Ilde que la gente de SimfyLive.com comercializaba el directo del concierto.
Cosas de la suerte. O no. Pero una grandísima experiencia :)
Aprovechando que son los protagonistas del último “Bootstrapped, profitable & proud” (una serie de artículos del blog de 37signals, de lo más recomendables) rompo la temática de los imprescindibles para comentar un servicio que llevo usando desde sus inicios: Github.
Dentro de los objetivos en uno de nuestros desarrollos en Rails está el tener cuantas más vías mejor a la hora de personalizar la aplicación de cara al cliente. En una de esas últimas incursiones en la carga dinámica para cada cliente estuvimos jugando con el tema de que pudieran tener helpers propios.
Imaginemos que dentro de config/preinitializer.rb tenemos algo como esto:
NUESTRO_CLIENTE = 'foobar'
Podemos crear un fichero llamado config/initializers/helper_loader.rb (el nombre es un poco lo de menos), que contenga lo siguiente:
helper_load_path = File.join(RAILS_ROOT, 'app', 'customizations', NUESTRO_CLIENTE, 'helpers')
ActiveSupport::Dependencies.load_paths << helper_load_path
Por último, creamos un fichero llamado app/customizations/foobar/helpers/foobar_helper.rb parecido al siguiente:
module FoobarHelper
def nuestro_metodo
# lo que sea
end
end
Ya solo nos quedaría meter en nuestro app/controllers/application_controller.rb la siguiente línea:
helper Module.const_get("#{NUESTRO_CLIENTE.titleize}Helper")
Con esto ya tendríamos disponible el helper nuestro_metodo solo en aquellas instancias en las que NUESTRO_CLIENTE fuese foobar y no en el resto. O también nos podría servir para poder definir en varias instancias de manera completamente distinta nuestro_metodo (por ejemplo, definir un ad_tag_helper que para un cliente estuviese optimizada para SmartAdServer, para otro con OpenX, para otro con Google Adsense…).
Las posibilidades que nos brinda estas pocas líneas son infinitas :)



