Si lo llega a hacer premeditadamente seguro que no le sale. El pasado jueves día 7, coincidiendo con el día en el que cumplía mis treinta y cinco agostos, Aslak mandaba el siguiente correo a la lista de desarrollo de RSpec:
[ANN] Cucumber
Nice vegetable, nice tool.
It's my reimplementation of the story runner, addressing several
shortcomings of the current one. And I'm calling them features instead
of stories now, because that is what they are.
http://github.com/aslakhellesoy/cucumber/ (The home page)
http://gojko.net/2008/08/06/cucumber-next-generation-ruby-bdd-tool/
(Thanks Gojko)
Take a look - it's taking shape.
Aslak
Una de la principales virtudes del Cucumber de Aslak frente al Story Runner de RSpec es la posibilidad de escribir las "plain text stories" en cualquier idioma.
Lo cachondo del asunto es que Aslak tiene asignada la implementación de dicha funcionalidad dentro de RSpec desde que la solicité a primeros de año junto con el parche para la versión de aquel momento y, como no, su "plain text story" asociada:
Story: Writting stories in other languages As a non-english RSpec developer I want to write stories in my mother tongue So that I don't have to make an extra effort to know what's going on Scenario: Pending Given the file stories/plain_text_story_in_spanish.rb When I run it with the ruby interpreter Then the exit code should be 0 And the stdout should match /1 scenarios: 0 succeeded, 0 failed, 1 pending/m And the stdout should match /4\) La portada de Mi Sitio en La Red/ Scenario: Succeed Given the file stories/plain_text_story_in_spanish_with_steps.rb When I run it with the ruby interpreter Then the exit code should be 0 And the stdout should match /1 scenarios: 1 succeeded, 0 failed, 0 pending/mEra muy excitante ver como la versión sin el parche fallaba al ejecutarla y la parchea campaba triunfal. Adiós TODO ambiguo. Hola Spec-ificación formal.
Sin embargo la realidad es que ha llovido bastante desde aquello, y viendo que seguramente Aslak escribirá sus historias en noruego utilizando Cucumber, me da la sensación de que seguirá lloviendo durante mucho más hasta que dicha posibilidad exista en la versión oficial de RSpec.
Espero probar Cucumber pronto, pero mientras tanto no me queda más remedio que mantener el legado que tenemos actualmente utilizando el Story Runner de RSpec. Para ello me he creado una rama de RSpec y le he metido los cambios para el soporte multilenguaje.
En cualquier caso lo que está claro es que Aslak ha resuelto mi deseo y me lo ha presentado justo el día de mi cumple... Takk så mye!
Llevaba tiempo con ganas de probar JRuby y Glassfish. También de jugar con Merb y de darle un poquito de alegría a la FreeBSD que tengo para trastear.
Hace algún tiempo me encontré con este post de Nodeta que parecía servirme para matar tres de los mencionados pájaros de un tiro.
Sólo me faltaba la información necesaria para mi cuarto y último deseo: hacerlo en FreeBSD. El post de Nodeta lo resolvía en Ubuntu, pero en principio lograrlo en FreeBSD no tenía porque ser demasiado complicado.
Pues la primera en la frente: los binarios de Glassfish estaban disponibles para un buen puñado de plataformas (Solaris, AIX, Window, MacOS y GNU/Linux) pero no para FreeBSD. Eso sí, para los más valientes Sun ofrece el repositorio de CVS con los fuentes.
Se me hacía la cosa un poco cuesta arriba pero no tardé en descubrir un post de Homer Yau, un empleado de Sun, que comentaba como se podía hacer la cosa.
Para instalar Merb, además de las gemas mencionadas en el post de Nodeta tuve que instalar las siguientes:
Respecto a la instalación de GlassFish comentar que perdí bastante tiempo por no tener en cuenta la nota 4 del post de Homer. En la misma se menciona la posibilidad de establecer la versión concreta de los fuentes de GlassFish que nos vamos a bajar de Sun (la etiquetada como SJSAS90_FCS_BRANCH). Al bajarse una versión más modernas aparecian dependencias no resueltas no mencionadas en el post al hacer el paso 4 (maven build, en particular con el HK2 que parece ser la nueva base del nuevo GlassFish para hacerlo ligero ligero).
Ah! Por cierto, unas cuantas versiones, que nunca está de más:
O un poquito más castellano: "be_indexed: matcher de RSpec para el is_indexed de Ultrasphinx".
Con él podemos especificar como debe estar indexado nuestro modelo tal que:
describe MiModeloIndexadoConUltrasphinx do include Spec::Ultrasphinx::Matchers it do MiModeloIndexadoConUltrasphinx.should be_indexed.using_fields([:campo_uno, :campo_dos]).with_delta end endDe momento sólo contempla sus opciones :fields y :delta (son las únicas que he necesitado por ahora).
Para utilizarlo colocar be_indexed a modo de plugin en vendor/plugins e incluirlo en nuestra spec como en el ejemplo de arriba.
Para utilizarlo en más de una spec podemos meterlo en nuestro spec_helper.rb así:
Spec::Runner.configure do |config| config.include Spec::Ultrasphinx::Matchers endPara más ejemplos de uso ver su propia spec.
Descarga/download vía...
git clone git://github.com/nando/be_indexed.git... desde su línea-de-comandos/command-line favorita.