brcep 2.1.3 → 2.1.4
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 +12 -11
- data/lib/brcep/version.rb +1 -1
- data/test/busca_endereco_test.rb +14 -4
- data/test/mocks/zip_04006000_bronze_business.xml +33 -0
- metadata +8 -7
data/lib/brcep/busca_endereco.rb
CHANGED
@@ -9,12 +9,15 @@ require 'rexml/document'
|
|
9
9
|
#
|
10
10
|
#Como fazer a busca de endereço por cep?
|
11
11
|
#
|
12
|
-
# BuscaEndereco.por_cep(22640100) ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', 22640100]
|
13
|
-
# BuscaEndereco.por_cep('22640100') ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', 22640100]
|
14
|
-
# BuscaEndereco.por_cep('22640-100') ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', 22640100]
|
15
|
-
# BuscaEndereco.por_cep('22.640-100') ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', 22640100]
|
16
|
-
# BuscaEndereco.por_cep('
|
17
|
-
#
|
12
|
+
# BuscaEndereco.por_cep(22640100) ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', '22640100']
|
13
|
+
# BuscaEndereco.por_cep('22640100') ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', '22640100']
|
14
|
+
# BuscaEndereco.por_cep('22640-100') ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', '22640100']
|
15
|
+
# BuscaEndereco.por_cep('22.640-100') ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', '22640100']
|
16
|
+
# BuscaEndereco.por_cep('04006000') ==> ["Rua", "Doutor Tomaz Carvalhal", "Paraiso", "SP", "Sao Paulo", "04006000"]
|
17
|
+
#
|
18
|
+
# É feita uma validação para ver se o cep possui 8 caracteres após a remoção de '.' e '-'.
|
19
|
+
# BuscaEndereco.por_cep('0000000') ==> RuntimeError 'O CEP informado possui um formato inválido.'
|
20
|
+
#
|
18
21
|
#Se necessário usar proxy, faça (de preferência em environment.rb):
|
19
22
|
# BuscaEndereco.proxy_addr= 'endereco.do.proxy'
|
20
23
|
# BuscaEndereco.proxy_port= 999 # porta a ser utilizada
|
@@ -54,10 +57,8 @@ class BuscaEndereco
|
|
54
57
|
# Exemplo:
|
55
58
|
# BuscaEndereco.por_cep(22640100) ==> ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro', 22640100]
|
56
59
|
def self.por_cep(numero)
|
57
|
-
|
58
|
-
raise "O CEP informado possui um formato inválido." if
|
59
|
-
|
60
|
-
@@cep = numero.to_s.gsub(/\./, '').gsub(/\-/, '').to_i
|
60
|
+
@@cep = numero.to_s.gsub(/\./, '').gsub(/\-/, '')
|
61
|
+
raise "O CEP informado possui um formato inválido." if @@cep.length != 8
|
61
62
|
|
62
63
|
@@retorno = []
|
63
64
|
|
@@ -98,4 +99,4 @@ class BuscaEndereco
|
|
98
99
|
@@retorno << elemento.text
|
99
100
|
end
|
100
101
|
end
|
101
|
-
end
|
102
|
+
end
|
data/lib/brcep/version.rb
CHANGED
data/test/busca_endereco_test.rb
CHANGED
@@ -3,8 +3,9 @@ require 'rubygems'
|
|
3
3
|
require 'net/http'
|
4
4
|
require 'mocha'
|
5
5
|
|
6
|
-
INVALID_ZIPS = [0, '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000']
|
6
|
+
INVALID_ZIPS = [0, '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '4006000']
|
7
7
|
VALID_ZIPS = [22640100, '22640100', '22.640100', '22640-100', '22.640-100']
|
8
|
+
VALID_ZIPS_WITH_ZERO_AT_BEGINNING = ['04006000', '04006-000', '04.006-000']
|
8
9
|
VALID_CEPS_NOT_FOUND_ON_BRONZE_BUSINESS = [20230024, '20230024', '20.230024', '20230-024', '20.230-024']
|
9
10
|
ZIPS_WITH_NO_ADDRESS_ASSOCIATED = [12345678, '12345678', '12.345678', '12345-678', '12.345-678']
|
10
11
|
|
@@ -20,7 +21,7 @@ class MockServerError < Net::HTTPServerError
|
|
20
21
|
end
|
21
22
|
|
22
23
|
def limpa_cep(numero)
|
23
|
-
numero.to_s.gsub(/\./, '').gsub(/\-/, '')
|
24
|
+
numero.to_s.gsub(/\./, '').gsub(/\-/, '')
|
24
25
|
end
|
25
26
|
|
26
27
|
class BuscaEnderecoTest < Test::Unit::TestCase
|
@@ -46,12 +47,21 @@ class BuscaEnderecoTest < Test::Unit::TestCase
|
|
46
47
|
def test_valid_code_on_bronze_business
|
47
48
|
VALID_ZIPS.each do |valid_zip|
|
48
49
|
mock_get_response_from_bronze_business(limpa_cep(valid_zip))
|
49
|
-
|
50
|
+
|
50
51
|
assert_equal ['Avenida', 'das Americas', 'Barra da Tijuca', 'RJ', 'Rio de Janeiro',
|
51
52
|
limpa_cep(valid_zip)], BuscaEndereco.por_cep(valid_zip)
|
52
53
|
end
|
53
54
|
end
|
54
55
|
|
56
|
+
def test_valid_code_with_zero_at_beginning_on_bronze_business
|
57
|
+
VALID_ZIPS_WITH_ZERO_AT_BEGINNING.each do |valid_zip|
|
58
|
+
mock_get_response_from_bronze_business(limpa_cep(valid_zip))
|
59
|
+
|
60
|
+
assert_equal ['Rua', 'Doutor Tomaz Carvalhal', 'Paraiso', 'SP', 'Sao Paulo',
|
61
|
+
limpa_cep(valid_zip)], BuscaEndereco.por_cep(valid_zip)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
55
65
|
def test_valid_code_on_buscar_cep_when_bronze_business_is_unavailable
|
56
66
|
VALID_ZIPS.each do |valid_zip|
|
57
67
|
mock_get_response_from_buscar_cep_when_bronze_business_is_unavailable(limpa_cep(valid_zip))
|
@@ -144,4 +154,4 @@ class BuscaEnderecoTest < Test::Unit::TestCase
|
|
144
154
|
def zip_name(nome, web_service)
|
145
155
|
File.join(File.dirname(__FILE__), 'mocks', "zip_#{nome}_#{web_service}.xml")
|
146
156
|
end
|
147
|
-
end
|
157
|
+
end
|
@@ -0,0 +1,33 @@
|
|
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>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brcep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Marcos Tapaj\xC3\xB3s"
|
@@ -12,7 +12,7 @@ autorequire:
|
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
14
|
|
15
|
-
date: 2009-03-
|
15
|
+
date: 2009-03-04 00:00:00 -03:00
|
16
16
|
default_executable:
|
17
17
|
dependencies: []
|
18
18
|
|
@@ -29,20 +29,21 @@ files:
|
|
29
29
|
- README
|
30
30
|
- CHANGELOG
|
31
31
|
- MIT-LICENSE
|
32
|
+
- lib/brcep.rb
|
32
33
|
- lib/brcep
|
33
34
|
- lib/brcep/busca_endereco.rb
|
34
35
|
- lib/brcep/version.rb
|
35
|
-
-
|
36
|
+
- test/test_helper.rb
|
36
37
|
- test/busca_endereco_test.rb
|
37
38
|
- test/mocks
|
38
|
-
- test/mocks/zip_20230024_buscar_cep.xml
|
39
39
|
- test/mocks/zip_22640100.xml
|
40
|
-
- test/mocks/zip_22640100_bronze_business.xml
|
41
40
|
- test/mocks/zip_22640100_buscar_cep.xml
|
41
|
+
- test/mocks/zip_22640100_bronze_business.xml
|
42
|
+
- test/mocks/zip_not_found_buscar_cep.xml
|
43
|
+
- test/mocks/zip_20230024_buscar_cep.xml
|
42
44
|
- test/mocks/zip_invalid.xml
|
43
45
|
- test/mocks/zip_not_found_bronze_business.xml
|
44
|
-
- test/mocks/
|
45
|
-
- test/test_helper.rb
|
46
|
+
- test/mocks/zip_04006000_bronze_business.xml
|
46
47
|
has_rdoc: true
|
47
48
|
homepage: http://www.improveit.com.br/software_livre/brazilian_rails
|
48
49
|
post_install_message:
|