Class: Hulse::SenateVote
- Inherits:
-
Object
- Object
- Hulse::SenateVote
- Defined in:
- lib/hulse/senate_vote.rb
Instance Attribute Summary collapse
-
#amendment ⇒ Object
readonly
Returns the value of attribute amendment.
-
#bill_url ⇒ Object
readonly
Returns the value of attribute bill_url.
-
#congress ⇒ Object
readonly
Returns the value of attribute congress.
-
#document ⇒ Object
readonly
Returns the value of attribute document.
-
#issue ⇒ Object
readonly
Returns the value of attribute issue.
-
#majority_requirement ⇒ Object
readonly
Returns the value of attribute majority_requirement.
-
#members ⇒ Object
readonly
Returns the value of attribute members.
-
#nomination_url ⇒ Object
readonly
Returns the value of attribute nomination_url.
-
#question ⇒ Object
readonly
Returns the value of attribute question.
-
#session ⇒ Object
readonly
Returns the value of attribute session.
-
#tie_breaker ⇒ Object
readonly
Returns the value of attribute tie_breaker.
-
#updated_at ⇒ Object
readonly
Returns the value of attribute updated_at.
-
#vote_count ⇒ Object
readonly
Returns the value of attribute vote_count.
-
#vote_date ⇒ Object
readonly
Returns the value of attribute vote_date.
-
#vote_document_text ⇒ Object
readonly
Returns the value of attribute vote_document_text.
-
#vote_number ⇒ Object
readonly
Returns the value of attribute vote_number.
-
#vote_question_text ⇒ Object
readonly
Returns the value of attribute vote_question_text.
-
#vote_result ⇒ Object
readonly
Returns the value of attribute vote_result.
-
#vote_result_text ⇒ Object
readonly
Returns the value of attribute vote_result_text.
-
#vote_timestamp ⇒ Object
readonly
Returns the value of attribute vote_timestamp.
-
#vote_title ⇒ Object
readonly
Returns the value of attribute vote_title.
-
#year ⇒ Object
readonly
Returns the value of attribute year.
Class Method Summary collapse
- .create_from_vote(response) ⇒ Object
- .find(year, vote) ⇒ Object
- .latest_vote(year) ⇒ Object
- .summary(year) ⇒ Object
Instance Method Summary collapse
-
#initialize(params = {}) ⇒ SenateVote
constructor
A new instance of SenateVote.
- #is_nomination_vote? ⇒ Boolean
Constructor Details
#initialize(params = {}) ⇒ SenateVote
Returns a new instance of SenateVote.
8 9 10 11 12 |
# File 'lib/hulse/senate_vote.rb', line 8 def initialize(params={}) params.each_pair do |k,v| instance_variable_set("@#{k}", v) end end |
Instance Attribute Details
#amendment ⇒ Object (readonly)
Returns the value of attribute amendment.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def amendment @amendment end |
#bill_url ⇒ Object (readonly)
Returns the value of attribute bill_url.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def bill_url @bill_url end |
#congress ⇒ Object (readonly)
Returns the value of attribute congress.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def congress @congress end |
#document ⇒ Object (readonly)
Returns the value of attribute document.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def document @document end |
#issue ⇒ Object (readonly)
Returns the value of attribute issue.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def issue @issue end |
#majority_requirement ⇒ Object (readonly)
Returns the value of attribute majority_requirement.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def majority_requirement @majority_requirement end |
#members ⇒ Object (readonly)
Returns the value of attribute members.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def members @members end |
#nomination_url ⇒ Object (readonly)
Returns the value of attribute nomination_url.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def nomination_url @nomination_url end |
#question ⇒ Object (readonly)
Returns the value of attribute question.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def question @question end |
#session ⇒ Object (readonly)
Returns the value of attribute session.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def session @session end |
#tie_breaker ⇒ Object (readonly)
Returns the value of attribute tie_breaker.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def tie_breaker @tie_breaker end |
#updated_at ⇒ Object (readonly)
Returns the value of attribute updated_at.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def updated_at @updated_at end |
#vote_count ⇒ Object (readonly)
Returns the value of attribute vote_count.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def vote_count @vote_count end |
#vote_date ⇒ Object (readonly)
Returns the value of attribute vote_date.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def vote_date @vote_date end |
#vote_document_text ⇒ Object (readonly)
Returns the value of attribute vote_document_text.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def vote_document_text @vote_document_text end |
#vote_number ⇒ Object (readonly)
Returns the value of attribute vote_number.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def vote_number @vote_number end |
#vote_question_text ⇒ Object (readonly)
Returns the value of attribute vote_question_text.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def vote_question_text @vote_question_text end |
#vote_result ⇒ Object (readonly)
Returns the value of attribute vote_result.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def vote_result @vote_result end |
#vote_result_text ⇒ Object (readonly)
Returns the value of attribute vote_result_text.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def vote_result_text @vote_result_text end |
#vote_timestamp ⇒ Object (readonly)
Returns the value of attribute vote_timestamp.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def @vote_timestamp end |
#vote_title ⇒ Object (readonly)
Returns the value of attribute vote_title.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def vote_title @vote_title end |
#year ⇒ Object (readonly)
Returns the value of attribute year.
4 5 6 |
# File 'lib/hulse/senate_vote.rb', line 4 def year @year end |
Class Method Details
.create_from_vote(response) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/hulse/senate_vote.rb', line 28 def self.create_from_vote(response) members = [] response['members']['member'].each do |m| members << m.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo} end self.new(congress: response['congress'].to_i, session: response['session'].to_i, year: response['congress_year'].to_i, vote_number: response['vote_number'].to_i, vote_timestamp: DateTime.parse(response['vote_date']), updated_at: DateTime.parse(response['modify_date']), vote_question_text: response['vote_question_text'], vote_document_text: response['vote_document_text'], vote_result_text: response['vote_result_text'], question: response['question'], vote_title: response['vote_title'], majority_requirement: response['majority_requirement'], vote_result: response['vote_result'], document: response['document'].inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}, amendment: response['amendment'].inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}, vote_count: response['count'].inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}, tie_breaker: response['tie_breaker'].inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}, members: members ) end |
.find(year, vote) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/hulse/senate_vote.rb', line 21 def self.find(year, vote) congress, session = Hulse::Utils.convert_year_to_congress_and_session(year) url = "http://www.senate.gov/legislative/LIS/roll_call_votes/vote#{congress}#{session}/vote_#{congress}_#{session}_#{vote.to_s.rjust(5,"0")}.xml" response = HTTParty.get(url) self.create_from_vote(response.parsed_response['roll_call_vote']) end |
.latest_vote(year) ⇒ Object
14 15 16 17 18 19 |
# File 'lib/hulse/senate_vote.rb', line 14 def self.latest_vote(year) congress, session = Hulse::Utils.convert_year_to_congress_and_session(year) url = "http://www.senate.gov/legislative/LIS/roll_call_lists/vote_menu_#{congress}_#{session}.xml" response = HTTParty.get(url) response.parsed_response['vote_summary']['votes']['vote'].first['vote_number'].to_i end |
.summary(year) ⇒ Object
54 55 56 57 58 59 60 61 62 |
# File 'lib/hulse/senate_vote.rb', line 54 def self.summary(year) congress, session = Hulse::Utils.convert_year_to_congress_and_session(year) url = "http://www.senate.gov/legislative/LIS/roll_call_lists/vote_menu_#{congress}_#{session}.xml" response = HTTParty.get(url) return nil if response.code == 404 votes = response.parsed_response['vote_summary']['votes']['vote'] 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'], 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'])} end |
Instance Method Details
#is_nomination_vote? ⇒ Boolean
64 65 66 |
# File 'lib/hulse/senate_vote.rb', line 64 def is_nomination_vote? document[:document_type] == 'PN' ? true : false end |