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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9bba650c8b0b6ada1ef76edc9a42070ab12e7890
4
- data.tar.gz: 2047fb904a719d427a8f9e925c3fe70ce754b1b9
3
+ metadata.gz: b4315687d83cb3538a49513cad526082b9fdb392
4
+ data.tar.gz: 7068e30d8ef2225b07adb5ba89398db653105bc6
5
5
  SHA512:
6
- metadata.gz: 623269c8d40b0489316c4053b664656e3aea73b484ffdf082898c0b58960d24e4fbb1c2205809b8e53ed28984cfcf3059273cc95359901235f5817047d8bef05
7
- data.tar.gz: 1e0cd5aaa909e46753edb38c85e404711cceef893d11ddb56fc2ff144e1fa9f890f4d82a868458ddff023cd608a26673e0ee3a0c8693fd0c8930230b7fbac4da
6
+ metadata.gz: 0fc0fa0737da4e7a035ef016ed253ad041e892f98102b70d2c29d3bcdf7fdd74d2bd15e5344e7f5064870554922c826b4910a57b789a12758fbad3e25a0553e7
7
+ data.tar.gz: cf4de0b1e8ff1967d76988419104f75722a1816d80ef2fcb35529a51f62c8e58b4e9fac746744f136e3bef219e12178fdf2ef4a9b75ee948306af48c57086f59
data/hulse.gemspec CHANGED
@@ -25,4 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.add_dependency "nokogiri"
26
26
  spec.add_dependency "oj"
27
27
  spec.add_dependency "american_date"
28
+ spec.add_dependency "activesupport"
28
29
  end
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
@@ -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'],
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Hulse
2
- VERSION = "0.8"
2
+ VERSION = "0.9"
3
3
  end
@@ -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.8'
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-10-24 00:00:00.000000000 Z
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: