politicosbr 2.0.1 → 2.1.0

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.
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: []