Class: Flickr::PhotoCollection

Inherits:
Array
  • Object
show all
Defined in:
lib/flickr.rb

Overview

A collection of photos is returned as a PhotoCollection, a subclass of Array. This allows us to retain the pagination info returned by Flickr and make it accessible in a friendly way

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(photos_api_response = {}, api_key = {}, list_node = "photos") ⇒ PhotoCollection

builds a PhotoCollection from given params, such as those returned from photos.search API call. Note all the info is contained in the value of the first (and only) key-value pair of the response. The key will vary depending on the original object the photos are related to (e.g ‘photos’, ‘photoset’, etc)



238
239
240
241
242
243
244
# File 'lib/flickr.rb', line 238

def initialize(photos_api_response={}, api_key={}, list_node="photos")
  photos = photos_api_response[list_node]
  [ "page", "pages", "perpage", "total" ].each { |i| instance_variable_set("@#{i}", photos[i])}
  collection = photos['photo'] || []
  collection = [collection] if collection.is_a? Hash
  collection.each { |photo| self << Photo.new(photo.delete('id'), api_key, photo) }
end

Instance Attribute Details

#pageObject (readonly)

Returns the value of attribute page.



231
232
233
# File 'lib/flickr.rb', line 231

def page
  @page
end

#pagesObject (readonly)

Returns the value of attribute pages.



231
232
233
# File 'lib/flickr.rb', line 231

def pages
  @pages
end

#perpageObject (readonly)

Returns the value of attribute perpage.



231
232
233
# File 'lib/flickr.rb', line 231

def perpage
  @perpage
end

#totalObject (readonly)

Returns the value of attribute total.



231
232
233
# File 'lib/flickr.rb', line 231

def total
  @total
end