hulse 0.8 → 0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/hulse.gemspec +1 -0
- data/lib/hulse.rb +19 -0
- data/lib/hulse/house_vote.rb +2 -1
- data/lib/hulse/senate_vote.rb +18 -1
- data/lib/hulse/version.rb +1 -1
- data/test/house_vote_test.rb +18 -0
- data/test/senate_vote_test.rb +22 -0
- metadata +20 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4315687d83cb3538a49513cad526082b9fdb392
|
4
|
+
data.tar.gz: 7068e30d8ef2225b07adb5ba89398db653105bc6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0fc0fa0737da4e7a035ef016ed253ad041e892f98102b70d2c29d3bcdf7fdd74d2bd15e5344e7f5064870554922c826b4910a57b789a12758fbad3e25a0553e7
|
7
|
+
data.tar.gz: cf4de0b1e8ff1967d76988419104f75722a1816d80ef2fcb35529a51f62c8e58b4e9fac746744f136e3bef219e12178fdf2ef4a9b75ee948306af48c57086f59
|
data/hulse.gemspec
CHANGED
data/lib/hulse.rb
CHANGED
@@ -10,6 +10,7 @@ require "hulse/house_member"
|
|
10
10
|
require "hulse/house_floor"
|
11
11
|
require "hulse/senate_vote"
|
12
12
|
require "hulse/senate_member"
|
13
|
+
require "active_support/core_ext/integer/inflections"
|
13
14
|
|
14
15
|
module Hulse
|
15
16
|
class Utils
|
@@ -26,6 +27,24 @@ module Hulse
|
|
26
27
|
return [congress, session]
|
27
28
|
end
|
28
29
|
|
30
|
+
def self.bill_url(congress, bill_number)
|
31
|
+
bill_title = bill_number.scan(/[A-Z]+/).join.upcase
|
32
|
+
if bill_title == 'HR'
|
33
|
+
bt = 'house-bill'
|
34
|
+
elsif bill_title == 'HRES'
|
35
|
+
bt = 'house-resolution'
|
36
|
+
elsif bill_title == 'HJRES'
|
37
|
+
bt = 'house-joint-resolution'
|
38
|
+
elsif bill_title == 'S'
|
39
|
+
bt = 'senate-bill'
|
40
|
+
elsif bill_title == 'SRES'
|
41
|
+
bt = 'senate-resolution'
|
42
|
+
elsif bill_title == 'SJRES'
|
43
|
+
bt = 'senate-joint-resolution'
|
44
|
+
end
|
45
|
+
bill_num = bill_number.scan(/\d/).join
|
46
|
+
"https://www.congress.gov/bill/#{congress.to_i.ordinalize.to_s}-congress/#{bt}/#{bill_num}"
|
47
|
+
end
|
29
48
|
|
30
49
|
end
|
31
50
|
end
|
data/lib/hulse/house_vote.rb
CHANGED
@@ -2,7 +2,7 @@ module Hulse
|
|
2
2
|
class HouseVote
|
3
3
|
|
4
4
|
attr_reader :majority, :congress, :session, :chamber, :vote_number, :bill_number, :question, :vote_type, :vote_result, :vote_timestamp, :description,
|
5
|
-
:party_summary, :vote_count, :members, :amendment_number, :amendment_author
|
5
|
+
:party_summary, :vote_count, :members, :amendment_number, :amendment_author, :bill_url
|
6
6
|
|
7
7
|
def initialize(params={})
|
8
8
|
params.each_pair do |k,v|
|
@@ -51,6 +51,7 @@ module Hulse
|
|
51
51
|
chamber: response['vote_metadata']['chamber'],
|
52
52
|
vote_number: response['vote_metadata']['rollcall_num'].to_i,
|
53
53
|
bill_number: response['vote_metadata']['legis_num'],
|
54
|
+
bill_url: response['vote_metadata']['legis_num'] ? Hulse::Utils.bill_url(response['vote_metadata']['congress'], response['vote_metadata']['legis_num']) : nil,
|
54
55
|
question: response['vote_metadata']['vote_question'],
|
55
56
|
amendment_number: response['vote_metadata']['amendment_num'],
|
56
57
|
amendment_author: response['vote_metadata']['amendment_author'],
|
data/lib/hulse/senate_vote.rb
CHANGED
@@ -3,7 +3,7 @@ module Hulse
|
|
3
3
|
|
4
4
|
attr_reader :congress, :session, :year, :vote_number, :vote_timestamp, :updated_at, :vote_question_text, :vote_document_text,
|
5
5
|
:vote_result_text, :question, :vote_title, :majority_requirement, :vote_result, :document, :amendment, :vote_count, :tie_breaker, :members,
|
6
|
-
:vote_date, :issue
|
6
|
+
:vote_date, :issue, :bill_url, :nomination_url
|
7
7
|
|
8
8
|
def initialize(params={})
|
9
9
|
params.each_pair do |k,v|
|
@@ -60,5 +60,22 @@ module Hulse
|
|
60
60
|
votes.map{|v| self.new(congress: congress, session: session, year: year, vote_number: v['vote_number'], vote_date: Date.strptime(v['vote_date']+"-#{year}", "%d-%b-%Y"), issue: v['issue'],
|
61
61
|
question: v['question'], vote_result: v['result'], vote_count: v['vote_tally'].inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}, vote_title: v['title'])}
|
62
62
|
end
|
63
|
+
|
64
|
+
def is_nomination_vote?
|
65
|
+
document[:document_type] == 'PN' ? true : false
|
66
|
+
end
|
67
|
+
|
68
|
+
def nomination_url
|
69
|
+
"https://www.congress.gov/nomination/#{congress.to_i.ordinalize.to_s}-congress/#{document[:document_number].to_s}" if document[:document_type] == 'PN'
|
70
|
+
end
|
71
|
+
|
72
|
+
def bill_url
|
73
|
+
if document[:document_name] and document[:document_type] != 'PN'
|
74
|
+
Hulse::Utils.bill_url(congress, document[:document_name].gsub('.',''))
|
75
|
+
else
|
76
|
+
nil
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
63
80
|
end
|
64
81
|
end
|
data/lib/hulse/version.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require_relative '../lib/hulse'
|
3
|
+
|
4
|
+
module Hulse
|
5
|
+
class HouseVoteTest < Minitest::Test
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@hv = HouseVote.find(2015,582)
|
9
|
+
@sv = HouseVote.find(2015,581)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_bill_url
|
13
|
+
assert_equal @hv.bill_url, "https://www.congress.gov/bill/114th-congress/house-bill/1853"
|
14
|
+
assert_equal @sv.bill_url, nil
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require_relative '../lib/hulse'
|
3
|
+
|
4
|
+
module Hulse
|
5
|
+
class SenateVoteTest < Minitest::Test
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@sv = SenateVote.find(2015,291)
|
9
|
+
@nv = SenateVote.find(2015,274)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_bill_url
|
13
|
+
assert_equal @sv.bill_url, "https://www.congress.gov/bill/114th-congress/senate-bill/754"
|
14
|
+
assert_equal @nv.bill_url, nil
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_nomination
|
18
|
+
assert_equal @nv.is_nomination_vote?, true
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hulse
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.9'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derek Willis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: activesupport
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
111
125
|
description: Turns House and Senate votes and members into Ruby objects for your legislative
|
112
126
|
pleasure.
|
113
127
|
email:
|
@@ -131,6 +145,8 @@ files:
|
|
131
145
|
- lib/hulse/senate_member.rb
|
132
146
|
- lib/hulse/senate_vote.rb
|
133
147
|
- lib/hulse/version.rb
|
148
|
+
- test/house_vote_test.rb
|
149
|
+
- test/senate_vote_test.rb
|
134
150
|
- test/test_helper.rb
|
135
151
|
- test/utils_test.rb
|
136
152
|
homepage: ''
|
@@ -159,6 +175,8 @@ specification_version: 4
|
|
159
175
|
summary: Hulse is a Ruby gem for accessing House and Senate roll call votes and member
|
160
176
|
data from the official sources on house.gov and senate.gov
|
161
177
|
test_files:
|
178
|
+
- test/house_vote_test.rb
|
179
|
+
- test/senate_vote_test.rb
|
162
180
|
- test/test_helper.rb
|
163
181
|
- test/utils_test.rb
|
164
182
|
has_rdoc:
|