politicosbr 1.0.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/politicosbr.rb +39 -28
  3. metadata +28 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ebb0caa2c3a6be1a4fc696cf616b1aee0667e8a
4
- data.tar.gz: a92962b9f86982cf95880751b2990495b4224949
3
+ metadata.gz: 2bf05f180be927c062d4d7518232ed786bc2ff28
4
+ data.tar.gz: 9d71b969354cdd480407f1e25cad958678f085d3
5
5
  SHA512:
6
- metadata.gz: 20b2a713efd9985bf4e1a8747b27e2e2585ce68d52b3a3debd2f5d215e4b20e6b8089bc3b48b63866aa4206bb5cec859769895f7101014262d44f8272151d521
7
- data.tar.gz: 8d7ec16377ddbe97118b943765b035eb6efde53e59f91e87a6b33eac6cb786f10961baff527b1079958801d25e324608ed48bf7921c033fb4c0b0352fa65e4c5
6
+ metadata.gz: 073c04f0f2929b5f841dada77679b94365d0d2cb67514bf70c78717578d7630710e36bffb5062b6ffa9507d8dc0067754787e4a9d7a77294375de2565bfea1ab
7
+ data.tar.gz: ae187c5ce3c51ab055a4b46eb48609b2e5f32416c1fe89bbeeafee1289ee3754f08272508dc614c8a4b04e0e0ea1fdd2589de02e4bb027222d1a46b0a86d6214
data/lib/politicosbr.rb CHANGED
@@ -1,46 +1,57 @@
1
- require 'http'
1
+ require 'open-uri'
2
+ require 'nokogiri'
3
+ require 'httparty'
2
4
  require 'roo-xls'
3
5
 
4
- class PoliticosBR
6
+ module PoliticosBR
5
7
 
6
8
  def self.deputados
7
- ssheet = HTTP.get('http://www.camara.gov.br/internet/deputado/deputado.xls')
9
+ keys = [ :nome, :partido, :estado, :mandato, :fones, :email ]
10
+ camara = Array.new
11
+ ssheet = HTTParty.get('http://www.camara.gov.br/internet/deputado/deputado.xls')
8
12
  planilha = ssheet.to_s
9
- planilha.force_encoding("UTF-8")
10
- arq = File.open("deputados.xls","w")
13
+ planilha.force_encoding('UTF-8')
14
+ arq = File.open('deputados.xls','w')
11
15
  arq.write(planilha)
12
16
  arq.close
13
- file_basename = File.basename("deputados.xls", ".xls")
14
- xls = Roo::Excel.new("deputados.xls")
17
+ file_basename = File.basename('deputados.xls', '.xls')
18
+ xls = Roo::Excel.new('deputados.xls')
15
19
  xls.to_csv("#{file_basename}.csv")
16
20
  x = Array.new
17
21
  File.readlines("#{file_basename}.csv").each do |linha|
18
- campos = linha.split(",")
19
- campos.each do |campo|
20
- if campo.index("@")
21
- p1 = campo.slice(1,campo.length)
22
- p2 = p1.slice(0,p1.length-1)
23
- x.push(p2)
24
- end
25
- end
22
+ campos = linha.split(',')
23
+ campos.each_index { |i|
24
+ campos[i] = campos[i].delete '"'
25
+ }
26
+ deputado = Hash.new
27
+ deputado[:nome] = campos[0]
28
+ deputado[:partido] = campos[1]
29
+ deputado[:estado] = campos[2]
30
+ deputado[:mandato] = ''
31
+ deputado[:fones] = '(61) ' + campos[11] + ' | (61) ' + campos[12]
32
+ deputado[:email] = campos[15]
33
+ camara.push(deputado)
26
34
  end
27
- x
35
+ camara
28
36
  end
29
37
 
30
38
  def self.senadores
31
- page_content = HTTP.get('http://www25.senado.leg.br/web/senadores/em-exercicio')
32
- spc = page_content.to_s
33
- spc.force_encoding("UTF-8")
34
- lista1 = spc.split
35
- x = Array.new
36
- lista1.each do |p|
37
- if p.index("@")
38
- p1 = p.slice(4,p.length)
39
- p2 = p1.slice(0,p1.length-5)
40
- x.push(p2)
39
+ keys = [ :nome, :partido, :estado, :mandato, :fones, :email ]
40
+ senado = Array.new
41
+ senador = Hash.new
42
+ doc = Nokogiri::HTML(open('http://www25.senado.leg.br/web/senadores/em-exercicio/-/e/por-nome'))
43
+ tds = doc.xpath('//td').to_a
44
+ tds.each_index{ |i|
45
+ rem = i % 6
46
+ if (rem == 0) then
47
+ if (!senador.empty?) then
48
+ senado.push(senador)
49
+ end
50
+ senador = Hash.new
41
51
  end
42
- end
43
- x
52
+ senador[keys[rem]] = tds[i].content
53
+ }
54
+ senado
44
55
  end
45
56
 
46
57
  def self.todos
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: politicosbr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edvaldo Silva de Almeida Jr.
@@ -11,25 +11,45 @@ cert_chain: []
11
11
  date: 2015-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: http
14
+ name: nokogiri
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.9'
19
+ version: '1.6'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.9.8
22
+ version: 1.6.6.2
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '0.9'
29
+ version: '1.6'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 0.9.8
32
+ version: 1.6.6.2
33
+ - !ruby/object:Gem::Dependency
34
+ name: httparty
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.13'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.13.7
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.13'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.13.7
33
53
  - !ruby/object:Gem::Dependency
34
54
  name: roo-xls
35
55
  requirement: !ruby/object:Gem::Requirement
@@ -50,7 +70,7 @@ dependencies:
50
70
  - - ">="
51
71
  - !ruby/object:Gem::Version
52
72
  version: 1.0.0
53
- description: Uma gem para obter listas atualizadas de e-mails de deputados federais
73
+ description: Uma gem para obter listas atualizadas com os dados de deputados federais
54
74
  e senadores brasileiros.
55
75
  email: edvaldoajunior@gmail.com
56
76
  executables:
@@ -81,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
101
  version: '0'
82
102
  requirements: []
83
103
  rubyforge_project:
84
- rubygems_version: 2.4.8
104
+ rubygems_version: 2.5.1
85
105
  signing_key:
86
106
  specification_version: 4
87
107
  summary: PoliticosBR