Class: NYTimes::Congress::Congress

Inherits:
Base
  • Object
show all
Includes:
AttributeTransformation
Defined in:
lib/ny-times/congress/congress.rb

Constant Summary

Constants inherited from Base

Base::API_BASE, Base::API_NAME, Base::API_SERVER, Base::API_VERSION

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from AttributeTransformation

#date_for, #do_transformation, #empty?, #integer_for, #positions_for, #roles_for, #string_for, #symbol_for, #transform, #votes_for

Methods inherited from Base

api_key, api_key=, build_request_url, copyright, define_lazy_reader_for_attribute_named, invoke

Constructor Details

#initialize(number, chamber) ⇒ Congress

Returns a new instance of Congress.

Raises:

  • (AttributeError)


7
8
9
10
11
# File 'lib/ny-times/congress/congress.rb', line 7

def initialize(number, chamber)
  @number = integer_for(number)
  @chamber = symbol_for(chamber)
  raise AttributeError unless number && chamber
end

Instance Attribute Details

#chamberObject (readonly)

Returns the value of attribute chamber.



4
5
6
# File 'lib/ny-times/congress/congress.rb', line 4

def chamber
  @chamber
end

#numberObject (readonly)

Returns the value of attribute number.



4
5
6
# File 'lib/ny-times/congress/congress.rb', line 4

def number
  @number
end

Instance Method Details

#members(params = {}) ⇒ Object



13
14
15
# File 'lib/ny-times/congress/congress.rb', line 13

def members(params = {})        
  @members ||= fetch_members
end

#roll_call_vote(session_number, roll_call_number, params = {}) ⇒ Object



17
18
19
20
21
# File 'lib/ny-times/congress/congress.rb', line 17

def roll_call_vote(session_number, roll_call_number, params = {})
  results = Base.invoke("#{api_path}/sessions/#{session_number}/votes/#{roll_call_number}.json")['results']['votes']['vote']
  results.merge!({'chamber' => chamber}) # TODO 'chamber' is missing from RollCallVote JSON results for some reason
  RollCallVote.new(results)
end

#to_sObject



23
24
25
# File 'lib/ny-times/congress/congress.rb', line 23

def to_s
  "#{number} #{chamber.upcase}"
end