Class: Fleakr::Objects::Photo
- Inherits:
-
Object
- Object
- Fleakr::Objects::Photo
- Extended by:
- Forwardable
- Includes:
- Support::Object
- Defined in:
- lib/fleakr/objects/photo.rb
Overview
Photo
Handles both the retrieval of Photo objects from various associations (e.g. User / Set) as well as the ability to upload images to the Flickr site.
Attributes
[id] The ID for this photo [title] The title of this photo [description] The description of this photo [secret] This photo's secret (used for sharing photo without permissions checking) [original_secret] This photo's original secret [comment_count] Count of the comments attached to this photo [url] This photo's page on Flickr [square] The tiny square representation of this photo [thumbnail] The thumbnail for this photo [small] The small representation of this photo [medium] The medium representation of this photo [large] The large representation of this photo [original] The original photo [previous] The previous photo based on the current context [next] The next photo based on the current context
Associations
[images] The underlying images for this photo. [tags] The tags for this photo. [comments] The comments associated with this photo
Constant Summary collapse
- SIZES =
Available sizes for this photo
[:square, :thumbnail, :small, :medium, :large, :original]
Class Method Summary collapse
-
.upload(filename, options = {}) ⇒ Object
Upload the photo specified by filename to the user's Flickr account.
Instance Method Summary collapse
-
#context ⇒ Object
:nodoc:.
-
#load_info ⇒ Object
TODO: Refactor this to remove duplication w/ User#load_info - possibly in the lazily_load class method.
-
#owner ⇒ Object
The user who uploaded this photo.
-
#posted_at ⇒ Object
When was this photo posted?.
-
#replace_with(filename) ⇒ Object
Replace the current photo's image with the one specified by filename.
-
#taken_at ⇒ Object
When was this photo taken?.
-
#updated_at ⇒ Object
When was this photo last updated? This includes addition of tags and other metadata.
Methods included from Support::Object
Class Method Details
.upload(filename, options = {}) ⇒ Object
Upload the photo specified by filename to the user's Flickr account. When uploading, there are several options available (none are required):
[:title] The title for this photo. Any string is allowed. [:description] The description for this photo. Any string is allowed. [:tags] A collection of tags for this photo. This can be a string or array of strings. [:viewable_by] Who can view this photo? Acceptable values are one of :everyone, :friends or :family. This can also take an array of values (e.g. [:friends, :family]) to make it viewable by friends and family. [:level] The safety level of this photo. Acceptable values are one of :safe, :moderate, or :restricted. [:type] The type of image this is. Acceptable values are one of :photo, :screenshot, or :other. [:hide?] Should this photo be hidden from public searches? Takes a boolean.
82 83 84 85 86 |
# File 'lib/fleakr/objects/photo.rb', line 82 def self.upload(filename, = {}) response = Fleakr::Api::UploadRequest.with_response!(filename, :create, ) photo = Photo.new(response.body) Photo.find_by_id(photo.id) end |
Instance Method Details
#context ⇒ Object
:nodoc:
103 104 105 106 107 108 |
# File 'lib/fleakr/objects/photo.rb', line 103 def context # :nodoc: @context ||= begin response = Fleakr::Api::MethodRequest.with_response!('photos.getContext', :photo_id => self.id) PhotoContext.new(response.body) end end |
#load_info ⇒ Object
TODO: Refactor this to remove duplication w/ User#load_info - possibly in the lazily_load class method
98 99 100 101 |
# File 'lib/fleakr/objects/photo.rb', line 98 def load_info # :nodoc: response = Fleakr::Api::MethodRequest.with_response!('photos.getInfo', :photo_id => self.id) self.populate_from(response.body) end |
#owner ⇒ Object
The user who uploaded this photo. See Fleakr::Objects::User for additional information.
112 113 114 |
# File 'lib/fleakr/objects/photo.rb', line 112 def owner @owner ||= User.find_by_id(owner_id) end |
#posted_at ⇒ Object
When was this photo posted?
118 119 120 |
# File 'lib/fleakr/objects/photo.rb', line 118 def posted_at Time.at(posted.to_i) end |
#replace_with(filename) ⇒ Object
Replace the current photo's image with the one specified by filename. This call requires authentication.
91 92 93 94 95 |
# File 'lib/fleakr/objects/photo.rb', line 91 def replace_with(filename) response = Fleakr::Api::UploadRequest.with_response!(filename, :update, :photo_id => self.id) self.populate_from(response.body) self end |
#taken_at ⇒ Object
When was this photo taken?
124 125 126 |
# File 'lib/fleakr/objects/photo.rb', line 124 def taken_at Time.parse(taken) end |
#updated_at ⇒ Object
When was this photo last updated? This includes addition of tags and other metadata.
130 131 132 |
# File 'lib/fleakr/objects/photo.rb', line 130 def updated_at Time.at(updated.to_i) end |