gnugeek-congredi 0.0.3
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/History.txt +11 -0
- data/README.rdoc +105 -0
- data/Rakefile +9 -0
- data/congredi.gemspec +39 -0
- data/lib/congredi.rb +14 -0
- data/lib/congredi/bio.rb +29 -0
- data/lib/congredi/member.rb +18 -0
- data/lib/congredi/members.rb +21 -0
- data/lib/congredi/role.rb +17 -0
- data/lib/congredi/roll_call.rb +46 -0
- data/lib/congredi/votes.rb +36 -0
- data/test/helper.rb +5 -0
- data/test/responses/bio.xml +62 -0
- data/test/responses/members.xml +625 -0
- data/test/responses/roll_call.xml +48 -0
- data/test/responses/votes.xml +1012 -0
- data/test/test_bio.rb +64 -0
- data/test/test_members.rb +31 -0
- data/test/test_roll_call.rb +99 -0
- data/test/test_votes.rb +40 -0
- metadata +85 -0
data/History.txt
ADDED
data/README.rdoc
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
= congredi
|
2
|
+
|
3
|
+
* http://github.com/gnugeek/congredi/tree/master
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
|
7
|
+
Ruby interface to the New York Times Congress API.
|
8
|
+
( http://developer.nytimes.com/docs/congress_api )
|
9
|
+
|
10
|
+
== FEATURES/PROBLEMS:
|
11
|
+
|
12
|
+
* Fetch roll-call votes by congress, chamber, session, and roll-call
|
13
|
+
* Fetch members of congress by congress and chamber
|
14
|
+
* Fetch voting record by member of congress
|
15
|
+
* Fetch biographical data by member of congress
|
16
|
+
|
17
|
+
== SYNOPSIS:
|
18
|
+
|
19
|
+
require 'congredi'
|
20
|
+
|
21
|
+
true
|
22
|
+
|
23
|
+
m = Congredi::Members.new({:congress => 111, :chamber => 'senate'})
|
24
|
+
|
25
|
+
member = m.members.first
|
26
|
+
|
27
|
+
member.name
|
28
|
+
|
29
|
+
"Daniel Akaka"
|
30
|
+
|
31
|
+
member.member_id
|
32
|
+
|
33
|
+
"A000069"
|
34
|
+
|
35
|
+
bio = Congredi::Bio.new({:member_id => member.member_id})
|
36
|
+
|
37
|
+
bio.date_of_birth
|
38
|
+
|
39
|
+
"1924-09-11"
|
40
|
+
|
41
|
+
votes = Congredi::Votes.new({:member_id => member.member_id})
|
42
|
+
|
43
|
+
vote = votes.votes.first
|
44
|
+
|
45
|
+
vote.position
|
46
|
+
|
47
|
+
"Yes"
|
48
|
+
|
49
|
+
vote.roll_call
|
50
|
+
|
51
|
+
"215"
|
52
|
+
|
53
|
+
rc = Congredi::RollCall.new({:congress => vote.congress, :chamber => vote.chamber, :session => vote.session, :rollCall => vote.roll_call})
|
54
|
+
|
55
|
+
rc.bill_number
|
56
|
+
|
57
|
+
"H.R.7005"
|
58
|
+
|
59
|
+
rc.description
|
60
|
+
|
61
|
+
"Motion to Invoke Cloture on the Motion to Proceed to Consider H.R. 7005.; Alternative Minimum Tax Relief Act of 2008"
|
62
|
+
|
63
|
+
rc.democratic_majority_position
|
64
|
+
|
65
|
+
"Yes"
|
66
|
+
|
67
|
+
rc.republican_yes
|
68
|
+
|
69
|
+
"10"
|
70
|
+
|
71
|
+
== REQUIREMENTS:
|
72
|
+
|
73
|
+
* hpricot gem
|
74
|
+
* API Key from NYT
|
75
|
+
|
76
|
+
== INSTALL:
|
77
|
+
|
78
|
+
* gem build congredi.gemspec
|
79
|
+
* sudo gem install congredi-X.X.X.gem
|
80
|
+
* edit lib/congressapi/congredi.rb and add in your API key
|
81
|
+
|
82
|
+
== LICENSE:
|
83
|
+
|
84
|
+
(The MIT License)
|
85
|
+
|
86
|
+
Copyright (c) 2009 Brian Knox
|
87
|
+
|
88
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
89
|
+
a copy of this software and associated documentation files (the
|
90
|
+
'Software'), to deal in the Software without restriction, including
|
91
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
92
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
93
|
+
permit persons to whom the Software is furnished to do so, subject to
|
94
|
+
the following conditions:
|
95
|
+
|
96
|
+
The above copyright notice and this permission notice shall be
|
97
|
+
included in all copies or substantial portions of the Software.
|
98
|
+
|
99
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
100
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
101
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
102
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
103
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
104
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
105
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
data/congredi.gemspec
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = "congredi"
|
3
|
+
s.version = "0.0.3"
|
4
|
+
s.date = "2009-01-11"
|
5
|
+
s.summary = "Interface to U.S. Political Information"
|
6
|
+
s.email = "gnutse@gmail.com"
|
7
|
+
s.homepage = "http://github.com/gnugeek/congredi"
|
8
|
+
s.description = "Congredi is a Ruby Library for interfacing with various sources of data on the U.S. Congress"
|
9
|
+
s.has_rdoc = true
|
10
|
+
s.authors = ["Brian Knox"]
|
11
|
+
s.files = ["History.txt",
|
12
|
+
"README.rdoc",
|
13
|
+
"Rakefile",
|
14
|
+
"congredi.gemspec",
|
15
|
+
"History.txt",
|
16
|
+
"lib/congredi.rb",
|
17
|
+
"lib/congredi/bio.rb",
|
18
|
+
"lib/congredi/role.rb",
|
19
|
+
"lib/congredi/members.rb",
|
20
|
+
"lib/congredi/member.rb",
|
21
|
+
"lib/congredi/roll_call.rb",
|
22
|
+
"lib/congredi/votes.rb",
|
23
|
+
"test/helper.rb",
|
24
|
+
"test/test_bio.rb",
|
25
|
+
"test/test_members.rb",
|
26
|
+
"test/test_roll_call.rb",
|
27
|
+
"test/test_votes.rb",
|
28
|
+
"test/responses/bio.xml",
|
29
|
+
"test/responses/members.xml",
|
30
|
+
"test/responses/roll_call.xml",
|
31
|
+
"test/responses/votes.xml"]
|
32
|
+
s.test_files = ["test/test_bio.rb",
|
33
|
+
"test/test_members.rb",
|
34
|
+
"test/test_roll_call.rb",
|
35
|
+
"test/test_votes.rb"]
|
36
|
+
s.rdoc_options = ["--main", "README.rdoc"]
|
37
|
+
s.extra_rdoc_files = ["History.txt", "README.rdoc"]
|
38
|
+
s.add_dependency("hpricot", ["> 0.0.0"])
|
39
|
+
end
|
data/lib/congredi.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
2
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
|
+
|
4
|
+
APIKEY = ""
|
5
|
+
|
6
|
+
require 'rubygems'
|
7
|
+
require 'open-uri'
|
8
|
+
require 'hpricot'
|
9
|
+
require 'congredi/bio'
|
10
|
+
require 'congredi/members'
|
11
|
+
require 'congredi/member'
|
12
|
+
require 'congredi/roll_call'
|
13
|
+
require 'congredi/votes'
|
14
|
+
require 'congredi/role'
|
data/lib/congredi/bio.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
module Congredi
|
2
|
+
|
3
|
+
class Bio
|
4
|
+
attr_reader :member_id, :name, :date_of_birth, :gender, :url, :govtrack_id, :roles
|
5
|
+
|
6
|
+
def initialize(url_or_params)
|
7
|
+
|
8
|
+
if url_or_params.class == Hash
|
9
|
+
@url = "http://api.nytimes.com/svc/politics/v2/us/legislative/congress/members/#{url_or_params[:member_id]}?api-key=#{APIKEY}"
|
10
|
+
elsif url_or_params.class == String
|
11
|
+
@url = url_or_params
|
12
|
+
end
|
13
|
+
|
14
|
+
@roles = []
|
15
|
+
@doc = Hpricot.parse(open(@url))
|
16
|
+
@name = @doc.search('//member/name').first.inner_html
|
17
|
+
@date_of_birth = @doc.search('//member/date_of_birth').first.inner_html
|
18
|
+
@gender = @doc.search('//member/gender').first.inner_html
|
19
|
+
@url = @doc.search('//member/url').first.inner_html
|
20
|
+
@govtrack_id = @doc.search('//member/govtrack_id').first.inner_html
|
21
|
+
|
22
|
+
@doc.search('member/roles/role').each do |element|
|
23
|
+
@roles.push(Congredi::Role.new(element))
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Congredi
|
2
|
+
|
3
|
+
class Member
|
4
|
+
attr_reader :member_id, :name, :party, :state
|
5
|
+
|
6
|
+
def initialize(element)
|
7
|
+
@member_id = element.search('id').inner_html
|
8
|
+
@name = element.search('name').inner_html
|
9
|
+
@party = element.search('party').inner_html
|
10
|
+
@state = element.search('state').inner_html
|
11
|
+
end
|
12
|
+
|
13
|
+
def bio
|
14
|
+
@bio ||= Congredi::Bio.new({:member_id => @member_id})
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Congredi
|
2
|
+
|
3
|
+
class Members
|
4
|
+
attr_reader :members
|
5
|
+
|
6
|
+
def initialize(url_or_params)
|
7
|
+
if url_or_params.class == String
|
8
|
+
@url = url_or_params
|
9
|
+
elsif url_or_params.class == Hash
|
10
|
+
@url = "http://api.nytimes.com/svc/politics/v2/us/legislative/congress/#{url_or_params[:congress]}/#{url_or_params[:chamber]}/members?api-key=#{APIKEY}"
|
11
|
+
end
|
12
|
+
|
13
|
+
@members = []
|
14
|
+
@doc = Hpricot.parse(open(@url))
|
15
|
+
@doc.search('member').each do |element|
|
16
|
+
@members.push(Congredi::Member.new(element))
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Congredi
|
2
|
+
|
3
|
+
class Role
|
4
|
+
attr_reader :congress, :chamber, :title, :state, :party, :start_date, :end_date
|
5
|
+
|
6
|
+
def initialize(element)
|
7
|
+
@congress = element.search('congress').inner_html
|
8
|
+
@chamber = element.search('chamber').inner_html
|
9
|
+
@title = element.search('title').inner_html
|
10
|
+
@state = element.search('state').inner_html
|
11
|
+
@party = element.search('party').inner_html
|
12
|
+
@start_date = element.search('start_date').inner_html
|
13
|
+
@end_date = element.search('end_date').inner_html
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Congredi
|
2
|
+
|
3
|
+
class RollCall
|
4
|
+
attr_reader :d_majority_position, :d_no, :d_yes, :d_present, :d_not_voting,
|
5
|
+
:r_majority_position, :r_no, :r_yes, :r_present, :r_not_voting, :i_no,
|
6
|
+
:i_yes, :i_present, :i_not_voting,
|
7
|
+
:result, :time, :roll_call, :congress, :date, :bill_number,
|
8
|
+
:description, :question
|
9
|
+
|
10
|
+
def initialize(url_or_params)
|
11
|
+
|
12
|
+
if url_or_params.class == String
|
13
|
+
@url = url_or_params
|
14
|
+
elsif url_or_params.class == Hash
|
15
|
+
@url = "http://api.nytimes.com/svc/politics/v2/us/legislative/congress/#{url_or_params[:congress]}/#{url_or_params[:chamber]}/sessions/#{url_or_params[:session]}/votes/#{url_or_params[:roll_call]}?api-key=#{APIKEY}"
|
16
|
+
end
|
17
|
+
|
18
|
+
@doc = Hpricot.parse(open(@url))
|
19
|
+
|
20
|
+
@d_majority_position = @doc.search('democratic/majority_position').inner_html
|
21
|
+
@d_no = @doc.search('democratic/no').inner_html
|
22
|
+
@d_yes = @doc.search('democratic/yes').inner_html
|
23
|
+
@d_present = @doc.search('democratic/present').inner_html
|
24
|
+
@d_not_voting = @doc.search('democratic/not_voting').inner_html
|
25
|
+
@r_majority_position = @doc.search('republican/majority_position').inner_html
|
26
|
+
@r_no = @doc.search('republican/no').inner_html
|
27
|
+
@r_yes = @doc.search('republican/yes').inner_html
|
28
|
+
@r_present = @doc.search('republican/present').inner_html
|
29
|
+
@r_not_voting = @doc.search('republican/not_voting').inner_html
|
30
|
+
@i_no = @doc.search('independent/no').inner_html
|
31
|
+
@i_yes = @doc.search('independent/yes').inner_html
|
32
|
+
@i_present = @doc.search('independent/present').inner_html
|
33
|
+
@i_not_voting = @doc.search('independent/not_voting').inner_html
|
34
|
+
@result = @doc.search('result').inner_html
|
35
|
+
@time = @doc.search('time').inner_html
|
36
|
+
@roll_call = @doc.search('roll_call').inner_html
|
37
|
+
@congress = @doc.search('congress').inner_html
|
38
|
+
@date = @doc.search('date').inner_html
|
39
|
+
@bill_number = @doc.search('bill_number').inner_html
|
40
|
+
@description = @doc.search('description').inner_html
|
41
|
+
@question = @doc.search('question').inner_html
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Congredi
|
2
|
+
|
3
|
+
class Vote
|
4
|
+
attr_reader :date, :time, :position, :chamber, :congress, :session, :roll_call
|
5
|
+
|
6
|
+
def initialize(element)
|
7
|
+
@date = element.search('date').inner_html
|
8
|
+
@time = element.search('time').inner_html
|
9
|
+
@position = element.search('position').inner_html
|
10
|
+
@chamber = element.search('chamber').inner_html
|
11
|
+
@congress = element.search('congress').inner_html
|
12
|
+
@session = element.search('session').inner_html
|
13
|
+
@roll_call = element.search('roll_call').inner_html
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class Votes
|
18
|
+
attr_reader :votes
|
19
|
+
|
20
|
+
def initialize(url_or_params)
|
21
|
+
if url_or_params.class == String
|
22
|
+
@url = url_or_params
|
23
|
+
elsif url_or_params.class == Hash
|
24
|
+
@url = "http://api.nytimes.com/svc/politics/v2/us/legislative/congress/members/#{url_or_params[:member_id]}/votes?api-key=#{APIKEY}"
|
25
|
+
end
|
26
|
+
|
27
|
+
@votes = []
|
28
|
+
@doc = Hpricot.parse(open(@url))
|
29
|
+
@doc.search('vote').each do |element|
|
30
|
+
@votes.push(Congredi::Vote.new(element))
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
data/test/helper.rb
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<result_set>
|
3
|
+
<status>OK</status>
|
4
|
+
<copyright>Copyright (c) 2009 The New York Times Company. All Rights Reserved.</copyright>
|
5
|
+
<results>
|
6
|
+
<member>
|
7
|
+
<id>C001041</id>
|
8
|
+
<name>Hillary Clinton</name>
|
9
|
+
<date_of_birth>1947-10-26</date_of_birth>
|
10
|
+
<gender>F</gender>
|
11
|
+
<url>http://clinton.senate.gov</url>
|
12
|
+
<govtrack_id>300022</govtrack_id>
|
13
|
+
<roles>
|
14
|
+
<role>
|
15
|
+
<congress>111</congress>
|
16
|
+
<chamber>Senate</chamber>
|
17
|
+
<title>Senator, 1st Class</title>
|
18
|
+
<state>NY</state>
|
19
|
+
<party>D</party>
|
20
|
+
<start_date>2009-01-06</start_date>
|
21
|
+
<end_date>2011-01-04</end_date>
|
22
|
+
</role>
|
23
|
+
<role>
|
24
|
+
<congress>110</congress>
|
25
|
+
<chamber>Senate</chamber>
|
26
|
+
<title>Senator, 1st Class</title>
|
27
|
+
<state>NY</state>
|
28
|
+
<party>D</party>
|
29
|
+
<start_date>2007-01-04</start_date>
|
30
|
+
<end_date>2009-01-03</end_date>
|
31
|
+
</role>
|
32
|
+
<role>
|
33
|
+
<congress>109</congress>
|
34
|
+
<chamber>Senate</chamber>
|
35
|
+
<title>Senator, 1st Class</title>
|
36
|
+
<state>NY</state>
|
37
|
+
<party>D</party>
|
38
|
+
<start_date>2005-01-04</start_date>
|
39
|
+
<end_date>2006-12-09</end_date>
|
40
|
+
</role>
|
41
|
+
<role>
|
42
|
+
<congress>108</congress>
|
43
|
+
<chamber>Senate</chamber>
|
44
|
+
<title>Senator, 1st Class</title>
|
45
|
+
<state>NY</state>
|
46
|
+
<party>D</party>
|
47
|
+
<start_date>2003-01-07</start_date>
|
48
|
+
<end_date>2004-12-08</end_date>
|
49
|
+
</role>
|
50
|
+
<role>
|
51
|
+
<congress>107</congress>
|
52
|
+
<chamber>Senate</chamber>
|
53
|
+
<title>Senator, 1st Class</title>
|
54
|
+
<state>NY</state>
|
55
|
+
<party>D</party>
|
56
|
+
<start_date>2001-01-03</start_date>
|
57
|
+
<end_date>2002-11-22</end_date>
|
58
|
+
</role>
|
59
|
+
</roles>
|
60
|
+
</member>
|
61
|
+
</results>
|
62
|
+
</result_set>
|
@@ -0,0 +1,625 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<result_set>
|
3
|
+
<status>OK</status>
|
4
|
+
<copyright>Copyright (c) 2009 The New York Times Company. All Rights Reserved.</copyright>
|
5
|
+
<results>
|
6
|
+
<congress>110</congress>
|
7
|
+
<chamber>Senate</chamber>
|
8
|
+
<num_results>102</num_results>
|
9
|
+
<offset>0</offset>
|
10
|
+
<members>
|
11
|
+
<member>
|
12
|
+
<id>A000069</id>
|
13
|
+
<name>Daniel Akaka</name>
|
14
|
+
<party>D</party>
|
15
|
+
<state>HI</state>
|
16
|
+
</member>
|
17
|
+
<member>
|
18
|
+
<id>A000109</id>
|
19
|
+
<name>Wayne Allard</name>
|
20
|
+
<party>R</party>
|
21
|
+
<state>CO</state>
|
22
|
+
</member>
|
23
|
+
<member>
|
24
|
+
<id>A000360</id>
|
25
|
+
<name>Lamar Alexander</name>
|
26
|
+
<party>R</party>
|
27
|
+
<state>TN</state>
|
28
|
+
</member>
|
29
|
+
<member>
|
30
|
+
<id>B000243</id>
|
31
|
+
<name>Max Baucus</name>
|
32
|
+
<party>D</party>
|
33
|
+
<state>MT</state>
|
34
|
+
</member>
|
35
|
+
<member>
|
36
|
+
<id>B000382</id>
|
37
|
+
<name>Robert Bennett</name>
|
38
|
+
<party>R</party>
|
39
|
+
<state>UT</state>
|
40
|
+
</member>
|
41
|
+
<member>
|
42
|
+
<id>B000444</id>
|
43
|
+
<name>Joseph Biden</name>
|
44
|
+
<party>D</party>
|
45
|
+
<state>DE</state>
|
46
|
+
</member>
|
47
|
+
<member>
|
48
|
+
<id>B000468</id>
|
49
|
+
<name>Jeff Bingaman</name>
|
50
|
+
<party>D</party>
|
51
|
+
<state>NM</state>
|
52
|
+
</member>
|
53
|
+
<member>
|
54
|
+
<id>B000611</id>
|
55
|
+
<name>Christopher Bond</name>
|
56
|
+
<party>R</party>
|
57
|
+
<state>MO</state>
|
58
|
+
</member>
|
59
|
+
<member>
|
60
|
+
<id>B000711</id>
|
61
|
+
<name>Barbara Boxer</name>
|
62
|
+
<party>D</party>
|
63
|
+
<state>CA</state>
|
64
|
+
</member>
|
65
|
+
<member>
|
66
|
+
<id>B000944</id>
|
67
|
+
<name>Sherrod Brown</name>
|
68
|
+
<party>D</party>
|
69
|
+
<state>OH</state>
|
70
|
+
</member>
|
71
|
+
<member>
|
72
|
+
<id>B000953</id>
|
73
|
+
<name>Sam Brownback</name>
|
74
|
+
<party>R</party>
|
75
|
+
<state>KS</state>
|
76
|
+
</member>
|
77
|
+
<member>
|
78
|
+
<id>B001066</id>
|
79
|
+
<name>Jim Bunning</name>
|
80
|
+
<party>R</party>
|
81
|
+
<state>KY</state>
|
82
|
+
</member>
|
83
|
+
<member>
|
84
|
+
<id>B001135</id>
|
85
|
+
<name>Richard Burr</name>
|
86
|
+
<party>R</party>
|
87
|
+
<state>NC</state>
|
88
|
+
</member>
|
89
|
+
<member>
|
90
|
+
<id>B001210</id>
|
91
|
+
<name>Robert Byrd</name>
|
92
|
+
<party>D</party>
|
93
|
+
<state>WV</state>
|
94
|
+
</member>
|
95
|
+
<member>
|
96
|
+
<id>B001233</id>
|
97
|
+
<name>Evan Bayh</name>
|
98
|
+
<party>D</party>
|
99
|
+
<state>IN</state>
|
100
|
+
</member>
|
101
|
+
<member>
|
102
|
+
<id>B001261</id>
|
103
|
+
<name>John Barrasso</name>
|
104
|
+
<party>R</party>
|
105
|
+
<state>WY</state>
|
106
|
+
</member>
|
107
|
+
<member>
|
108
|
+
<id>C000127</id>
|
109
|
+
<name>Maria Cantwell</name>
|
110
|
+
<party>D</party>
|
111
|
+
<state>WA</state>
|
112
|
+
</member>
|
113
|
+
<member>
|
114
|
+
<id>C000141</id>
|
115
|
+
<name>Ben Cardin</name>
|
116
|
+
<party>D</party>
|
117
|
+
<state>MD</state>
|
118
|
+
</member>
|
119
|
+
<member>
|
120
|
+
<id>C000174</id>
|
121
|
+
<name>Thomas Carper</name>
|
122
|
+
<party>D</party>
|
123
|
+
<state>DE</state>
|
124
|
+
</member>
|
125
|
+
<member>
|
126
|
+
<id>C000286</id>
|
127
|
+
<name>Saxby Chambliss</name>
|
128
|
+
<party>R</party>
|
129
|
+
<state>GA</state>
|
130
|
+
</member>
|
131
|
+
<member>
|
132
|
+
<id>C000560</id>
|
133
|
+
<name>Tom Coburn</name>
|
134
|
+
<party>R</party>
|
135
|
+
<state>OK</state>
|
136
|
+
</member>
|
137
|
+
<member>
|
138
|
+
<id>C000567</id>
|
139
|
+
<name>Thad Cochran</name>
|
140
|
+
<party>R</party>
|
141
|
+
<state>MS</state>
|
142
|
+
</member>
|
143
|
+
<member>
|
144
|
+
<id>C000705</id>
|
145
|
+
<name>Kent Conrad</name>
|
146
|
+
<party>D</party>
|
147
|
+
<state>ND</state>
|
148
|
+
</member>
|
149
|
+
<member>
|
150
|
+
<id>C000858</id>
|
151
|
+
<name>Larry Craig</name>
|
152
|
+
<party>R</party>
|
153
|
+
<state>ID</state>
|
154
|
+
</member>
|
155
|
+
<member>
|
156
|
+
<id>C000880</id>
|
157
|
+
<name>Michael Crapo</name>
|
158
|
+
<party>R</party>
|
159
|
+
<state>ID</state>
|
160
|
+
</member>
|
161
|
+
<member>
|
162
|
+
<id>C001035</id>
|
163
|
+
<name>Susan Collins</name>
|
164
|
+
<party>R</party>
|
165
|
+
<state>ME</state>
|
166
|
+
</member>
|
167
|
+
<member>
|
168
|
+
<id>C001041</id>
|
169
|
+
<name>Hillary Clinton</name>
|
170
|
+
<party>D</party>
|
171
|
+
<state>NY</state>
|
172
|
+
</member>
|
173
|
+
<member>
|
174
|
+
<id>C001056</id>
|
175
|
+
<name>John Cornyn</name>
|
176
|
+
<party>R</party>
|
177
|
+
<state>TX</state>
|
178
|
+
</member>
|
179
|
+
<member>
|
180
|
+
<id>C001057</id>
|
181
|
+
<name>Norm Coleman</name>
|
182
|
+
<party>R</party>
|
183
|
+
<state>MN</state>
|
184
|
+
</member>
|
185
|
+
<member>
|
186
|
+
<id>C001070</id>
|
187
|
+
<name>Bob Casey Jr.</name>
|
188
|
+
<party>D</party>
|
189
|
+
<state>PA</state>
|
190
|
+
</member>
|
191
|
+
<member>
|
192
|
+
<id>C001071</id>
|
193
|
+
<name>Bob Corker</name>
|
194
|
+
<party>R</party>
|
195
|
+
<state>TN</state>
|
196
|
+
</member>
|
197
|
+
<member>
|
198
|
+
<id>D000388</id>
|
199
|
+
<name>Christopher Dodd</name>
|
200
|
+
<party>D</party>
|
201
|
+
<state>CT</state>
|
202
|
+
</member>
|
203
|
+
<member>
|
204
|
+
<id>D000407</id>
|
205
|
+
<name>Pete Domenici</name>
|
206
|
+
<party>R</party>
|
207
|
+
<state>NM</state>
|
208
|
+
</member>
|
209
|
+
<member>
|
210
|
+
<id>D000432</id>
|
211
|
+
<name>Byron Dorgan</name>
|
212
|
+
<party>D</party>
|
213
|
+
<state>ND</state>
|
214
|
+
</member>
|
215
|
+
<member>
|
216
|
+
<id>D000563</id>
|
217
|
+
<name>Richard Durbin</name>
|
218
|
+
<party>D</party>
|
219
|
+
<state>IL</state>
|
220
|
+
</member>
|
221
|
+
<member>
|
222
|
+
<id>D000595</id>
|
223
|
+
<name>Jim DeMint</name>
|
224
|
+
<party>R</party>
|
225
|
+
<state>SC</state>
|
226
|
+
</member>
|
227
|
+
<member>
|
228
|
+
<id>D000601</id>
|
229
|
+
<name>Elizabeth Dole</name>
|
230
|
+
<party>R</party>
|
231
|
+
<state>NC</state>
|
232
|
+
</member>
|
233
|
+
<member>
|
234
|
+
<id>E000194</id>
|
235
|
+
<name>John Ensign</name>
|
236
|
+
<party>R</party>
|
237
|
+
<state>NV</state>
|
238
|
+
</member>
|
239
|
+
<member>
|
240
|
+
<id>E000285</id>
|
241
|
+
<name>Michael Enzi</name>
|
242
|
+
<party>R</party>
|
243
|
+
<state>WY</state>
|
244
|
+
</member>
|
245
|
+
<member>
|
246
|
+
<id>F000061</id>
|
247
|
+
<name>Russell Feingold</name>
|
248
|
+
<party>D</party>
|
249
|
+
<state>WI</state>
|
250
|
+
</member>
|
251
|
+
<member>
|
252
|
+
<id>F000062</id>
|
253
|
+
<name>Dianne Feinstein</name>
|
254
|
+
<party>D</party>
|
255
|
+
<state>CA</state>
|
256
|
+
</member>
|
257
|
+
<member>
|
258
|
+
<id>G000359</id>
|
259
|
+
<name>Lindsey Graham</name>
|
260
|
+
<party>R</party>
|
261
|
+
<state>SC</state>
|
262
|
+
</member>
|
263
|
+
<member>
|
264
|
+
<id>G000386</id>
|
265
|
+
<name>Charles Grassley</name>
|
266
|
+
<party>R</party>
|
267
|
+
<state>IA</state>
|
268
|
+
</member>
|
269
|
+
<member>
|
270
|
+
<id>G000445</id>
|
271
|
+
<name>Judd Gregg</name>
|
272
|
+
<party>R</party>
|
273
|
+
<state>NH</state>
|
274
|
+
</member>
|
275
|
+
<member>
|
276
|
+
<id>H000206</id>
|
277
|
+
<name>Tom Harkin</name>
|
278
|
+
<party>D</party>
|
279
|
+
<state>IA</state>
|
280
|
+
</member>
|
281
|
+
<member>
|
282
|
+
<id>H000338</id>
|
283
|
+
<name>Orrin Hatch</name>
|
284
|
+
<party>R</party>
|
285
|
+
<state>UT</state>
|
286
|
+
</member>
|
287
|
+
<member>
|
288
|
+
<id>H001016</id>
|
289
|
+
<name>Kay Hutchison</name>
|
290
|
+
<party>R</party>
|
291
|
+
<state>TX</state>
|
292
|
+
</member>
|
293
|
+
<member>
|
294
|
+
<id>H001028</id>
|
295
|
+
<name>Chuck Hagel</name>
|
296
|
+
<party>R</party>
|
297
|
+
<state>NE</state>
|
298
|
+
</member>
|
299
|
+
<member>
|
300
|
+
<id>I000024</id>
|
301
|
+
<name>James Inhofe</name>
|
302
|
+
<party>R</party>
|
303
|
+
<state>OK</state>
|
304
|
+
</member>
|
305
|
+
<member>
|
306
|
+
<id>I000025</id>
|
307
|
+
<name>Daniel Inouye</name>
|
308
|
+
<party>D</party>
|
309
|
+
<state>HI</state>
|
310
|
+
</member>
|
311
|
+
<member>
|
312
|
+
<id>I000055</id>
|
313
|
+
<name>John Isakson</name>
|
314
|
+
<party>R</party>
|
315
|
+
<state>GA</state>
|
316
|
+
</member>
|
317
|
+
<member>
|
318
|
+
<id>J000177</id>
|
319
|
+
<name>Tim Johnson</name>
|
320
|
+
<party>D</party>
|
321
|
+
<state>SD</state>
|
322
|
+
</member>
|
323
|
+
<member>
|
324
|
+
<id>K000105</id>
|
325
|
+
<name>Edward M. Kennedy</name>
|
326
|
+
<party>D</party>
|
327
|
+
<state>MA</state>
|
328
|
+
</member>
|
329
|
+
<member>
|
330
|
+
<id>K000148</id>
|
331
|
+
<name>John Kerry</name>
|
332
|
+
<party>D</party>
|
333
|
+
<state>MA</state>
|
334
|
+
</member>
|
335
|
+
<member>
|
336
|
+
<id>K000305</id>
|
337
|
+
<name>Herbert Kohl</name>
|
338
|
+
<party>D</party>
|
339
|
+
<state>WI</state>
|
340
|
+
</member>
|
341
|
+
<member>
|
342
|
+
<id>K000352</id>
|
343
|
+
<name>Jon Kyl</name>
|
344
|
+
<party>R</party>
|
345
|
+
<state>AZ</state>
|
346
|
+
</member>
|
347
|
+
<member>
|
348
|
+
<id>K000367</id>
|
349
|
+
<name>Amy Klobuchar</name>
|
350
|
+
<party>D</party>
|
351
|
+
<state>MN</state>
|
352
|
+
</member>
|
353
|
+
<member>
|
354
|
+
<id>L000035</id>
|
355
|
+
<name>Blanche Lincoln</name>
|
356
|
+
<party>D</party>
|
357
|
+
<state>AR</state>
|
358
|
+
</member>
|
359
|
+
<member>
|
360
|
+
<id>L000123</id>
|
361
|
+
<name>Frank Lautenberg</name>
|
362
|
+
<party>D</party>
|
363
|
+
<state>NJ</state>
|
364
|
+
</member>
|
365
|
+
<member>
|
366
|
+
<id>L000174</id>
|
367
|
+
<name>Patrick Leahy</name>
|
368
|
+
<party>D</party>
|
369
|
+
<state>VT</state>
|
370
|
+
</member>
|
371
|
+
<member>
|
372
|
+
<id>L000261</id>
|
373
|
+
<name>Carl Levin</name>
|
374
|
+
<party>D</party>
|
375
|
+
<state>MI</state>
|
376
|
+
</member>
|
377
|
+
<member>
|
378
|
+
<id>L000304</id>
|
379
|
+
<name>Joseph I. Lieberman</name>
|
380
|
+
<party>ID</party>
|
381
|
+
<state>CT</state>
|
382
|
+
</member>
|
383
|
+
<member>
|
384
|
+
<id>L000447</id>
|
385
|
+
<name>Trent Lott</name>
|
386
|
+
<party>R</party>
|
387
|
+
<state>MS</state>
|
388
|
+
</member>
|
389
|
+
<member>
|
390
|
+
<id>L000504</id>
|
391
|
+
<name>Richard Lugar</name>
|
392
|
+
<party>R</party>
|
393
|
+
<state>IN</state>
|
394
|
+
</member>
|
395
|
+
<member>
|
396
|
+
<id>L000550</id>
|
397
|
+
<name>Mary Landrieu</name>
|
398
|
+
<party>D</party>
|
399
|
+
<state>LA</state>
|
400
|
+
</member>
|
401
|
+
<member>
|
402
|
+
<id>M000303</id>
|
403
|
+
<name>John McCain</name>
|
404
|
+
<party>R</party>
|
405
|
+
<state>AZ</state>
|
406
|
+
</member>
|
407
|
+
<member>
|
408
|
+
<id>M000355</id>
|
409
|
+
<name>Mitch McConnell</name>
|
410
|
+
<party>R</party>
|
411
|
+
<state>KY</state>
|
412
|
+
</member>
|
413
|
+
<member>
|
414
|
+
<id>M000639</id>
|
415
|
+
<name>Robert Menendez</name>
|
416
|
+
<party>D</party>
|
417
|
+
<state>NJ</state>
|
418
|
+
</member>
|
419
|
+
<member>
|
420
|
+
<id>M000702</id>
|
421
|
+
<name>Barbara Mikulski</name>
|
422
|
+
<party>D</party>
|
423
|
+
<state>MD</state>
|
424
|
+
</member>
|
425
|
+
<member>
|
426
|
+
<id>M001111</id>
|
427
|
+
<name>Patty Murray</name>
|
428
|
+
<party>D</party>
|
429
|
+
<state>WA</state>
|
430
|
+
</member>
|
431
|
+
<member>
|
432
|
+
<id>M001153</id>
|
433
|
+
<name>Lisa Murkowski</name>
|
434
|
+
<party>R</party>
|
435
|
+
<state>AK</state>
|
436
|
+
</member>
|
437
|
+
<member>
|
438
|
+
<id>M001162</id>
|
439
|
+
<name>Mel Martinez</name>
|
440
|
+
<party>R</party>
|
441
|
+
<state>FL</state>
|
442
|
+
</member>
|
443
|
+
<member>
|
444
|
+
<id>M001170</id>
|
445
|
+
<name>Claire McCaskill</name>
|
446
|
+
<party>D</party>
|
447
|
+
<state>MO</state>
|
448
|
+
</member>
|
449
|
+
<member>
|
450
|
+
<id>N000032</id>
|
451
|
+
<name>Bill Nelson</name>
|
452
|
+
<party>D</party>
|
453
|
+
<state>FL</state>
|
454
|
+
</member>
|
455
|
+
<member>
|
456
|
+
<id>N000180</id>
|
457
|
+
<name>Ben Nelson</name>
|
458
|
+
<party>D</party>
|
459
|
+
<state>NE</state>
|
460
|
+
</member>
|
461
|
+
<member>
|
462
|
+
<id>O000167</id>
|
463
|
+
<name>Barack Obama</name>
|
464
|
+
<party>D</party>
|
465
|
+
<state>IL</state>
|
466
|
+
</member>
|
467
|
+
<member>
|
468
|
+
<id>P000590</id>
|
469
|
+
<name>Mark Pryor</name>
|
470
|
+
<party>D</party>
|
471
|
+
<state>AR</state>
|
472
|
+
</member>
|
473
|
+
<member>
|
474
|
+
<id>R000122</id>
|
475
|
+
<name>Jack Reed</name>
|
476
|
+
<party>D</party>
|
477
|
+
<state>RI</state>
|
478
|
+
</member>
|
479
|
+
<member>
|
480
|
+
<id>R000146</id>
|
481
|
+
<name>Harry Reid</name>
|
482
|
+
<party>D</party>
|
483
|
+
<state>NV</state>
|
484
|
+
</member>
|
485
|
+
<member>
|
486
|
+
<id>R000307</id>
|
487
|
+
<name>Pat Roberts</name>
|
488
|
+
<party>R</party>
|
489
|
+
<state>KS</state>
|
490
|
+
</member>
|
491
|
+
<member>
|
492
|
+
<id>R000361</id>
|
493
|
+
<name>Jay Rockefeller</name>
|
494
|
+
<party>D</party>
|
495
|
+
<state>WV</state>
|
496
|
+
</member>
|
497
|
+
<member>
|
498
|
+
<id>S000033</id>
|
499
|
+
<name>Bernie Sanders</name>
|
500
|
+
<party>I</party>
|
501
|
+
<state>VT</state>
|
502
|
+
</member>
|
503
|
+
<member>
|
504
|
+
<id>S000148</id>
|
505
|
+
<name>Charles Schumer</name>
|
506
|
+
<party>D</party>
|
507
|
+
<state>NY</state>
|
508
|
+
</member>
|
509
|
+
<member>
|
510
|
+
<id>S000320</id>
|
511
|
+
<name>Richard Shelby</name>
|
512
|
+
<party>R</party>
|
513
|
+
<state>AL</state>
|
514
|
+
</member>
|
515
|
+
<member>
|
516
|
+
<id>S000663</id>
|
517
|
+
<name>Olympia Snowe</name>
|
518
|
+
<party>R</party>
|
519
|
+
<state>ME</state>
|
520
|
+
</member>
|
521
|
+
<member>
|
522
|
+
<id>S000709</id>
|
523
|
+
<name>Arlen Specter</name>
|
524
|
+
<party>R</party>
|
525
|
+
<state>PA</state>
|
526
|
+
</member>
|
527
|
+
<member>
|
528
|
+
<id>S000770</id>
|
529
|
+
<name>Debbie Stabenow</name>
|
530
|
+
<party>D</party>
|
531
|
+
<state>MI</state>
|
532
|
+
</member>
|
533
|
+
<member>
|
534
|
+
<id>S000888</id>
|
535
|
+
<name>Ted Stevens</name>
|
536
|
+
<party>R</party>
|
537
|
+
<state>AK</state>
|
538
|
+
</member>
|
539
|
+
<member>
|
540
|
+
<id>S001078</id>
|
541
|
+
<name>John Sununu</name>
|
542
|
+
<party>R</party>
|
543
|
+
<state>NH</state>
|
544
|
+
</member>
|
545
|
+
<member>
|
546
|
+
<id>S001141</id>
|
547
|
+
<name>Jeff Sessions</name>
|
548
|
+
<party>R</party>
|
549
|
+
<state>AL</state>
|
550
|
+
</member>
|
551
|
+
<member>
|
552
|
+
<id>S001142</id>
|
553
|
+
<name>Gordon Smith</name>
|
554
|
+
<party>R</party>
|
555
|
+
<state>OR</state>
|
556
|
+
</member>
|
557
|
+
<member>
|
558
|
+
<id>S001163</id>
|
559
|
+
<name>Ken Salazar</name>
|
560
|
+
<party>D</party>
|
561
|
+
<state>CO</state>
|
562
|
+
</member>
|
563
|
+
<member>
|
564
|
+
<id>T000162</id>
|
565
|
+
<name>Craig Thomas</name>
|
566
|
+
<party>R</party>
|
567
|
+
<state>WY</state>
|
568
|
+
</member>
|
569
|
+
<member>
|
570
|
+
<id>T000250</id>
|
571
|
+
<name>John Thune</name>
|
572
|
+
<party>R</party>
|
573
|
+
<state>SD</state>
|
574
|
+
</member>
|
575
|
+
<member>
|
576
|
+
<id>T000464</id>
|
577
|
+
<name>Jon Tester</name>
|
578
|
+
<party>D</party>
|
579
|
+
<state>MT</state>
|
580
|
+
</member>
|
581
|
+
<member>
|
582
|
+
<id>V000126</id>
|
583
|
+
<name>George Voinovich</name>
|
584
|
+
<party>R</party>
|
585
|
+
<state>OH</state>
|
586
|
+
</member>
|
587
|
+
<member>
|
588
|
+
<id>V000127</id>
|
589
|
+
<name>David Vitter</name>
|
590
|
+
<party>R</party>
|
591
|
+
<state>LA</state>
|
592
|
+
</member>
|
593
|
+
<member>
|
594
|
+
<id>W000154</id>
|
595
|
+
<name>John Warner</name>
|
596
|
+
<party>R</party>
|
597
|
+
<state>VA</state>
|
598
|
+
</member>
|
599
|
+
<member>
|
600
|
+
<id>W000437</id>
|
601
|
+
<name>Roger Wicker</name>
|
602
|
+
<party>R</party>
|
603
|
+
<state>MS</state>
|
604
|
+
</member>
|
605
|
+
<member>
|
606
|
+
<id>W000779</id>
|
607
|
+
<name>Ron Wyden</name>
|
608
|
+
<party>D</party>
|
609
|
+
<state>OR</state>
|
610
|
+
</member>
|
611
|
+
<member>
|
612
|
+
<id>W000802</id>
|
613
|
+
<name>Sheldon Whitehouse</name>
|
614
|
+
<party>D</party>
|
615
|
+
<state>RI</state>
|
616
|
+
</member>
|
617
|
+
<member>
|
618
|
+
<id>W000803</id>
|
619
|
+
<name>Jim Webb</name>
|
620
|
+
<party>D</party>
|
621
|
+
<state>VA</state>
|
622
|
+
</member>
|
623
|
+
</members>
|
624
|
+
</results>
|
625
|
+
</result_set>
|