hulse 0.8 → 0.9
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.
- 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:
|