Arquivo para agosto 13th, 2010
JSON Parser
Estamos usando JSON meu novo trabalho na Superficie para fazer a comunicacão entre plugins do SketchUp e uma aplicacao escrita em Rails. Acontece que a versao do Ruby do SketchUp é a 1.8.5 e, além disso, não possui nenhuma biblioteca padrão, o que torna algumas coisas como parsear strings JSON um pouco mais complicadas do que em uma instalacão do Ruby padrão. Procurei uma solucão para isso nos forums de desenvolvimento de plugin para o SketchUp, mas parece que até hoje ninguém tinha compartilhado uma gem para interpretacão e geracão de JSON a partir de objetos Ruby no ambiente limitado do SketchUp. Resolvi então portar o classico parser recursivo descentente do Douglas Crockford para Ruby.
Escrevi testes com o Rspec, me baseando nos testes do Ruby Quiz #155 e fui portando do algoritmo aos poucos, me certificando que os testes passavam na medida em que ele ia sendo totalmente implementado. Já estamos usando o parser há algum tempo e até hoje não deu nenhum problema. A única limitacão mais grave é que ele não sabe lidar muito bem com alguns casos de JSON inválido, mas isso não é um problema grande nos casos em que ele é usado na Superficie, porque todo JSON interpretado por ele é gerado pelo Rails.
Segue o link para baixar a gem no RubyGems: http://rubygems.org/gems/sketchup_json
