class Hulse::SenateVote

Attributes

amendment[R]
bill_url[R]
congress[R]
document[R]
issue[R]
majority_requirement[R]
members[R]
nomination_url[R]
question[R]
session[R]
tie_breaker[R]
updated_at[R]
vote_count[R]
vote_date[R]
vote_document_text[R]
vote_number[R]
vote_question_text[R]
vote_result[R]
vote_result_text[R]
vote_timestamp[R]
vote_title[R]
year[R]

Public Class Methods

create_from_vote(response) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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
new(params={}) click to toggle source
# File lib/hulse/senate_vote.rb, line 8
def initialize(params={})
  params.each_pair do |k,v|
    instance_variable_set("@#{k}", v)
  end
end
summary(year) click to toggle source
# 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

Public Instance Methods

is_nomination_vote?() click to toggle source
# File lib/hulse/senate_vote.rb, line 64
def is_nomination_vote?
  document[:document_type] == 'PN' ? true : false
end