politicosbr 2.0.1 → 2.1.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 +53 -52
  3. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a38045f9bb368b350b520b2dfa8154b617582ee1
4
- data.tar.gz: 7282d0ed18658b2acb02f0a625671cdfd9457b13
3
+ metadata.gz: 5470848dc729ff6d15a74d765b85a6c84c7e384f
4
+ data.tar.gz: eea54a993c85ca884eb8c574c36dc26059d124dc
5
5
  SHA512:
6
- metadata.gz: 2b3e1d262c65476d1fc5e05123cac8efaf561ec822d37e9a7f5b7ca90d7a2ba3a540c33e173750de613a6d63fd68e8bd30677be97acb759416160ff82745280d
7
- data.tar.gz: 0092c7caddc413079f85ed700561046bc0c6f5658c606664a69e9f95b93ec53f92dcf6b7432d2b85d98074c13a75cd6f75242afae5fb002085ce3cb845eb63cd
6
+ metadata.gz: caae85ab2e514823ac4062305d16257b40498bdf603e063a4022df2cef7695482dd72268b847d9b90955a2e8b34ee99a03664b906892b5ee903dc76f787a1dc5
7
+ data.tar.gz: 3d3791c1b2d2fbf8b7c34b2ea332e59abd46446907b7775bdcc82874d285652d4f1273f0c2c1a9a1133fc3759303202ac63e39ccc7517686391cb6b9c592d3c3
data/lib/politicosbr.rb CHANGED
@@ -4,63 +4,64 @@ require 'httparty'
4
4
  require 'roo-xls'
5
5
 
6
6
  module PoliticosBR
7
-
8
- def self.deputados
9
- camara = Array.new
10
- ssheet = HTTParty.get('http://www.camara.gov.br/internet/deputado/deputado.xls')
11
- planilha = ssheet.to_s
12
- planilha.force_encoding('UTF-8')
13
- arq = File.open('deputados.xls','w')
14
- arq.write(planilha)
15
- arq.close
16
- file_basename = File.basename('deputados.xls', '.xls')
17
- xls = Roo::Excel.new('deputados.xls')
18
- xls.to_csv("#{file_basename}.csv")
19
- x = Array.new
20
- File.readlines("#{file_basename}.csv").each do |linha|
21
- campos = linha.split(',')
22
- campos.each_index { |i|
23
- campos[i] = campos[i].delete '"'
24
- }
25
- deputado = Hash.new
26
- deputado[:nome] = campos[0]
27
- deputado[:partido] = campos[1]
28
- deputado[:estado] = campos[2]
29
- deputado[:mandato] = ''
30
- deputado[:fones] = '(61) ' + campos[11] + ' | (61) ' + campos[12]
31
- deputado[:email] = campos[15]
32
- camara.push(deputado)
7
+ DEPUTADOS_URL = 'http://www.camara.gov.br/internet/deputado/deputado.xls'
8
+ SENADORES_URL = 'http://www25.senado.leg.br/web/senadores/em-exercicio/-/e/por-nome'
9
+
10
+ def self.deputados
11
+ deputados = Array.new
12
+
13
+ source = HTTParty.get(DEPUTADOS_URL)
14
+
15
+ tempfile = Tempfile.new('deputados.xls').tap do |f|
16
+ f.write(source)
33
17
  end
34
- camara.shift
35
- camara
18
+
19
+ spreadsheet = Roo::Excel.new(tempfile.path, file_warning: :ignore)
20
+
21
+ (2..spreadsheet.last_row).each do |i|
22
+ row = spreadsheet.row(i)
23
+
24
+ deputado = OpenStruct.new
25
+ deputado.tipo = 'deputado'
26
+ deputado.nome = row[0]
27
+ deputado.partido = row[1]
28
+ deputado.estado = row[2]
29
+ deputado.mandato = ''
30
+ deputado.fones = "(61) #{row[11]} | (61) #{row[12]}"
31
+ deputado.email = row[13]
32
+
33
+ deputados.push(deputado)
34
+ end
35
+
36
+ deputados
36
37
  end
37
38
 
38
39
  def self.senadores
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
51
- end
52
- senador[keys[rem]] = tds[i].content
53
- }
54
- senado
40
+ senadores = Array.new
41
+
42
+ doc = Nokogiri::HTML(open(SENADORES_URL))
43
+ rows = doc.xpath('//table[@id="senadoresemexercicio-tabela-senadores"]/tbody/tr')
44
+
45
+ rows.each do |row|
46
+ senador = OpenStruct.new
47
+ senador.tipo = 'senador'
48
+ senador.nome = row.at_xpath('td[1]/a/text()').to_s.strip
49
+ senador.partido = row.at_xpath('td[2]/text()').to_s.strip
50
+ senador.estado = row.at_xpath('td[3]/text()').to_s.strip
51
+ senador.mandato = row.at_xpath('td[4]/text()').to_s.strip
52
+ senador.fones = row.at_xpath('td[5]/text()').to_s.strip
53
+ senador.email = row.at_xpath('td[6]/text()').to_s.strip
54
+
55
+ senadores.push(senador)
56
+ end
57
+
58
+ senadores
55
59
  end
56
-
60
+
57
61
  def self.todos
58
- x = senadores
59
- y = deputados
60
- y.each do |p|
61
- x.push(p)
62
- end
63
- x
62
+ all = deputados
63
+ all.push(*senadores)
64
+
65
+ all
64
66
  end
65
-
66
67
  end
metadata CHANGED
@@ -1,10 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: politicosbr
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
- - Edvaldo Silva de Almeida Jr.
7
+ - Edvaldo Silva de Almeida Jr. (edvaldoajunior@gmail.com)
8
+ - Eduardo Becker (edu.bkr@gmail.com)
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []