brcep-vandal 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG +0 -0
- data/MIT-LICENSE +20 -0
- data/README.mkdn +31 -0
- data/Rakefile +72 -0
- data/lib/brcep/busca_endereco.rb +96 -0
- data/lib/brcep/convert_acronym.rb +34 -0
- data/lib/brcep/version.rb +10 -0
- data/lib/brcep.rb +8 -0
- data/test/busca_endereco_test.rb +87 -0
- data/test/test_helper.rb +15 -0
- metadata +94 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bd0d83fdf74931b3a6c39373178e577ccdb497bd
|
4
|
+
data.tar.gz: b8aa08fc9322cf2bf22092afe0a525219b4ea5ba
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bfa9ae67f2d2b2e457b9f47e7f8ac4bb671efda5d21aa4d474cd0b69b03531835b3ee9c8909d8b363495a82c865e8139bd1a85a7f1bec9cf8382c0f74f415d88
|
7
|
+
data.tar.gz: 6c207e572f24c6b0b263fdc335bd61773ba93cf2d29413cda32e2a189e78e60fdccf9c92626d4ffbda552b4d73cfd0319fc7df82e17441b92d30737bc6975253
|
data/CHANGELOG
ADDED
File without changes
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2008 [name of plugin creator]
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.mkdn
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# BrCep
|
2
|
+
|
3
|
+
## O que é?
|
4
|
+
|
5
|
+
O BrCep é um gem que tem como objetivo buscar um endereço com base no seu CEP. Para isso ele utiliza dois web services:
|
6
|
+
|
7
|
+
* Bronze Business
|
8
|
+
* Buscar CEP
|
9
|
+
|
10
|
+
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.
|
11
|
+
|
12
|
+
## Como usar?
|
13
|
+
|
14
|
+
BuscaEndereco.por_cep(22640100) ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', 22640100]
|
15
|
+
BuscaEndereco.por_cep('22640100') ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', 22640100]
|
16
|
+
BuscaEndereco.por_cep('22640-100') ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', 22640100]
|
17
|
+
BuscaEndereco.por_cep('22.640-100') ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', 22640100]
|
18
|
+
|
19
|
+
## O que acontece se o CEP informado tiver um formato inválido?
|
20
|
+
|
21
|
+
BuscaEndereco.por_cep('00000000') ==> RuntimeError 'O CEP informado possui um formato inválido.'
|
22
|
+
|
23
|
+
## E se os dois web services estiverem indisponíveis?
|
24
|
+
|
25
|
+
BuscaEndereco.por_cep('22.640-100') ==> RuntimeError, "A busca de endereço por CEP está indisponível no momento."
|
26
|
+
|
27
|
+
## E se por acaso o CEP não for encontrado em nenhum dos dois web services:
|
28
|
+
|
29
|
+
BuscaEndereco.por_cep('12345678') ==> RuntimeError, "CEP 12345678 não encontrado."
|
30
|
+
|
31
|
+
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.
|
data/Rakefile
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require "rubygems"
|
3
|
+
require "rake"
|
4
|
+
require "rake/testtask"
|
5
|
+
require "rdoc/task"
|
6
|
+
require "rake/packagetask"
|
7
|
+
require "rubygems/package_task"
|
8
|
+
|
9
|
+
require File.join(File.dirname(__FILE__), "lib", "brcep", "version")
|
10
|
+
|
11
|
+
PKG_BUILD = ENV["PKG_BUILD"] ? "." + ENV["PKG_BUILD"] : ""
|
12
|
+
PKG_NAME = "brcep-vandal"
|
13
|
+
PKG_VERSION = BrCep::VERSION::STRING + PKG_BUILD
|
14
|
+
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
|
15
|
+
|
16
|
+
desc "Default Task"
|
17
|
+
task :default => [ :test ]
|
18
|
+
|
19
|
+
# Run the unit tests
|
20
|
+
Rake::TestTask.new { |t|
|
21
|
+
t.libs << "test"
|
22
|
+
t.pattern = "test/*_test.rb"
|
23
|
+
t.verbose = true
|
24
|
+
t.warning = false
|
25
|
+
}
|
26
|
+
|
27
|
+
|
28
|
+
#Generate the RDoc documentation
|
29
|
+
Rake::RDocTask.new { |rdoc|
|
30
|
+
rdoc.rdoc_dir = "doc"
|
31
|
+
rdoc.title = "Brazilian Rails -- CEP"
|
32
|
+
rdoc.options << "--line-numbers" << "--inline-source" << "-A cattr_accessor=object"
|
33
|
+
rdoc.options << "--charset" << "utf-8"
|
34
|
+
rdoc.template = "#{ENV["template"]}.rb" if ENV["template"]
|
35
|
+
rdoc.rdoc_files.include("README.mkdn", "CHANGELOG")
|
36
|
+
rdoc.rdoc_files.include("lib/**/*")
|
37
|
+
}
|
38
|
+
|
39
|
+
|
40
|
+
# Create compressed packages
|
41
|
+
spec = Gem::Specification.new do |s|
|
42
|
+
s.platform = Gem::Platform::RUBY
|
43
|
+
s.name = PKG_NAME
|
44
|
+
s.summary = "brcep é uma das gems que compoem o Brazilian Rails"
|
45
|
+
s.description = %q{brcep é uma das gems que compoem o Brazilian Rails}
|
46
|
+
s.version = PKG_VERSION
|
47
|
+
|
48
|
+
s.authors = ["Marcos Tapajós", "Celestino Gomes", "Andre Kupkosvki", "Vinícius Teles", "Felipe Barreto", "Rafael Walter", "Cassio Marques"]
|
49
|
+
s.email = %w"tapajos@gmail.com tinorj@gmail.com kupkovski@gmail.com vinicius.m.teles@gmail.com felipebarreto@gmail.com rafawalter@gmail.com cassiommc@gmail.com"
|
50
|
+
s.rubyforge_project = "brcep-vandal"
|
51
|
+
s.homepage = "http://www.improveit.com.br/software_livre/brazilian_rails"
|
52
|
+
|
53
|
+
s.has_rdoc = true
|
54
|
+
s.requirements << "none"
|
55
|
+
s.require_path = "lib"
|
56
|
+
|
57
|
+
s.add_development_dependency "rake"
|
58
|
+
s.add_development_dependency "mocha"
|
59
|
+
|
60
|
+
s.files = [ "Rakefile", "README.mkdn", "CHANGELOG", "MIT-LICENSE" ]
|
61
|
+
s.files = s.files + Dir.glob( "lib/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
|
62
|
+
s.files = s.files + Dir.glob( "test/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
|
63
|
+
end
|
64
|
+
|
65
|
+
Gem::PackageTask.new(spec) do |p|
|
66
|
+
p.gem_spec = spec
|
67
|
+
end
|
68
|
+
|
69
|
+
desc "Publish the release files to RubyForge."
|
70
|
+
task :release => [ :package ] do
|
71
|
+
`gem push pkg/#{PKG_FILE_NAME}.gem`
|
72
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'net/http'
|
3
|
+
require 'cgi'
|
4
|
+
|
5
|
+
# Este recurso tem como finalidade encontrar um endereço através de um CEP, e
|
6
|
+
# para isso ele utiliza o web service da Republica Virtual (http://cep.republicavirtual.com.br/web_cep.php)
|
7
|
+
# Obviamente, para utilizar este serviço é necessário uma conexão com a Internet.
|
8
|
+
#
|
9
|
+
# Como fazer a busca de endereço por cep?
|
10
|
+
#
|
11
|
+
# BuscaEndereco.cep(22640100) ==> {:tipo_logradouro => 'Avenida', :logradouro => 'das Américas', :bairro => 'Barra da Tijuca', :uf => 'RJ', :cidade => 'Rio de Janeiro', :cep => '22640100'}
|
12
|
+
# BuscaEndereco.cep('22640100') ==> {:tipo_logradouro => 'Avenida', :logradouro => 'das Américas', :bairro => 'Barra da Tijuca', :uf => 'RJ', :cidade => 'Rio de Janeiro', :cep => '22640100'}
|
13
|
+
# BuscaEndereco.cep('22640-100') ==> {:tipo_logradouro => 'Avenida', :logradouro => 'das Américas', :bairro => 'Barra da Tijuca', :uf => 'RJ', :cidade => 'Rio de Janeiro', :cep => '22640100'}
|
14
|
+
# BuscaEndereco.cep('22.640-100') ==> {:tipo_logradouro => 'Avenida', :logradouro => 'das Américas', :bairro => 'Barra da Tijuca', :uf => 'RJ', :cidade => 'Rio de Janeiro', :cep => '22640100'}
|
15
|
+
#
|
16
|
+
# É feita uma validação para ver se o cep possui 8 caracteres após a remoção de '.' e '-'.
|
17
|
+
# BuscaEndereco.cep('0000000') ==> RuntimeError 'O CEP informado possui um formato inválido.'
|
18
|
+
#
|
19
|
+
# Se necessário usar proxy, faça (de preferência em environment.rb):
|
20
|
+
# BuscaEndereco.proxy_addr= 'endereco.do.proxy'
|
21
|
+
# BuscaEndereco.proxy_port= 999 # porta a ser utilizada
|
22
|
+
#
|
23
|
+
class BuscaEndereco
|
24
|
+
@@proxy_addr = nil
|
25
|
+
@@proxy_port = nil
|
26
|
+
|
27
|
+
class << self
|
28
|
+
def proxy_addr
|
29
|
+
@@proxy_addr
|
30
|
+
end
|
31
|
+
|
32
|
+
def proxy_addr=(addr)
|
33
|
+
@@proxy_addr = addr
|
34
|
+
end
|
35
|
+
|
36
|
+
def proxy_port
|
37
|
+
@@proxy_port
|
38
|
+
end
|
39
|
+
|
40
|
+
def proxy_port=(port)
|
41
|
+
@@proxy_port = port
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
WEB_SERVICE_REPUBLICA_VIRTUAL_URL = "http://cep.republicavirtual.com.br/web_cep.php?formato=query_string&cep="
|
46
|
+
|
47
|
+
# Deprecated: Será removido
|
48
|
+
def self.por_cep(numero)
|
49
|
+
warn("DEPRECATION WARNING: O método `BuscaEnderedo.por_cep` será removido. Use o BuscaEndereco.cep e faça os ajustes necessarios")
|
50
|
+
_cep = cep(numero)
|
51
|
+
[
|
52
|
+
_cep[:tipo_logradouro],
|
53
|
+
_cep[:logradouro],
|
54
|
+
_cep[:bairro],
|
55
|
+
_cep[:cidade],
|
56
|
+
_cep[:uf],
|
57
|
+
_cep[:cep]
|
58
|
+
]
|
59
|
+
end
|
60
|
+
|
61
|
+
# Retorna um hash com os dados de endereçamento para o cep informado ou
|
62
|
+
# um erro quando o serviço está indisponível, quando o cep informado possui
|
63
|
+
# um formato inválido ou quando o endereço não foi encontrado.
|
64
|
+
#
|
65
|
+
# Exemplo:
|
66
|
+
# BuscaEndereco.cep(22640100) ==> {:tipo_logradouro => 'Avenida', :logradouro => 'das Américas', :bairro => 'Barra da Tijuca', :uf => 'RJ', :cidade => 'Rio de Janeiro', :cep => '22640100'}
|
67
|
+
def self.cep(numero, acronym=true)
|
68
|
+
cep = numero.to_s.gsub(/[\.-]/, '')
|
69
|
+
raise "O CEP informado possui um formato inválido." unless cep.to_s.match(/^\d{8}$/)
|
70
|
+
|
71
|
+
response = Net::HTTP.Proxy(self.proxy_addr, self.proxy_port).get_response(URI.parse("#{WEB_SERVICE_REPUBLICA_VIRTUAL_URL}#{cep}"))
|
72
|
+
raise "A busca de endereço por CEP através do web service da República Virtual está indisponível." unless response.kind_of?(Net::HTTPSuccess)
|
73
|
+
|
74
|
+
doc = Hash[* CGI::parse(response.body).map {|k,v| [k,v[0]]}.flatten]
|
75
|
+
|
76
|
+
retorno = {}
|
77
|
+
|
78
|
+
raise "CEP #{cep} não encontrado." unless [1,2].include?(doc['resultado'].to_i)
|
79
|
+
|
80
|
+
%w(tipo_logradouro logradouro bairro cidade uf).each do |field|
|
81
|
+
retorno[field.to_sym] = if RUBY_VERSION < '1.9'
|
82
|
+
require 'iconv'
|
83
|
+
Iconv.conv("utf-8", "ISO-8859-1", doc[field])
|
84
|
+
else
|
85
|
+
doc[field].force_encoding("ISO-8859-1").encode("UTF-8")
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
retorno[:cep] = cep
|
90
|
+
if acronym == false
|
91
|
+
retorno[:uf] = ConvertAcronym.convert(retorno[:uf].to_sym)
|
92
|
+
end
|
93
|
+
|
94
|
+
retorno
|
95
|
+
end
|
96
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
class ConvertAcronym
|
2
|
+
def self.convert(acronym)
|
3
|
+
ufs = {
|
4
|
+
'AC': 'Acre',
|
5
|
+
'AL': 'Alagoas',
|
6
|
+
'AP': 'Amapá',
|
7
|
+
'AM': 'Amazonas',
|
8
|
+
'BA': 'Bahia',
|
9
|
+
'CE': 'Ceará',
|
10
|
+
'DF': 'Distrito Federal',
|
11
|
+
'ES': 'Espírito Santo',
|
12
|
+
'GO': 'Goiás',
|
13
|
+
'MA': 'Maranhão',
|
14
|
+
'MT': 'Mato Grosso',
|
15
|
+
'MS': 'Mato Grosso do Sul',
|
16
|
+
'MG': 'Minas Gerais',
|
17
|
+
'PA': 'Pará',
|
18
|
+
'PB': 'Paraíba',
|
19
|
+
'PR': 'Paraná',
|
20
|
+
'PE': 'Pernambuco',
|
21
|
+
'PI': 'Piauí',
|
22
|
+
'RJ': 'Rio de Janeiro',
|
23
|
+
'RN': 'Rio Grande do Norte',
|
24
|
+
'RS': 'Rio Grande do Sul',
|
25
|
+
'RO': 'Rond&ohat;nia',
|
26
|
+
'RR': 'Roraima',
|
27
|
+
'SC': 'Santa Catarina',
|
28
|
+
'SP': 'São Paulo',
|
29
|
+
'SE': 'Sergipe',
|
30
|
+
'TO': 'Tocantins'
|
31
|
+
}
|
32
|
+
ufs[acronym]
|
33
|
+
end
|
34
|
+
end
|
data/lib/brcep.rb
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
2
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
|
+
|
4
|
+
%w(busca_endereco version convert_acronym).each {|req| require File.dirname(__FILE__) + "/brcep/#{req}"}
|
5
|
+
|
6
|
+
|
7
|
+
module BrCep
|
8
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require File.dirname(__FILE__) + '/test_helper'
|
3
|
+
require 'rubygems'
|
4
|
+
require 'net/http'
|
5
|
+
require 'mocha'
|
6
|
+
require 'fakeweb'
|
7
|
+
|
8
|
+
FakeWeb.allow_net_connect = false
|
9
|
+
|
10
|
+
INVALID_ZIPS = [0, '0', '00', '000', '0000', '00000', '000000', '0000000', '4006000']
|
11
|
+
VALID_ZIPS = [22640100, '22640100', '22.640100', '22640-100', '22.640-100']
|
12
|
+
VALID_ZIPS_WITH_ZERO_AT_BEGINNING = ['05145100', '05145-100', '05.145-100']
|
13
|
+
ZIPS_WITH_NO_ADDRESS_ASSOCIATED = [12345678, '12345678', '12.345678', '12345-678', '12.345-678']
|
14
|
+
|
15
|
+
URL = BuscaEndereco::WEB_SERVICE_REPUBLICA_VIRTUAL_URL
|
16
|
+
|
17
|
+
class BuscaEnderecoTest < Test::Unit::TestCase
|
18
|
+
def test_accept_option_to_convert_acronym
|
19
|
+
cep = VALID_ZIPS.first.to_s
|
20
|
+
expected = {:tipo_logradouro => 'Avenida', :logradouro => 'das Américas', :bairro => 'Barra da Tijuca', :cidade => 'Rio de Janeiro', :uf => 'Rio de Janeiro', :cep => cep}
|
21
|
+
body = "&resultado=1&resultado_txt=sucesso+-+cep+completo&uf=RJ&cidade=Rio+de+Janeiro&bairro=Barra+da+Tijuca&tipo_logradouro=Avenida&logradouro=das+Am%E9ricas"
|
22
|
+
|
23
|
+
FakeWeb.register_uri(:get, "#{URL}#{cep}", :body => body)
|
24
|
+
|
25
|
+
assert_equal expected, BuscaEndereco.cep(cep, acronym=false)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_if_warn_for_por_cep_usage
|
29
|
+
cep = VALID_ZIPS.sample
|
30
|
+
expected = {:tipo_logradouro => 'Avenida', :logradouro => 'das Américas', :bairro => 'Barra da Tijuca', :cidade => 'Rio de Janeiro', :uf => 'RJ', :cep => cep}
|
31
|
+
BuscaEndereco.expects(:warn).with("DEPRECATION WARNING: O método `BuscaEnderedo.por_cep` será removido. Use o BuscaEndereco.cep e faça os ajustes necessarios")
|
32
|
+
BuscaEndereco.expects(:cep).with(cep).returns(expected)
|
33
|
+
|
34
|
+
assert_equal expected.values, BuscaEndereco.por_cep(cep)
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_raise_without_service_on_both_web_services
|
38
|
+
FakeWeb.register_uri(:get, "#{URL}#{22640100}", :status => 504, :body => "Service Unavailable")
|
39
|
+
|
40
|
+
assert_raise RuntimeError, "A busca de endereço por CEP está indisponível no momento." do
|
41
|
+
BuscaEndereco.cep(22640100)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
INVALID_ZIPS.each do |invalid_zip|
|
46
|
+
define_method "test_raise_for_invalid_zip_code_#{invalid_zip}" do
|
47
|
+
assert_raise RuntimeError, "O CEP informado possui um formato inválido." do
|
48
|
+
BuscaEndereco.cep(invalid_zip)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
VALID_ZIPS.each do |valid_zip|
|
54
|
+
define_method "test_valid_code_#{valid_zip}" do
|
55
|
+
cep = VALID_ZIPS.first.to_s
|
56
|
+
expected = {:tipo_logradouro => 'Avenida', :logradouro => 'das Américas', :bairro => 'Barra da Tijuca', :cidade => 'Rio de Janeiro', :uf => 'RJ', :cep => cep}
|
57
|
+
body = "&resultado=1&resultado_txt=sucesso+-+cep+completo&uf=RJ&cidade=Rio+de+Janeiro&bairro=Barra+da+Tijuca&tipo_logradouro=Avenida&logradouro=das+Am%E9ricas"
|
58
|
+
|
59
|
+
FakeWeb.register_uri(:get, "#{URL}#{cep}", :body => body)
|
60
|
+
|
61
|
+
assert_equal expected,BuscaEndereco.cep(valid_zip)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
VALID_ZIPS_WITH_ZERO_AT_BEGINNING.each do |valid_zip|
|
66
|
+
define_method "test_valid_code_#{valid_zip}" do
|
67
|
+
cep = VALID_ZIPS_WITH_ZERO_AT_BEGINNING.first
|
68
|
+
expected = {:tipo_logradouro => "Avenida", :logradouro => "Raimundo Pereira de Magalhães", :bairro => "Jardim Iris", :cidade => "São Paulo", :uf => "SP", :cep => cep}
|
69
|
+
body = "&resultado=1&resultado_txt=sucesso+-+cep+completo&uf=SP&cidade=S%E3o+Paulo&bairro=Jardim+Iris&tipo_logradouro=Avenida&logradouro=Raimundo+Pereira+de+Magalh%E3es"
|
70
|
+
|
71
|
+
FakeWeb.register_uri(:get, "#{URL}#{cep}", :body => body)
|
72
|
+
|
73
|
+
assert_equal expected, BuscaEndereco.cep(cep)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_should_raise_exception_when_invalid_code
|
78
|
+
cep = "12345678"
|
79
|
+
body = "&resultado=0&resultado_txt=servi%E7o+indispon%EDvel%2Fcep+inv%E1lido&uf=&cidade=&bairro=&tipo_logradouro=&logradouro="
|
80
|
+
|
81
|
+
assert_raise RuntimeError, "CEP #{cep} não encontrado." do
|
82
|
+
FakeWeb.register_uri(:get, "#{URL}#{cep}", :body => body)
|
83
|
+
|
84
|
+
BuscaEndereco.cep("12345678")
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require File.dirname(__FILE__) + '/../lib/brcep'
|
3
|
+
|
4
|
+
def tornar_metodos_publicos(clazz)
|
5
|
+
clazz.class_eval do
|
6
|
+
private_instance_methods.each { |instance_method| public instance_method }
|
7
|
+
private_methods.each { |method| public_class_method method }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def p80 text
|
12
|
+
p '*'*80
|
13
|
+
p text
|
14
|
+
yield if block_given?
|
15
|
+
end
|
metadata
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: brcep-vandal
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 3.3.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Marcos Tapajós
|
8
|
+
- Celestino Gomes
|
9
|
+
- Andre Kupkosvki
|
10
|
+
- Vinícius Teles
|
11
|
+
- Felipe Barreto
|
12
|
+
- Rafael Walter
|
13
|
+
- Cassio Marques
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
date: 2015-02-23 00:00:00.000000000 Z
|
18
|
+
dependencies:
|
19
|
+
- !ruby/object:Gem::Dependency
|
20
|
+
name: rake
|
21
|
+
requirement: !ruby/object:Gem::Requirement
|
22
|
+
requirements:
|
23
|
+
- - ">="
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: '0'
|
26
|
+
type: :development
|
27
|
+
prerelease: false
|
28
|
+
version_requirements: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: mocha
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
description: brcep é uma das gems que compoem o Brazilian Rails
|
48
|
+
email:
|
49
|
+
- tapajos@gmail.com
|
50
|
+
- tinorj@gmail.com
|
51
|
+
- kupkovski@gmail.com
|
52
|
+
- vinicius.m.teles@gmail.com
|
53
|
+
- felipebarreto@gmail.com
|
54
|
+
- rafawalter@gmail.com
|
55
|
+
- cassiommc@gmail.com
|
56
|
+
executables: []
|
57
|
+
extensions: []
|
58
|
+
extra_rdoc_files: []
|
59
|
+
files:
|
60
|
+
- CHANGELOG
|
61
|
+
- MIT-LICENSE
|
62
|
+
- README.mkdn
|
63
|
+
- Rakefile
|
64
|
+
- lib/brcep.rb
|
65
|
+
- lib/brcep/busca_endereco.rb
|
66
|
+
- lib/brcep/convert_acronym.rb
|
67
|
+
- lib/brcep/version.rb
|
68
|
+
- test/busca_endereco_test.rb
|
69
|
+
- test/test_helper.rb
|
70
|
+
homepage: http://www.improveit.com.br/software_livre/brazilian_rails
|
71
|
+
licenses: []
|
72
|
+
metadata: {}
|
73
|
+
post_install_message:
|
74
|
+
rdoc_options: []
|
75
|
+
require_paths:
|
76
|
+
- lib
|
77
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
requirements:
|
88
|
+
- none
|
89
|
+
rubyforge_project: brcep-vandal
|
90
|
+
rubygems_version: 2.4.5
|
91
|
+
signing_key:
|
92
|
+
specification_version: 4
|
93
|
+
summary: brcep é uma das gems que compoem o Brazilian Rails
|
94
|
+
test_files: []
|