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.
@@ -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('00000000') ==> RuntimeError 'O CEP informado possui um formato inválido.'
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
- # to_i.to_s adicionado no fim para que o CEP '00000000' não passe pela exceção
58
- raise "O CEP informado possui um formato inválido." if numero.to_s.gsub(/\./, '').gsub(/\-/, '').to_i.to_s.length != 8
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
@@ -2,7 +2,7 @@ module BrCep
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 2
4
4
  MINOR = 1
5
- TINY = 3
5
+ TINY = 4
6
6
 
7
7
  STRING = "#{MAJOR}.#{MINOR}.#{TINY}"
8
8
  end
@@ -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(/\-/, '').to_i
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.3
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-03 00:00:00 -03:00
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
- - lib/brcep.rb
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/zip_not_found_buscar_cep.xml
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: