brcep 3.0.8 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/brcep/busca_endereco.rb +25 -55
- data/lib/brcep/version.rb +2 -2
- data/test/busca_endereco_test.rb +35 -125
- data/test/test_helper.rb +0 -1
- metadata +42 -70
- data/test/mocks/zip_04006000_bronze_business.xml +0 -33
- data/test/mocks/zip_20230024_buscar_cep.xml +0 -2
- data/test/mocks/zip_22640100.xml +0 -33
- data/test/mocks/zip_22640100_bronze_business.xml +0 -33
- data/test/mocks/zip_22640100_buscar_cep.xml +0 -12
- data/test/mocks/zip_invalid.xml +0 -23
- data/test/mocks/zip_not_found_bronze_business.xml +0 -23
- data/test/mocks/zip_not_found_buscar_cep.xml +0 -2
data/lib/brcep/busca_endereco.rb
CHANGED
@@ -1,19 +1,18 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
require 'net/http'
|
3
|
-
require '
|
3
|
+
require 'cgi'
|
4
|
+
require 'iconv'
|
4
5
|
|
5
6
|
# Este recurso tem como finalidade encontrar um endereço através de um CEP, e
|
6
|
-
# para isso ele utiliza o web service da
|
7
|
-
# e o web service do Buscar CEP (http://www.buscarcep.com.br). O segundo só é utilizado quando
|
8
|
-
# o primeiro está indisponível ou quando ele não encontra o endereço associado ao CEP informado.
|
7
|
+
# para isso ele utiliza o web service da Republica Virtual (http://cep.republicavirtual.com.br/web_cep.php)
|
9
8
|
# Obviamente, para utilizar este serviço é necessário uma conexão com a Internet.
|
10
9
|
#
|
11
10
|
#Como fazer a busca de endereço por cep?
|
12
11
|
#
|
13
|
-
# BuscaEndereco.por_cep(22640100) ==> ['Avenida', 'das
|
14
|
-
# BuscaEndereco.por_cep('22640100') ==> ['Avenida', 'das
|
15
|
-
# BuscaEndereco.por_cep('22640-100') ==> ['Avenida', 'das
|
16
|
-
# BuscaEndereco.por_cep('22.640-100') ==> ['Avenida', 'das
|
12
|
+
# BuscaEndereco.por_cep(22640100) ==> ['Avenida', 'das Américas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', '22640100']
|
13
|
+
# BuscaEndereco.por_cep('22640100') ==> ['Avenida', 'das Américas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', '22640100']
|
14
|
+
# BuscaEndereco.por_cep('22640-100') ==> ['Avenida', 'das Américas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', '22640100']
|
15
|
+
# BuscaEndereco.por_cep('22.640-100') ==> ['Avenida', 'das Américas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', '22640100']
|
17
16
|
# BuscaEndereco.por_cep('04006000') ==> ["Rua", "Doutor Tomaz Carvalhal", "Paraiso", "SP", "Sao Paulo", "04006000"]
|
18
17
|
#
|
19
18
|
# É feita uma validação para ver se o cep possui 8 caracteres após a remoção de '.' e '-'.
|
@@ -45,59 +44,30 @@ class BuscaEndereco
|
|
45
44
|
end
|
46
45
|
end
|
47
46
|
|
48
|
-
|
49
|
-
URL_WEB_SERVICE_BUSCAR_CEP = 'http://www.buscarcep.com.br/?cep=' #:nodoc:
|
50
|
-
|
51
|
-
# Elementos do XML retornado pelos web services
|
52
|
-
ELEMENTOS_XML_BRONZE_BUSINESS = %w(logradouro nome bairro UF cidade) #:nodoc:
|
53
|
-
ELEMENTOS_XML_BUSCAR_CEP = %w(tipo_logradouro logradouro bairro uf cidade) #:nodoc:
|
47
|
+
WEB_SERVICE_REPUBLICA_VIRTUAL_URL = "http://cep.republicavirtual.com.br/web_cep.php?formato=query_string&cep="
|
54
48
|
|
55
49
|
# Retorna um array com os dados de endereçamento para o cep informado ou um erro quando o serviço está indisponível,
|
56
50
|
# quando o cep informado possui um formato inválido ou quando o endereço não foi encontrado.
|
57
51
|
#
|
58
52
|
# Exemplo:
|
59
|
-
# BuscaEndereco.por_cep(22640100) ==> ['Avenida', 'das
|
53
|
+
# BuscaEndereco.por_cep(22640100) ==> ['Avenida', 'das Américas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', 22640100]
|
60
54
|
def self.por_cep(numero)
|
61
|
-
|
62
|
-
raise "O CEP informado possui um formato inválido."
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
private
|
76
|
-
|
77
|
-
def self.usar_web_service_da_bronze_business
|
78
|
-
@@response = Net::HTTP.Proxy(self.proxy_addr, self.proxy_port).get_response(URI.parse("#{URL_WEB_SERVICE_BRONZE_BUSINESS}#{@@cep}"))
|
79
|
-
raise "A busca de endereço por CEP através do web service da Bronze Business está indisponível." unless @@response.kind_of?(Net::HTTPSuccess)
|
80
|
-
|
81
|
-
@@doc = REXML::Document.new(@@response.body)
|
82
|
-
processar_xml ELEMENTOS_XML_BRONZE_BUSINESS
|
83
|
-
end
|
84
|
-
|
85
|
-
def self.usar_web_service_do_buscar_cep
|
86
|
-
@@response = Net::HTTP.Proxy(self.proxy_addr, self.proxy_port).get_response(URI.parse("#{URL_WEB_SERVICE_BUSCAR_CEP}#{@@cep}&formato=xml"))
|
87
|
-
raise "A busca de endereço por CEP está indisponível no momento." unless @@response.kind_of?(Net::HTTPSuccess)
|
88
|
-
|
89
|
-
@@doc = REXML::Document.new(@@response.body)
|
90
|
-
processar_xml ELEMENTOS_XML_BUSCAR_CEP
|
91
|
-
end
|
92
|
-
|
93
|
-
def self.processar_xml(elementos_do_xml)
|
94
|
-
elementos_do_xml.each do |e|
|
95
|
-
elemento = REXML::XPath.match(@@doc, "//#{e}").first
|
96
|
-
|
97
|
-
raise "CEP #{@@cep} não encontrado." if elemento.nil?
|
98
|
-
|
99
|
-
# Remove os acentos já que o Buscar Cep retorna o endereço com acento e a Bronze Business não
|
100
|
-
@@retorno << elemento.text
|
55
|
+
cep = numero.to_s.gsub(/[\.-]/, '')
|
56
|
+
raise "O CEP informado possui um formato inválido." unless cep.to_s.match(/^\d{8}$/)
|
57
|
+
|
58
|
+
response = Net::HTTP.Proxy(self.proxy_addr, self.proxy_port).get_response(URI.parse("#{WEB_SERVICE_REPUBLICA_VIRTUAL_URL}#{cep}"))
|
59
|
+
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)
|
60
|
+
|
61
|
+
doc = Hash[* CGI::parse(response.body).map {|k,v| [k,v[0]]}.flatten]
|
62
|
+
|
63
|
+
retorno = []
|
64
|
+
|
65
|
+
raise "CEP #{cep} não encontrado." unless [1,2].include?(doc['resultado'].to_i)
|
66
|
+
|
67
|
+
%w(tipo_logradouro logradouro bairro cidade uf).each do |field|
|
68
|
+
retorno << Iconv.conv("utf-8", "ISO-8859-1", doc[field])
|
101
69
|
end
|
70
|
+
|
71
|
+
retorno << cep
|
102
72
|
end
|
103
73
|
end
|
data/lib/brcep/version.rb
CHANGED
data/test/busca_endereco_test.rb
CHANGED
@@ -3,156 +3,66 @@ require File.dirname(__FILE__) + '/test_helper'
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'net/http'
|
5
5
|
require 'mocha'
|
6
|
+
require 'fakeweb'
|
6
7
|
|
7
|
-
|
8
|
+
FakeWeb.allow_net_connect = false
|
9
|
+
|
10
|
+
INVALID_ZIPS = [0, '0', '00', '000', '0000', '00000', '000000', '0000000', '4006000']
|
8
11
|
VALID_ZIPS = [22640100, '22640100', '22.640100', '22640-100', '22.640-100']
|
9
|
-
VALID_ZIPS_WITH_ZERO_AT_BEGINNING = ['
|
10
|
-
VALID_CEPS_NOT_FOUND_ON_BRONZE_BUSINESS = [20230024, '20230024', '20.230024', '20230-024', '20.230-024']
|
12
|
+
VALID_ZIPS_WITH_ZERO_AT_BEGINNING = ['05145100', '05145-100', '05.145-100']
|
11
13
|
ZIPS_WITH_NO_ADDRESS_ASSOCIATED = [12345678, '12345678', '12.345678', '12345-678', '12.345-678']
|
12
14
|
|
13
|
-
|
14
|
-
def initialize; end
|
15
|
-
end
|
16
|
-
|
17
|
-
class MockServerError < Net::HTTPServerError
|
18
|
-
def initialize;
|
19
|
-
@message = 'HTTPServiceUnavailable'
|
20
|
-
@code = '504'
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def limpa_cep(numero)
|
25
|
-
numero.to_s.gsub(/\./, '').gsub(/\-/, '')
|
26
|
-
end
|
15
|
+
URL = BuscaEndereco::WEB_SERVICE_REPUBLICA_VIRTUAL_URL
|
27
16
|
|
28
17
|
class BuscaEnderecoTest < Test::Unit::TestCase
|
29
18
|
def test_raise_without_service_on_both_web_services
|
30
|
-
|
31
|
-
|
32
|
-
Net::HTTP.expects(:get_response).returns(http_error_response)
|
33
|
-
Net::HTTP.expects(:get_response).returns(http_error_response)
|
34
|
-
|
19
|
+
FakeWeb.register_uri(:get, "#{URL}#{22640100}", :status => 504, :body => "Service Unavailable")
|
20
|
+
|
35
21
|
assert_raise RuntimeError, "A busca de endereço por CEP está indisponível no momento." do
|
36
|
-
BuscaEndereco.por_cep(
|
22
|
+
BuscaEndereco.por_cep(22640100)
|
37
23
|
end
|
38
24
|
end
|
39
25
|
|
40
|
-
|
41
|
-
|
26
|
+
INVALID_ZIPS.each do |invalid_zip|
|
27
|
+
define_method "test_raise_for_invalid_zip_code_#{invalid_zip}" do
|
42
28
|
assert_raise RuntimeError, "O CEP informado possui um formato inválido." do
|
43
29
|
BuscaEndereco.por_cep(invalid_zip)
|
44
30
|
end
|
45
31
|
end
|
46
32
|
end
|
47
33
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
limpa_cep(valid_zip)], BuscaEndereco.por_cep(valid_zip)
|
54
|
-
end
|
55
|
-
end
|
34
|
+
VALID_ZIPS.each do |valid_zip|
|
35
|
+
define_method "test_valid_code_#{valid_zip}" do
|
36
|
+
cep = VALID_ZIPS.first.to_s
|
37
|
+
expected = ['Avenida', 'das Américas', 'Barra da Tijuca', 'Rio de Janeiro', 'RJ', cep]
|
38
|
+
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"
|
56
39
|
|
57
|
-
|
58
|
-
VALID_ZIPS_WITH_ZERO_AT_BEGINNING.each do |valid_zip|
|
59
|
-
mock_get_response_from_bronze_business(limpa_cep(valid_zip))
|
40
|
+
FakeWeb.register_uri(:get, "#{URL}#{cep}", :body => body)
|
60
41
|
|
61
|
-
assert_equal
|
62
|
-
limpa_cep(valid_zip)], BuscaEndereco.por_cep(valid_zip)
|
42
|
+
assert_equal expected,BuscaEndereco.por_cep(valid_zip)
|
63
43
|
end
|
64
44
|
end
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
45
|
+
|
46
|
+
VALID_ZIPS_WITH_ZERO_AT_BEGINNING.each do |valid_zip|
|
47
|
+
define_method "test_valid_code_#{valid_zip}" do
|
48
|
+
cep = VALID_ZIPS_WITH_ZERO_AT_BEGINNING.first
|
49
|
+
expected = ["Avenida", "Raimundo Pereira de Magalhães", "Jardim Iris", "São Paulo", "SP", cep]
|
50
|
+
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"
|
51
|
+
|
52
|
+
FakeWeb.register_uri(:get, "#{URL}#{cep}", :body => body)
|
53
|
+
|
54
|
+
assert_equal expected, BuscaEndereco.por_cep(cep)
|
72
55
|
end
|
73
56
|
end
|
74
57
|
|
75
|
-
def
|
76
|
-
|
77
|
-
|
58
|
+
def test_should_raise_exception_when_invalid_code
|
59
|
+
cep = "12345678"
|
60
|
+
body = "&resultado=0&resultado_txt=servi%E7o+indispon%EDvel%2Fcep+inv%E1lido&uf=&cidade=&bairro=&tipo_logradouro=&logradouro="
|
61
|
+
|
62
|
+
assert_raise RuntimeError, "CEP #{cep} não encontrado." do
|
63
|
+
FakeWeb.register_uri(:get, "#{URL}#{cep}", :body => body)
|
78
64
|
|
79
|
-
|
80
|
-
BuscaEndereco.por_cep(cep_not_found_on_bronze_business)
|
65
|
+
BuscaEndereco.por_cep("12345678")
|
81
66
|
end
|
82
67
|
end
|
83
|
-
|
84
|
-
def test_should_raise_exception_when_search_for_zip_with_no_associated_address
|
85
|
-
ZIPS_WITH_NO_ADDRESS_ASSOCIATED.each do |zip_with_no_address_associated|
|
86
|
-
assert_raise RuntimeError, "CEP #{limpa_cep(zip_with_no_address_associated)} não encontrado." do
|
87
|
-
mock_get_response_when_theres_no_address_associated_with_zip
|
88
|
-
|
89
|
-
BuscaEndereco.por_cep(zip_with_no_address_associated)
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
private
|
95
|
-
|
96
|
-
def mock_get_response_from_bronze_business(zip_number)
|
97
|
-
xml_data = xml_data_from zip_name(zip_number, "bronze_business")
|
98
|
-
|
99
|
-
http_success_response = MockSuccess.new
|
100
|
-
http_success_response.expects(:body).returns(xml_data)
|
101
|
-
|
102
|
-
Net::HTTP.expects(:get_response).returns(http_success_response)
|
103
|
-
end
|
104
|
-
|
105
|
-
def mock_get_response_from_buscar_cep_when_bronze_business_is_unavailable(zip_number)
|
106
|
-
xml_data = xml_data_from zip_name(zip_number, "buscar_cep")
|
107
|
-
|
108
|
-
http_success_response = MockSuccess.new
|
109
|
-
http_success_response.expects(:body).returns(xml_data)
|
110
|
-
|
111
|
-
Net::HTTP.expects(:get_response).returns(http_success_response)
|
112
|
-
|
113
|
-
http_error_response = MockServerError.new
|
114
|
-
Net::HTTP.expects(:get_response).returns(http_error_response)
|
115
|
-
end
|
116
|
-
|
117
|
-
def mock_get_response_from_buscar_cep_when_address_not_found_on_bronze_business(zip_number)
|
118
|
-
xml_data_from_bronze_business = xml_data_from zip_name("not_found", "bronze_business")
|
119
|
-
xml_data_from_buscar_cep = xml_data_from zip_name(zip_number, "buscar_cep")
|
120
|
-
|
121
|
-
http_success_response_from_buscar_cep = MockSuccess.new
|
122
|
-
http_success_response_from_buscar_cep.expects(:body).returns(xml_data_from_buscar_cep)
|
123
|
-
Net::HTTP.expects(:get_response).returns(http_success_response_from_buscar_cep)
|
124
|
-
|
125
|
-
http_success_response_from_bronze_business = MockSuccess.new
|
126
|
-
http_success_response_from_bronze_business.expects(:body).returns(xml_data_from_bronze_business)
|
127
|
-
Net::HTTP.expects(:get_response).returns(http_success_response_from_bronze_business)
|
128
|
-
end
|
129
|
-
|
130
|
-
def mock_get_response_when_theres_no_address_associated_with_zip
|
131
|
-
xml_data_from_bronze_business = xml_data_from zip_name("not_found", "bronze_business")
|
132
|
-
xml_data_from_buscar_cep = xml_data_from zip_name("not_found", "buscar_cep")
|
133
|
-
|
134
|
-
http_success_response_from_buscar_cep = MockSuccess.new
|
135
|
-
http_success_response_from_buscar_cep.expects(:body).returns(xml_data_from_buscar_cep)
|
136
|
-
Net::HTTP.expects(:get_response).returns(http_success_response_from_buscar_cep)
|
137
|
-
|
138
|
-
http_success_response_from_bronze_business = MockSuccess.new
|
139
|
-
http_success_response_from_bronze_business.expects(:body).returns(xml_data_from_bronze_business)
|
140
|
-
Net::HTTP.expects(:get_response).returns(http_success_response_from_bronze_business)
|
141
|
-
end
|
142
|
-
|
143
|
-
def xml_data_from xml_mock
|
144
|
-
file = File.new(xml_mock)
|
145
|
-
|
146
|
-
xml_data = ''
|
147
|
-
|
148
|
-
while (line = file.gets)
|
149
|
-
xml_data << line
|
150
|
-
end
|
151
|
-
|
152
|
-
xml_data
|
153
|
-
end
|
154
|
-
|
155
|
-
def zip_name(nome, web_service)
|
156
|
-
File.join(File.dirname(__FILE__), 'mocks', "zip_#{nome}_#{web_service}.xml")
|
157
|
-
end
|
158
68
|
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,56 +1,46 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: brcep
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 3
|
7
|
-
- 0
|
8
|
-
- 8
|
9
|
-
version: 3.0.8
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 3.1.0
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
12
|
-
-
|
7
|
+
authors:
|
8
|
+
- Marcos Tapajós
|
13
9
|
- Celestino Gomes
|
14
10
|
- Andre Kupkosvki
|
15
|
-
-
|
11
|
+
- Vinícius Teles
|
16
12
|
- Felipe Barreto
|
17
13
|
- Rafael Walter
|
18
14
|
- Cassio Marques
|
19
15
|
autorequire:
|
20
16
|
bindir: bin
|
21
17
|
cert_chain: []
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
dependencies:
|
26
|
-
- !ruby/object:Gem::Dependency
|
18
|
+
date: 2012-02-26 00:00:00.000000000Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
27
21
|
name: rake
|
28
|
-
requirement: &
|
22
|
+
requirement: &2152246600 !ruby/object:Gem::Requirement
|
29
23
|
none: false
|
30
|
-
requirements:
|
31
|
-
- -
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
|
34
|
-
- 0
|
35
|
-
version: "0"
|
24
|
+
requirements:
|
25
|
+
- - ! '>='
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
36
28
|
type: :development
|
37
29
|
prerelease: false
|
38
|
-
version_requirements: *
|
39
|
-
- !ruby/object:Gem::Dependency
|
30
|
+
version_requirements: *2152246600
|
31
|
+
- !ruby/object:Gem::Dependency
|
40
32
|
name: mocha
|
41
|
-
requirement: &
|
33
|
+
requirement: &2152245040 !ruby/object:Gem::Requirement
|
42
34
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
|
47
|
-
- 0
|
48
|
-
version: "0"
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
49
39
|
type: :development
|
50
40
|
prerelease: false
|
51
|
-
version_requirements: *
|
52
|
-
description:
|
53
|
-
email:
|
41
|
+
version_requirements: *2152245040
|
42
|
+
description: brcep é uma das gems que compoem o Brazilian Rails
|
43
|
+
email:
|
54
44
|
- tapajos@gmail.com
|
55
45
|
- tinorj@gmail.com
|
56
46
|
- kupkovski@gmail.com
|
@@ -59,12 +49,9 @@ email:
|
|
59
49
|
- rafawalter@gmail.com
|
60
50
|
- cassiommc@gmail.com
|
61
51
|
executables: []
|
62
|
-
|
63
52
|
extensions: []
|
64
|
-
|
65
53
|
extra_rdoc_files: []
|
66
|
-
|
67
|
-
files:
|
54
|
+
files:
|
68
55
|
- Rakefile
|
69
56
|
- README
|
70
57
|
- CHANGELOG
|
@@ -73,48 +60,33 @@ files:
|
|
73
60
|
- lib/brcep/version.rb
|
74
61
|
- lib/brcep.rb
|
75
62
|
- test/busca_endereco_test.rb
|
76
|
-
- test/mocks/zip_04006000_bronze_business.xml
|
77
|
-
- test/mocks/zip_20230024_buscar_cep.xml
|
78
|
-
- test/mocks/zip_22640100.xml
|
79
|
-
- test/mocks/zip_22640100_bronze_business.xml
|
80
|
-
- test/mocks/zip_22640100_buscar_cep.xml
|
81
|
-
- test/mocks/zip_invalid.xml
|
82
|
-
- test/mocks/zip_not_found_bronze_business.xml
|
83
|
-
- test/mocks/zip_not_found_buscar_cep.xml
|
84
63
|
- test/test_helper.rb
|
85
|
-
has_rdoc: true
|
86
64
|
homepage: http://www.improveit.com.br/software_livre/brazilian_rails
|
87
65
|
licenses: []
|
88
|
-
|
89
66
|
post_install_message:
|
90
67
|
rdoc_options: []
|
91
|
-
|
92
|
-
require_paths:
|
68
|
+
require_paths:
|
93
69
|
- lib
|
94
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
95
71
|
none: false
|
96
|
-
requirements:
|
97
|
-
- -
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
|
100
|
-
segments:
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
segments:
|
101
77
|
- 0
|
102
|
-
|
103
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
|
+
hash: 3897089543070755465
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
80
|
none: false
|
105
|
-
requirements:
|
106
|
-
- -
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
|
109
|
-
|
110
|
-
- 0
|
111
|
-
version: "0"
|
112
|
-
requirements:
|
81
|
+
requirements:
|
82
|
+
- - ! '>='
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
requirements:
|
113
86
|
- none
|
114
87
|
rubyforge_project: brcep
|
115
|
-
rubygems_version: 1.
|
88
|
+
rubygems_version: 1.8.15
|
116
89
|
signing_key:
|
117
90
|
specification_version: 3
|
118
|
-
summary:
|
91
|
+
summary: brcep é uma das gems que compoem o Brazilian Rails
|
119
92
|
test_files: []
|
120
|
-
|
@@ -1,33 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<DataSet xmlns="http://tempuri.org/">
|
3
|
-
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
4
|
-
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
|
5
|
-
<xs:complexType>
|
6
|
-
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
7
|
-
<xs:element name="tbCEP">
|
8
|
-
<xs:complexType>
|
9
|
-
<xs:sequence>
|
10
|
-
<xs:element name="logradouro" type="xs:string" minOccurs="0" />
|
11
|
-
<xs:element name="nome" type="xs:string" minOccurs="0" />
|
12
|
-
<xs:element name="bairro" type="xs:string" minOccurs="0" />
|
13
|
-
<xs:element name="UF" type="xs:string" minOccurs="0" />
|
14
|
-
<xs:element name="cidade" type="xs:string" minOccurs="0" />
|
15
|
-
</xs:sequence>
|
16
|
-
</xs:complexType>
|
17
|
-
</xs:element>
|
18
|
-
</xs:choice>
|
19
|
-
</xs:complexType>
|
20
|
-
</xs:element>
|
21
|
-
</xs:schema>
|
22
|
-
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
|
23
|
-
<NewDataSet xmlns="">
|
24
|
-
<tbCEP diffgr:id="tbCEP1" msdata:rowOrder="0">
|
25
|
-
<logradouro>Rua</logradouro>
|
26
|
-
<nome>Doutor Tomaz Carvalhal</nome>
|
27
|
-
<bairro>Paraiso</bairro>
|
28
|
-
<UF>SP</UF>
|
29
|
-
<cidade>Sao Paulo</cidade>
|
30
|
-
</tbCEP>
|
31
|
-
</NewDataSet>
|
32
|
-
</diffgr:diffgram>
|
33
|
-
</DataSet>
|
@@ -1,2 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="ISO-8859-1"?>
|
2
|
-
<webservicecep><cep>20230024</cep><uf>RJ</uf><cidade>Rio de Janeiro</cidade><bairro>Centro</bairro><tipo_logradouro>Rua</tipo_logradouro><logradouro>Washington Lu�s</logradouro><resultado>1</resultado><resultado_txt>sucesso. cep encontrado</resultado_txt></webservicecep>
|
data/test/mocks/zip_22640100.xml
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<DataSet xmlns="http://tempuri.org/">
|
3
|
-
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
4
|
-
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
|
5
|
-
<xs:complexType>
|
6
|
-
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
7
|
-
<xs:element name="tbCEP">
|
8
|
-
<xs:complexType>
|
9
|
-
<xs:sequence>
|
10
|
-
<xs:element name="logradouro" type="xs:string" minOccurs="0" />
|
11
|
-
<xs:element name="nome" type="xs:string" minOccurs="0" />
|
12
|
-
<xs:element name="bairro" type="xs:string" minOccurs="0" />
|
13
|
-
<xs:element name="UF" type="xs:string" minOccurs="0" />
|
14
|
-
<xs:element name="cidade" type="xs:string" minOccurs="0" />
|
15
|
-
</xs:sequence>
|
16
|
-
</xs:complexType>
|
17
|
-
</xs:element>
|
18
|
-
</xs:choice>
|
19
|
-
</xs:complexType>
|
20
|
-
</xs:element>
|
21
|
-
</xs:schema>
|
22
|
-
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
|
23
|
-
<NewDataSet xmlns="">
|
24
|
-
<tbCEP diffgr:id="tbCEP1" msdata:rowOrder="0">
|
25
|
-
<logradouro>Avenida</logradouro>
|
26
|
-
<nome>das Americas</nome>
|
27
|
-
<bairro>Barra da Tijuca</bairro>
|
28
|
-
<UF>RJ</UF>
|
29
|
-
<cidade>Rio de Janeiro</cidade>
|
30
|
-
</tbCEP>
|
31
|
-
</NewDataSet>
|
32
|
-
</diffgr:diffgram>
|
33
|
-
</DataSet>
|
@@ -1,33 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<DataSet xmlns="http://tempuri.org/">
|
3
|
-
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
4
|
-
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
|
5
|
-
<xs:complexType>
|
6
|
-
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
7
|
-
<xs:element name="tbCEP">
|
8
|
-
<xs:complexType>
|
9
|
-
<xs:sequence>
|
10
|
-
<xs:element name="logradouro" type="xs:string" minOccurs="0" />
|
11
|
-
<xs:element name="nome" type="xs:string" minOccurs="0" />
|
12
|
-
<xs:element name="bairro" type="xs:string" minOccurs="0" />
|
13
|
-
<xs:element name="UF" type="xs:string" minOccurs="0" />
|
14
|
-
<xs:element name="cidade" type="xs:string" minOccurs="0" />
|
15
|
-
</xs:sequence>
|
16
|
-
</xs:complexType>
|
17
|
-
</xs:element>
|
18
|
-
</xs:choice>
|
19
|
-
</xs:complexType>
|
20
|
-
</xs:element>
|
21
|
-
</xs:schema>
|
22
|
-
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
|
23
|
-
<NewDataSet xmlns="">
|
24
|
-
<tbCEP diffgr:id="tbCEP1" msdata:rowOrder="0">
|
25
|
-
<logradouro>Avenida</logradouro>
|
26
|
-
<nome>das Americas</nome>
|
27
|
-
<bairro>Barra da Tijuca</bairro>
|
28
|
-
<UF>RJ</UF>
|
29
|
-
<cidade>Rio de Janeiro</cidade>
|
30
|
-
</tbCEP>
|
31
|
-
</NewDataSet>
|
32
|
-
</diffgr:diffgram>
|
33
|
-
</DataSet>
|
@@ -1,12 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1" ?>
|
2
|
-
|
3
|
-
<webservicecep>
|
4
|
-
<cep>22640100</cep>
|
5
|
-
<uf>RJ</uf>
|
6
|
-
<cidade>Rio de Janeiro</cidade>
|
7
|
-
<bairro>Barra da Tijuca</bairro>
|
8
|
-
<tipo_logradouro>Avenida</tipo_logradouro>
|
9
|
-
<logradouro>das Am�ricas</logradouro>
|
10
|
-
<resultado>1</resultado>
|
11
|
-
<resultado_txt>sucesso. cep encontrado</resultado_txt>
|
12
|
-
</webservicecep>
|
data/test/mocks/zip_invalid.xml
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<DataSet xmlns="http://tempuri.org/">
|
3
|
-
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
4
|
-
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
|
5
|
-
<xs:complexType>
|
6
|
-
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
7
|
-
<xs:element name="tbCEP">
|
8
|
-
<xs:complexType>
|
9
|
-
<xs:sequence>
|
10
|
-
<xs:element name="logradouro" type="xs:string" minOccurs="0" />
|
11
|
-
<xs:element name="nome" type="xs:string" minOccurs="0" />
|
12
|
-
<xs:element name="bairro" type="xs:string" minOccurs="0" />
|
13
|
-
<xs:element name="UF" type="xs:string" minOccurs="0" />
|
14
|
-
<xs:element name="cidade" type="xs:string" minOccurs="0" />
|
15
|
-
</xs:sequence>
|
16
|
-
</xs:complexType>
|
17
|
-
</xs:element>
|
18
|
-
</xs:choice>
|
19
|
-
</xs:complexType>
|
20
|
-
</xs:element>
|
21
|
-
</xs:schema>
|
22
|
-
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" />
|
23
|
-
</DataSet>
|
@@ -1,23 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<DataSet xmlns="http://tempuri.org/">
|
3
|
-
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
4
|
-
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
|
5
|
-
<xs:complexType>
|
6
|
-
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
7
|
-
<xs:element name="tbCEP">
|
8
|
-
<xs:complexType>
|
9
|
-
<xs:sequence>
|
10
|
-
<xs:element name="logradouro" type="xs:string" minOccurs="0"/>
|
11
|
-
<xs:element name="nome" type="xs:string" minOccurs="0"/>
|
12
|
-
<xs:element name="bairro" type="xs:string" minOccurs="0"/>
|
13
|
-
<xs:element name="UF" type="xs:string" minOccurs="0"/>
|
14
|
-
<xs:element name="cidade" type="xs:string" minOccurs="0"/>
|
15
|
-
</xs:sequence>
|
16
|
-
</xs:complexType>
|
17
|
-
</xs:element>
|
18
|
-
</xs:choice>
|
19
|
-
</xs:complexType>
|
20
|
-
</xs:element>
|
21
|
-
</xs:schema>
|
22
|
-
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"/>
|
23
|
-
</DataSet>
|