Class: CongressV3::Request
- Inherits:
-
Object
- Object
- CongressV3::Request
- Defined in:
- lib/congress_v3/request.rb
Constant Summary collapse
- BASE_URI =
'https://congress.api.sunlightfoundation.com'
Instance Attribute Summary collapse
-
#params ⇒ Object
Returns the value of attribute params.
-
#route ⇒ Object
Returns the value of attribute route.
Class Method Summary collapse
- .bill_search(params) ⇒ Object
- .bill_text(uri) ⇒ Object
- .bills(params) ⇒ Object
- .legislators(params = {}) ⇒ Object
Instance Method Summary collapse
-
#initialize(route, params) ⇒ Request
constructor
A new instance of Request.
- #request ⇒ Object
Constructor Details
#initialize(route, params) ⇒ Request
10 11 12 13 14 15 16 17 18 |
# File 'lib/congress_v3/request.rb', line 10 def initialize(route, params) if !CongressV3::Config.api_key || CongressV3::Config.api_key.empty? raise Exception.new("API Key MUST be set!") end defaults = { page: 1, apikey: CongressV3::Config.api_key } @route = route @params = defaults.merge(params) end |
Instance Attribute Details
#params ⇒ Object
Returns the value of attribute params.
8 9 10 |
# File 'lib/congress_v3/request.rb', line 8 def params @params end |
#route ⇒ Object
Returns the value of attribute route.
8 9 10 |
# File 'lib/congress_v3/request.rb', line 8 def route @route end |
Class Method Details
.bill_search(params) ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/congress_v3/request.rb', line 40 def self.bill_search(params) response = new("/bills/search", params).request response.results.map! do |bill| CongressV3::Bill.new(bill) end response end |
.bill_text(uri) ⇒ Object
50 51 52 53 |
# File 'lib/congress_v3/request.rb', line 50 def self.bill_text(uri) html = Nokogiri::HTML(open(uri)) html.css('body pre').text end |
.bills(params) ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/congress_v3/request.rb', line 30 def self.bills(params) response = new("/bills", params).request response.results.map! do |bill| CongressV3::Bill.new(bill) end response end |
.legislators(params = {}) ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/congress_v3/request.rb', line 20 def self.legislators(params={}) response = new("/legislators", params).request response.results.map! do |legislator| CongressV3::Legislator.new(legislator) end response end |
Instance Method Details
#request ⇒ Object
55 56 57 58 59 60 |
# File 'lib/congress_v3/request.rb', line 55 def request uri = URI(BASE_URI + route) uri.query = URI.encode_www_form(params) response = Net::HTTP.get(uri) CongressV3::Response.new(JSON.parse(response)) end |