public
Description: Brazilian Rails é um conjunto de gems para serem usadas com Ruby e com o Ruby on Rails e tem como objetivo unir alguns recursos úteis para os desenvolvedores brasileiros.
Homepage: http://brazilian-rails.rubyforge.org
Clone URL: git://github.com/tapajos/brazilian-rails.git
Click here to lend your support to: brazilian-rails and make a donation at www.pledgie.com !
tapajos (author)
Tue Sep 22 21:12:20 -0700 2009
commit  9ebb35dc8f40d146ddb0403bb2c6f40beb5b9ca7
tree    99622b2712da7f261b6f380f92d9489a3b45793f
parent  274e4d0728d139849cdd9103221d35362e92bc2a
brazilian-rails / brcep
brcep/README.mkdn

BrCep

O que é?

O BrCep é um gem que tem como objetivo buscar um endereço com base no seu CEP. Para isso ele utiliza dois web services:

  • Bronze Business
  • Buscar CEP

Primeiro o endereço é procurado no web service da Bronze Business, e caso não ache o endereço lá, ou caso este web service esteja indisponível, o endereço será então procurado no web service do Buscar CEP. Portanto, o endereço tem duas chances para ser encontrado, sendo mais difícil o serviço de busca de endereço por CEP estar indisponível ou não encontrar o endereço.

Como usar?

    BuscaEndereco.por_cep(22640100)     ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', 22640100]
    BuscaEndereco.por_cep('22640100')   ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', 22640100]
    BuscaEndereco.por_cep('22640-100')  ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', 22640100]
    BuscaEndereco.por_cep('22.640-100') ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', 22640100]

O que acontece se o CEP informado tiver um formato inválido?

    BuscaEndereco.por_cep('00000000')   ==> RuntimeError 'O CEP informado possui um formato inválido.'

E se os dois web services estiverem indisponíveis?

    BuscaEndereco.por_cep('22.640-100') ==> RuntimeError, "A busca de endereço por CEP está indisponível no momento."

E se por acaso o CEP não for encontrado em nenhum dos dois web services:

    BuscaEndereco.por_cep('12345678') ==> RuntimeError, "CEP 12345678 não encontrado."

P.S.: Nesse caso o endereço não foi encontrado porque não existe um endereço associado ao CEP 12345678. No entanto, pode haver situações em que CEPs que possuem endereços associados não tenham os seus endereços encontrados, no entanto, até o momemnto os dois web services utilizados cobrem todas os CEPs testados na prática.