brcep 2.1.3 → 2.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: