fec_results_generator 0.1 → 0.5

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.
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  A Ruby gem that takes Federal Election Commission election results as retrieved by the FecResults gem and generates JSON files in a directory structure, suitable for producting a static API. You can see an example of the data at the [FecResults site](http://openelections.github.io/fec_results/api/2012/summary/general_election_votes.json).
4
4
 
5
+ The resulting JSON API is designed to be used as both a reference for House, Senate and Presidential election results and also as a reconciliation service for connecting results produced by state authorities with federal data such as FEC candidate ids.
6
+
5
7
  ## Installation
6
8
 
7
9
  Add this line to your application's Gemfile:
@@ -18,7 +20,7 @@ Or install it yourself as:
18
20
 
19
21
  ## Usage
20
22
 
21
- In `irb`, create an instance of the JSONGenerator class:
23
+ In `irb`, create an instance of the JsonGenerator class:
22
24
 
23
25
  ```ruby
24
26
  g = FecResultsGenerator::JsonGenerator.new(:year => 2000)
@@ -27,6 +29,16 @@ g.president # for presidential results
27
29
  g.summary # for vote totals
28
30
  ```
29
31
 
32
+ This will create the following directories and files:
33
+
34
+ api/2000/congress
35
+
36
+ api/2000/president
37
+
38
+ api/2000/summary
39
+
40
+ with one or more files in each. The same directories and files are created for any even-numbered year between 2000 and 2012. Some years do not have all of the data that others; those files are still generated but are empty arrays.
41
+
30
42
 
31
43
  ## Contributing
32
44
 
@@ -20,7 +20,7 @@ module FecResultsGenerator
20
20
  begin
21
21
  run(method, fec_results, 'summary')
22
22
  rescue NotImplementedError
23
- next
23
+ run_empty(method, 'summary')
24
24
  end
25
25
  end
26
26
  end
@@ -28,11 +28,18 @@ module FecResultsGenerator
28
28
  def president
29
29
  fec_results = FecResults::President.new(:year => year)
30
30
  create_dir(year, 'president')
31
- ['popular_vote_summary', 'state_electoral_and_popular_vote_summary', 'primary_party_summary', 'general_election_results', 'primary_election_results'].each do |method|
31
+ ['popular_vote_summary', 'state_electoral_and_popular_vote_summary', 'primary_party_summary'].each do |method|
32
32
  begin
33
33
  run(method, fec_results, 'president')
34
34
  rescue NotImplementedError, NoMethodError
35
- next
35
+ run_empty(method, 'president')
36
+ end
37
+ end
38
+ ['general_election_results', 'primary_election_results'].each do |method|
39
+ begin
40
+ run_results(method, fec_results, 'president')
41
+ rescue NotImplementedError, NoMethodError
42
+ run_empty(method, 'president')
36
43
  end
37
44
  end
38
45
  end
@@ -40,7 +47,7 @@ module FecResultsGenerator
40
47
  def congress
41
48
  fec_results = FecResults::Congress.new(:year => year)
42
49
  create_dir(year, 'congress')
43
- run_congress('results', fec_results, 'congress')
50
+ run_results('results', fec_results, 'congress')
44
51
  end
45
52
 
46
53
  def run(method, fec_results, type)
@@ -48,7 +55,7 @@ module FecResultsGenerator
48
55
  write_to_file("api/#{year}/#{type}","#{method}.json", data.map{|d| d['table'].to_json})
49
56
  end
50
57
 
51
- def run_congress(method, fec_results, type)
58
+ def run_results(method, fec_results, type)
52
59
  data = generate_json(fec_results.send(method))
53
60
  write_to_file("api/#{year}/#{type}","#{method}.json", data.map{|d| d.to_json})
54
61
  end
@@ -57,6 +64,10 @@ module FecResultsGenerator
57
64
  data = results.map{|r| JSON.parse(r.to_json)}
58
65
  end
59
66
 
67
+ def run_empty(method, type)
68
+ write_to_file("api/#{year}/#{type}","#{method}.json", [])
69
+ end
70
+
60
71
  def write_to_file(dir, file, json)
61
72
  File.open(File.join(dir, file), 'w') do |f|
62
73
  PP.pp(json,f)
@@ -1,3 +1,3 @@
1
1
  module FecResultsGenerator
2
- VERSION = "0.1"
2
+ VERSION = "0.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fec_results_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: '0.5'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -89,7 +89,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
89
89
  version: '0'
90
90
  segments:
91
91
  - 0
92
- hash: -1909023395731726773
92
+ hash: -3269316768951065816
93
93
  required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  version: '0'
99
99
  segments:
100
100
  - 0
101
- hash: -1909023395731726773
101
+ hash: -3269316768951065816
102
102
  requirements: []
103
103
  rubyforge_project:
104
104
  rubygems_version: 1.8.25