consulta_cep 0.0.1

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.
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in consulta_cep.gemspec
4
+ gemspec
@@ -0,0 +1,16 @@
1
+ == ConsultaCep
2
+
3
+ Uma gem bem simples pra fazer busca de endereços no site brasileiro dos correios.
4
+
5
+ == Example
6
+
7
+ include ConsultaCep
8
+
9
+ # Procurando dados por cep
10
+ Consulta.cep '12228-462'
11
+
12
+ # Procurando dados por endereço
13
+ Consulta.endereco 'Avenida Paulista, São Paulo'
14
+
15
+ # Procurando dados por endereço refinado
16
+ Consulta.endereco 'Avenida Paulista', :cidade => 'São Paulo', :estado => 'SP'
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ require 'rubygems'
5
+ require 'consulta_cep'
6
+
7
+ ConsultaCep::Consulta.cep(ARGV[0]).each do |endereco|
8
+ output = [
9
+ "ENDEREÇO: #{endereco[:endereco]}",
10
+ "BAIRRO: #{endereco[:bairro ]}",
11
+ "CIDADE: #{endereco[:cidade ]}",
12
+ "ESTADO: #{endereco[:estado ]}",
13
+ "CEP: #{endereco[:cep ]}\n\n"
14
+ ].join("\n")
15
+
16
+ puts output
17
+ end
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "consulta_cep/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "consulta_cep"
7
+ s.version = ConsultaCep::VERSION
8
+ s.authors = ["Dalton"]
9
+ s.email = ["dalthon@dlt.local"]
10
+ s.homepage = ""
11
+ s.summary = %q{A very simple gem to fetch brazilian postalcodes from www.correios.com.br }
12
+ s.description = %q{A very simple gem to fetch brazilian postalcodes from www.correios.com.br }
13
+
14
+ s.rubyforge_project = "consulta_cep"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_dependency 'mechanize'
22
+
23
+ # specify any dependencies here; for example:
24
+ # s.add_development_dependency "rspec"
25
+ # s.add_runtime_dependency "rest-client"
26
+ end
@@ -0,0 +1,100 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require 'logger'
4
+ require 'mechanize'
5
+ require "consulta_cep/version"
6
+
7
+ module ConsultaCep
8
+ class Consulta
9
+ ESTADOS = ['AC', 'AL', 'AM', 'AP', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MG', 'MS', 'MT', 'PA', 'PB', 'PE', 'PI', 'PR', 'RJ', 'RN', 'RO', 'RR', 'RS', 'SC', 'SE', 'SP', 'TO']
10
+
11
+ TIPOS = [
12
+ 'Aeroporto', 'Alameda', 'Área', 'Avenida', 'Campo', 'Chácara', 'Colônia', 'Condomínio', 'Conjunto', 'Distrito', 'Esplanada', 'Estação', 'Estrada', 'Favela',
13
+ 'Fazenda', 'Feira', 'Jardim', 'Ladeira', 'Lago', 'Lagoa', 'Largo', 'Loteamento', 'Morro', 'Núcleo', 'Parque', 'Passarela', 'Pátio', 'Praça', 'Quadra',
14
+ 'Recanto', 'Residencial', 'Rodovia', 'Rua', 'Setor', 'Sítio', 'Travessa', 'Trecho', 'Trevo', 'Vale', 'Vereda', 'Via', 'Viaduto', 'Viela', 'Vila'
15
+ ]
16
+
17
+ def initialize
18
+ @agent = Mechanize.new{ |a| a.log = Logger.new(STDERR) }
19
+ @agent.user_agent_alias = 'Windows IE 7'
20
+ @last_page = @agent.get 'http://correios.com.br'
21
+ sleep 0.1
22
+ end
23
+
24
+ def cep(cep)
25
+ @last_page = @agent.post 'http://www.buscacep.correios.com.br/servicos/dnec/consultaLogradouroAction.do',
26
+ :EndRow => 10,
27
+ :Metodo => 'listaLogradouro',
28
+ :StartRow => 1,
29
+ :TipoConsulta => 'cep',
30
+ :CEP => cep
31
+
32
+ parse_lista @last_page
33
+ end
34
+
35
+ def endereco(endereco)
36
+ @last_page = @agent.post 'http://www.buscacep.correios.com.br/servicos/dnec/consultaLogradouroAction.do',
37
+ :EndRow => 10,
38
+ :Metodo => 'listaLogradouro',
39
+ :StartRow => 1,
40
+ :TipoCep => 'LOG',
41
+ :TipoConsulta => 'relaxation',
42
+ :cfm => 1,
43
+ :relaxation => endereco,
44
+ :semelhante => 'S'
45
+
46
+ parse_lista @last_page
47
+ end
48
+
49
+ def endereco_refinado(endereco, params)
50
+ @last_page = @agent.post 'http://www.buscacep.correios.com.br/servicos/dnec/consultaLogradouroAction.do',
51
+ :EndRow => 10,
52
+ :Localidade => params[:cidade],
53
+ :Logradouro => endereco,
54
+ :Metodo => 'listaLogradouro',
55
+ :Numeor => params[:numero],
56
+ :StartRow => 1,
57
+ :Tipo => (params[:tipo] || ''),
58
+ :TipoConsulta => 'logradouro',
59
+ :UF => params[:estado],
60
+ :cfm => 1
61
+
62
+ parse_lista @last_page
63
+ end
64
+
65
+ def self.cep(cep_number)
66
+ self.new.cep cep_number.gsub(/[^\d]/, '')
67
+ end
68
+
69
+ def self.endereco(endereco)
70
+ self.new.endereco endereco
71
+ end
72
+
73
+ def self.endereco_refinado(endereco, params={})
74
+ self.new.endereco_refinado endereco, params
75
+ end
76
+
77
+ protected
78
+ def parse_lista(page)
79
+ elements = []
80
+ page.search('tr[@onclick]').each do |row|
81
+ data = row.search('td').map &:text
82
+ element = {
83
+ :endereco => data[0],
84
+ :bairro => data[1],
85
+ :cidade => data[2],
86
+ :estado => data[3],
87
+ :cep => data[4]
88
+ }
89
+ elements << element
90
+ end
91
+ elements
92
+ end
93
+ end
94
+ end
95
+
96
+ include ConsultaCep
97
+
98
+ Consulta.cep '12228462'
99
+ Consulta.endereco 'Rua Alice Costa, 39'
100
+ Consulta.endereco_refinado 'H8C', :cidade => 'São José dos Campos', :estado => 'SP'
@@ -0,0 +1,3 @@
1
+ module ConsultaCep
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: consulta_cep
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Dalton
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-20 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: mechanize
16
+ requirement: &70173556424940 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70173556424940
25
+ description: ! 'A very simple gem to fetch brazilian postalcodes from www.correios.com.br '
26
+ email:
27
+ - dalthon@dlt.local
28
+ executables:
29
+ - consulta_cep
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - .gitignore
34
+ - Gemfile
35
+ - README.rdoc
36
+ - Rakefile
37
+ - bin/consulta_cep
38
+ - consulta_cep.gemspec
39
+ - lib/consulta_cep.rb
40
+ - lib/consulta_cep/version.rb
41
+ homepage: ''
42
+ licenses: []
43
+ post_install_message:
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ none: false
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubyforge_project: consulta_cep
61
+ rubygems_version: 1.8.10
62
+ signing_key:
63
+ specification_version: 3
64
+ summary: A very simple gem to fetch brazilian postalcodes from www.correios.com.br
65
+ test_files: []