HTMLEntities 4.0.0 y el lado humano del software libre

Una de las cosas que más me gustan del software libre es que es fácil identificar y contactar a las personas que lo han creado. Por ejemplo, ayer pedía ayuda en la lista de Rubíes para encontrar una manera fácil de sustituir los caracteres especiales (tildes, eñes, letras griegas…) por las entidades HTML correspondientes. Al poco me contestaron dos personas de la lista, y me recomendaron el uso de la gema HTMLEntities.

Tras probar esta gema ví que resolvía parte de mis necesidades, ya que reemplazaba caracteres como tildes y eñes, pero no procesaba letras griegas. Vaya! Me hacía falta esto para tratar con un proyecto de sustancias químicas…

Gracias a que esta gema está publicada con una licencia libre, de código abierto, pude inspeccionar el código fuente para ver cómo funcionaba, y se me ocurrió cómo añadir soporte para letras griegas a este software. Contacté con el autor, Paul Buttley, a través de correo electrónico para ofrecerle mi ayuda, y al rato me contestó para agradecerme la oferta, pero me dijo que no hacía falta porque estaba a puntito de publicar la nueva versión de su gema, y que ésta incluía soporte para más caracteres, incluyendo los griegos…. Me dió acceso a los nuevos códigos fuente y pude probarlos, y usar la nueva versión de la gema para finalizar el procesado de esas 100.000 sustancias químicas que me desafiaban hablando en griego :) .

Al día siguiente Paul publicó su nueva versión, la 4.0.0, y este es el anuncio de las nuevas características:

This update has many requested improvements and fixes:

  • Now understands all the entities referred to in the XHTML 1.0 DTD
  • (253 entities compared with 131 in version 3.0.1).
  • Calls to_s on parameters to play nicely with Rails 1.2.1.
  • Entity mapping data is now lazily loaded.
  • New instantiation-based interface (but legacy interface is preserved for compatibility).
  • Handles HTML4 as well as XHTML1 (the former lacks the ‘ entity).
  • Encodes basic entities numerically when :basic isn’t specified and :decimal or :hexadecimal is.
  • Performs a maximum of two gsub passes instead of three when encoding, which should be more efficient on long strings.

En fin… Que cómo mola todo y qué buen rollo nos traemos, qué risas nos echamos y todo eso. De programador a programador, cara a cara, y tiro porque me toca.

0 comments ↓

There are no comments yet...Kick things off by filling out the form below.

Leave a Comment