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 = nil) ⇒ 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)



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

def initialize(photos_api_response={}, api_key=nil)
  photos = photos_api_response.values.first 
  [ "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.



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

def page
  @page
end

#pagesObject (readonly)

Returns the value of attribute pages.



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

def pages
  @pages
end

#perpageObject (readonly)

Returns the value of attribute perpage.



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

def perpage
  @perpage
end

#totalObject (readonly)

Returns the value of attribute total.



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

def total
  @total
end