Class: ImpactRadiusAPI::APIResponse
- Inherits:
-
Object
- Object
- ImpactRadiusAPI::APIResponse
- Defined in:
- lib/impact_radius_api/api_response.rb
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#num_pages ⇒ Object
readonly
Returns the value of attribute num_pages.
-
#page ⇒ Object
readonly
Returns the value of attribute page.
-
#page_size ⇒ Object
readonly
Returns the value of attribute page_size.
-
#request ⇒ Object
readonly
Returns the value of attribute request.
Instance Method Summary collapse
- #all ⇒ Object
-
#initialize(response, resource) ⇒ APIResponse
constructor
A new instance of APIResponse.
Constructor Details
#initialize(response, resource) ⇒ APIResponse
Returns a new instance of APIResponse.
5 6 7 8 9 10 11 12 |
# File 'lib/impact_radius_api/api_response.rb', line 5 def initialize(response, resource) @request = response.request result = response["ImpactRadiusResponse"] @page = result[resource]["page"].to_i @num_pages = result[resource]["numpages"].to_i @page_size = result[resource]["pagesize"] @data = parse(result[resource][resource[0..-2]]) end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
3 4 5 |
# File 'lib/impact_radius_api/api_response.rb', line 3 def data @data end |
#num_pages ⇒ Object (readonly)
Returns the value of attribute num_pages.
3 4 5 |
# File 'lib/impact_radius_api/api_response.rb', line 3 def num_pages @num_pages end |
#page ⇒ Object (readonly)
Returns the value of attribute page.
3 4 5 |
# File 'lib/impact_radius_api/api_response.rb', line 3 def page @page end |
#page_size ⇒ Object (readonly)
Returns the value of attribute page_size.
3 4 5 |
# File 'lib/impact_radius_api/api_response.rb', line 3 def page_size @page_size end |
#request ⇒ Object (readonly)
Returns the value of attribute request.
3 4 5 |
# File 'lib/impact_radius_api/api_response.rb', line 3 def request @request end |
Instance Method Details
#all ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/impact_radius_api/api_response.rb', line 14 def all page = @page num_pages = @num_pages while num_pages > page uri = Addressable::URI.parse(request.uri) class_name = uri.path.match(/^\/[a-z]+\//i)[0].gsub("/","") params = uri.query_values params.merge!({ 'Page' => "#{page.to_i + 1}" }) next_page_response = ImpactRadiusAPI.const_get(class_name).new.request( "https://" + uri. + uri.path, params ) page = next_page_response.page @data += next_page_response.data end @data end |