opensecrets 0.0.4 → 0.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.rdoc +8 -0
- data/VERSION +1 -1
- data/examples/example.rb +8 -5
- data/lib/opensecrets.rb +17 -34
- data/opensecrets.gemspec +1 -1
- metadata +1 -1
data/README.rdoc
CHANGED
@@ -20,12 +20,20 @@ like to contribute please see : http://sunlightlabs.com/projects/opensecrets-rub
|
|
20
20
|
require 'crack'
|
21
21
|
require 'pp'
|
22
22
|
|
23
|
+
# Note, you can also provide your API key in an environment variable for security and convenience.
|
24
|
+
# export OPENSECRETS_API_KEY=YOUR_API_KEY
|
25
|
+
# If you provide your key this way you do not have to provide a key in the OpenSecrets::*.new constructors.
|
26
|
+
# A key provided to the constructor overrides any environment variable that is set.
|
27
|
+
|
23
28
|
member = OpenSecrets::Member.new('YOUR OPEN SECRETS API KEY')
|
24
29
|
pp member.pfd({:cid => 'N00007360', :year => '2008'})["response"]
|
25
30
|
|
26
31
|
cand = OpenSecrets::Candidate.new('YOUR OPEN SECRETS API KEY')
|
27
32
|
pp cand.summary({:cid => 'N00007360'})["response"]
|
28
33
|
|
34
|
+
com = OpenSecrets::Committee.new('YOUR OPEN SECRETS API KEY')
|
35
|
+
pp com.by_industry({:cmte => 'HARM', :congno => '110', :indus => 'F10'})["response"]
|
36
|
+
|
29
37
|
|
30
38
|
== Project Websites
|
31
39
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
data/examples/example.rb
CHANGED
@@ -7,12 +7,15 @@ require 'crack'
|
|
7
7
|
require 'pp'
|
8
8
|
|
9
9
|
|
10
|
-
|
11
|
-
|
10
|
+
########
|
11
|
+
# NOTE : You should 'export OPENSECRETS_API_KEY=YOUR_API_KEY' before running this script.
|
12
|
+
########
|
13
|
+
|
14
|
+
|
12
15
|
CID = 'N00007360' # Nancy Pelosi
|
13
16
|
|
14
17
|
|
15
|
-
member = OpenSecrets::Member.new
|
18
|
+
member = OpenSecrets::Member.new
|
16
19
|
|
17
20
|
puts "\n\nMEMBER : PFD PROFILE\n\n"
|
18
21
|
pp member.pfd({:cid => CID, :year => '2008'})["response"]
|
@@ -21,7 +24,7 @@ puts "\n\nMEMBER : TRAVEL & TRIPS\n\n"
|
|
21
24
|
pp member.trips({:cid => CID, :year => '2008'})["response"]
|
22
25
|
|
23
26
|
|
24
|
-
cand = OpenSecrets::Candidate.new
|
27
|
+
cand = OpenSecrets::Candidate.new
|
25
28
|
|
26
29
|
puts "\n\nCANDIDATE : SUMMARY\n\n"
|
27
30
|
pp cand.summary({:cid => CID})["response"]
|
@@ -39,7 +42,7 @@ puts "\n\nCANDIDATE : SECTOR\n\n"
|
|
39
42
|
pp cand.sector({:cid => CID})["response"]
|
40
43
|
|
41
44
|
|
42
|
-
com = OpenSecrets::Committee.new
|
45
|
+
com = OpenSecrets::Committee.new
|
43
46
|
|
44
47
|
puts "\n\nCOMMITTEE\n\n"
|
45
48
|
pp com.by_industry({:cmte => 'HARM', :congno => '110', :indus => 'F10'})["response"]
|
data/lib/opensecrets.rb
CHANGED
@@ -2,21 +2,30 @@ require 'httparty'
|
|
2
2
|
|
3
3
|
module OpenSecrets
|
4
4
|
|
5
|
-
class
|
5
|
+
class Base
|
6
|
+
|
6
7
|
include HTTParty
|
7
8
|
base_uri 'http://www.opensecrets.org/api'
|
8
9
|
default_params :output => 'xml'
|
9
10
|
format :xml
|
10
11
|
|
11
|
-
# OpenSecrets
|
12
|
+
# OpenSecrets Base constructor. All OpenSecrets API classes inherit from this one which provides
|
13
|
+
# the common initialization function. For convenience you can skip providing an 'apikey' to the
|
14
|
+
# constructor if you instead export a OPENSECRETS_API_KEY environment variable which is set to the
|
15
|
+
# value of your API key.
|
12
16
|
#
|
13
|
-
# @option options [String] apikey (
|
17
|
+
# @option options [String] apikey (nil) an OpenSecrets API Key, this can also be provided in an OPENSECRETS_API_KEY shell environment variable for security and convenience.
|
14
18
|
#
|
15
|
-
def initialize(apikey)
|
16
|
-
|
17
|
-
|
19
|
+
def initialize(apikey = nil)
|
20
|
+
key = apikey ||= ENV['OPENSECRETS_API_KEY']
|
21
|
+
raise ArgumentError, 'You must provide an API Key' if key.blank?
|
22
|
+
self.class.default_params :apikey => key
|
18
23
|
end
|
19
24
|
|
25
|
+
end
|
26
|
+
|
27
|
+
class Member < OpenSecrets::Base
|
28
|
+
|
20
29
|
# Returns Personal Financial Disclosure (PFD) information for a member of Congress.
|
21
30
|
#
|
22
31
|
# See : http://www.opensecrets.org/api/?method=memPFDprofile&output=doc
|
@@ -47,20 +56,7 @@ module OpenSecrets
|
|
47
56
|
|
48
57
|
end # member
|
49
58
|
|
50
|
-
class Candidate
|
51
|
-
include HTTParty
|
52
|
-
base_uri 'http://www.opensecrets.org/api'
|
53
|
-
default_params :output => 'xml'
|
54
|
-
format :xml
|
55
|
-
|
56
|
-
# OpenSecrets information about a Candidate.
|
57
|
-
#
|
58
|
-
# @option options [String] apikey ("") an OpenSecrets API Key
|
59
|
-
#
|
60
|
-
def initialize(apikey)
|
61
|
-
raise ArgumentError, 'You must provide an API Key' if apikey.blank?
|
62
|
-
self.class.default_params :apikey => apikey
|
63
|
-
end
|
59
|
+
class Candidate < OpenSecrets::Base
|
64
60
|
|
65
61
|
# Provides summary fundraising information for specified politician.
|
66
62
|
#
|
@@ -131,20 +127,7 @@ module OpenSecrets
|
|
131
127
|
|
132
128
|
end # candidate
|
133
129
|
|
134
|
-
class Committee
|
135
|
-
include HTTParty
|
136
|
-
base_uri 'http://www.opensecrets.org/api'
|
137
|
-
default_params :output => 'xml'
|
138
|
-
format :xml
|
139
|
-
|
140
|
-
# OpenSecrets information about a specific committee.
|
141
|
-
#
|
142
|
-
# @option options [String] apikey ("") an OpenSecrets API Key
|
143
|
-
#
|
144
|
-
def initialize(apikey)
|
145
|
-
raise ArgumentError, 'You must provide an API Key' if apikey.blank?
|
146
|
-
self.class.default_params :apikey => apikey
|
147
|
-
end
|
130
|
+
class Committee < OpenSecrets::Base
|
148
131
|
|
149
132
|
# Provides summary fundraising information for a specific committee, industry and Congress number.
|
150
133
|
#
|
data/opensecrets.gemspec
CHANGED