module Flickrie::Media

Public Class Methods

included(klass) click to toggle source

@private

# File lib/flickrie/objects/media.rb, line 210
def self.included(klass)
  klass.extend(ClassMethods)
end
new(hash, api_caller) click to toggle source
# File lib/flickrie/objects/media.rb, line 190
def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end
new(hash, api_caller) click to toggle source

@private

# File lib/flickrie/objects/media.rb, line 215
def self.new(hash, api_caller)
  eval(hash['media'].capitalize).new(hash, api_caller)
end

Public Instance Methods

[](key) click to toggle source
# File lib/flickrie/objects/media.rb, line 160
def [](key) @hash[key] end
adding_meta_permissions() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 138
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
  eval(hash['media'].capitalize).new(hash, api_caller)
end

include 
camera() click to toggle source

@return [String]

# File lib/flickrie/objects/media.rb, line 40
def camera() @hash['camera'] end
can_add_meta?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 119
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
  eval(hash['media'].capitalize)
can_blog?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 129
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
  eval(hash['media'].capitalize).new(hash, api_caller)
can_comment?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 117
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
  eval(hash['media'].
can_download?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 127
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
  eval(hash['media'].capitalize).new(hash, 
can_everyone_add_meta?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 124
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
  eval(hash['media'].capitalize).new(hash
can_everyone_comment?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 122
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
  eval(hash['media'].capitalize).new
can_print?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 131
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
  eval(hash['media'].capitalize).new(hash, api_caller)
can_share?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 133
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
  eval(hash['media'].capitalize).new(hash, api_caller)
end
commenting_permissions() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 136
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
  eval(hash['media'].capitalize).new(hash, api_caller)
end

comments_count() click to toggle source

@return [Fixnum]

# File lib/flickrie/objects/media.rb, line 55
def comments_count() Integer(@hash['comments_count']) rescue nil end

# @return [Flickrie::Location]
def location() Location.new(@hash['location']) rescue nil end
# @return [Flickrie::Media::Visibility]
def geo_permissions() Visibility.new(@hash['geoperms']) rescue nil end

# @return [Array<Flickrie::Media::Tag>]
def tags() @hash['tags'].map { |h| Tag.new(h, @api_caller) } rescue nil end
# @return [Array<Flickrie::Media::Tag>]
def machine_tags() tags.select { |tag| tag.machine_tag? } rescue nil end

# @return [Flickrie::License]
def license() License.new(@hash['license']) rescue nil end

# @return [Time]
def posted_at() Time.at(Integer(@hash['dates']['posted'])) rescue nil end
# @return [Time]
def uploaded_at() Time.at(Integer(@hash['dates']['uploaded'])) rescue nil end
# @return [Time]
def updated_at() Time.at(Integer(@hash['dates']['lastupdate'])) rescue nil end
# @return [Time]
def taken_at() DateTime.parse(@hash['dates']['taken']).to_time rescue nil end
# @return [Fixnum]
def taken_at_granularity() Integer(@hash['dates']['takengranularity']) rescue nil end

# @return [Flickrie::User]
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end

# @return [Fixnum]
def safety_level() Integer(@hash['safety_level']) rescue nil end

# @return [Boolean]
def safe?()       safety_level <= 1 if safety_level end
# @return [Boolean]
def moderate?()   safety_level == 2 if safety_level end
# @return [Boolean]
def restricted?() safety_level == 3 if safety_level end

# @return [String]
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
# @return [String]
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end

# @return [Flickrie::Media::Visibility]
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(
content_type() click to toggle source

@return [Integer]

# File lib/flickrie/objects/media.rb, line 150
  def content_type() Integer(@hash['content_type']) rescue nil end

  # @return [Flickrie::Collection<Flickrie::User>]
  def favorites
    collection = @hash['person'].map { |info| User.new(info, @api_caller) }
    Collection.new(@hash).replace(collection)
  rescue
    nil
  end

  def [](key) @hash[key] end
  # Returns the raw hash from the response. Useful if something isn't available by methods.
  #
  # @return [Hash]
  def hash() @hash end

  # Same as calling `Flickrie.get_(photo|video)_info(id)`.
  #
  # @return [self]
  def get_info(params = {})
    @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
    self
  end

  # Same as calling `Flickrie.get_(photo|video)_exif(id)`.
  #
  # @return [self]
  def get_exif(params = {})
    @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
    self
  end

  # Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
  #
  # @return [self]
  def get_favorites(params = {})
    @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
    self
  end

  def initialize(hash, api_caller)
    @hash = hash
    @api_caller = api_caller
  end

  private

  def media_type
    self.class.name.split('::').last.downcase
  end

  module ClassMethods
    def new_collection(hash, api_caller)
      collection = hash.delete('photo').map { |info| new(info, api_caller) }
      Collection.new(hash).replace(collection)
    end
  end
  extend ClassMethods

  # @private
  def self.included(klass)
    klass.extend(ClassMethods)
  end

  # @private
  def self.new(hash, api_caller)
    eval(hash['media'].capitalize).new(hash, api_caller)
  end

  include Base58
end
description() click to toggle source

@return [String]

# File lib/flickrie/objects/media.rb, line 33
def description()    @hash['description']  end
exif() click to toggle source

Returns exif of the photo/video. Example:

photo.exif.get('Model') # => 'Canon PowerShot G12'

photo.exif.get('X-Resolution', data: 'raw')   # => '180'
photo.exif.get('X-Resolution', data: 'clean') # => '180 dpi'
photo.exif.get('X-Resolution')                   # => '180 dpi'

@return [Flickrie::Media::Exif]

# File lib/flickrie/objects/media.rb, line 50
def exif() Exif.new(@hash['exif']) rescue nil end

# @return [Fixnum]
def views_count()    Integer(@hash['views'])          rescue nil end
# @return [Fixnum]
def comments_count() Integer(@hash['comments_count']) rescue nil end

# @return [Flickrie::Location]
def location() Location.new(@hash['location']) rescue nil end
# @return [Flickrie::Media::Visibility]
def geo_permissions() Visibility.new(@hash['geoperms']) rescue nil end

# @return [Array<Flickrie::Media::Tag>]
def tags() @hash['tags'].map { |h| Tag.new(h, @api_caller) } rescue nil end
# @return [Array<Flickrie::Media::Tag>]
def machine_tags() tags.select { |tag| tag.machine_tag? } rescue nil end

# @return [Flickrie::License]
def license() License.new(@hash['license']) rescue nil end

# @return [Time]
def posted_at() Time.at(Integer(@hash['dates']['posted'])) rescue nil end
# @return [Time]
def uploaded_at() Time.at(Integer(@hash['dates']['uploaded'])) rescue nil end
# @return [Time]
def updated_at() Time.at(Integer(@hash['dates']['lastupdate'])) rescue nil end
# @return [Time]
def taken_at() DateTime.parse(@hash['dates']['taken']).to_time rescue nil end
# @return [Fixnum]
def taken_at_granularity() Integer(@hash['dates']['takengranularity']) rescue nil end

# @return [Flickrie::User]
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end

# @return [Fixnum]
def safety_level() Integer(@hash['safety_level']) rescue nil end

# @return [Boolean]
def safe?()       safety_level <= 1 if safety_level end
# @return [Boolean]
def moderate?()   safety_level == 2 if safety_level end
# @return [Boolean]
def restricted?() safety_level == 3 if safety_level end

# @return [String]
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
# @return [String]
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end

# @return [Flickrie::Media::Visibility]
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  
farm() click to toggle source

@return [Fixnum]

# File lib/flickrie/objects/media.rb, line 29
def farm()           @hash['farm']         end
faved?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 144
  def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

  # @return [Array<Flickrie::Media::Note>]
  def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

  # @return [Integer]
  def content_type() Integer(@hash['content_type']) rescue nil end

  # @return [Flickrie::Collection<Flickrie::User>]
  def favorites
    collection = @hash['person'].map { |info| User.new(info, @api_caller) }
    Collection.new(@hash).replace(collection)
  rescue
    nil
  end

  def [](key) @hash[key] end
  # Returns the raw hash from the response. Useful if something isn't available by methods.
  #
  # @return [Hash]
  def hash() @hash end

  # Same as calling `Flickrie.get_(photo|video)_info(id)`.
  #
  # @return [self]
  def get_info(params = {})
    @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
    self
  end

  # Same as calling `Flickrie.get_(photo|video)_exif(id)`.
  #
  # @return [self]
  def get_exif(params = {})
    @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
    self
  end

  # Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
  #
  # @return [self]
  def get_favorites(params = {})
    @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
    self
  end

  def initialize(hash, api_caller)
    @hash = hash
    @api_caller = api_caller
  end

  private

  def media_type
    self.class.name.split('::').last.downcase
  end

  module ClassMethods
    def new_collection(hash, api_caller)
      collection = hash.delete('photo').map { |info| new(info, api_caller) }
      Collection.new(hash).replace(collection)
    end
  end
  extend ClassMethods

  # @private
  def self.included(klass)
    klass.extend(ClassMethods)
  end

  # @private
  def self.new(hash, api_caller)
    eval(hash['media'].capitalize).new(hash, api_caller)
  end

  include Base58
end
favorite?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 114
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
  eval(hash['media'
favorites() click to toggle source

@return [Flickrie::Collection<Flickrie::User>]

# File lib/flickrie/objects/media.rb, line 153
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end
geo_permissions() click to toggle source

@return [Flickrie::Media::Visibility]

# File lib/flickrie/objects/media.rb, line 60
def geo_permissions() Visibility.new(@hash['geoperms']) rescue nil end

# @return [Array<Flickrie::Media::Tag>]
def tags() @hash['tags'].map { |h| Tag.new(h, @api_caller) } rescue nil end
# @return [Array<Flickrie::Media::Tag>]
def machine_tags() tags.select { |tag| tag.machine_tag? } rescue nil end

# @return [Flickrie::License]
def license() License.new(@hash['license']) rescue nil end

# @return [Time]
def posted_at() Time.at(Integer(@hash['dates']['posted'])) rescue nil end
# @return [Time]
def uploaded_at() Time.at(Integer(@hash['dates']['uploaded'])) rescue nil end
# @return [Time]
def updated_at() Time.at(Integer(@hash['dates']['lastupdate'])) rescue nil end
# @return [Time]
def taken_at() DateTime.parse(@hash['dates']['taken']).to_time rescue nil end
# @return [Fixnum]
def taken_at_granularity() Integer(@hash['dates']['takengranularity']) rescue nil end

# @return [Flickrie::User]
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end

# @return [Fixnum]
def safety_level() Integer(@hash['safety_level']) rescue nil end

# @return [Boolean]
def safe?()       safety_level <= 1 if safety_level end
# @return [Boolean]
def moderate?()   safety_level == 2 if safety_level end
# @return [Boolean]
def restricted?() safety_level == 3 if safety_level end

# @return [String]
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
# @return [String]
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end

# @return [Flickrie::Media::Visibility]
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
get_exif(params = {}) click to toggle source

Same as calling ‘Flickrie.get_(photo|video)_exif(id)`.

@return [self]

# File lib/flickrie/objects/media.rb, line 177
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end
get_favorites(params = {}) click to toggle source

Same as calling ‘Flickrie.get_(photo|video)_favorites(id)`.

@return [self]

# File lib/flickrie/objects/media.rb, line 185
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end
get_info(params = {}) click to toggle source

Same as calling ‘Flickrie.get_(photo|video)_info(id)`.

@return [self]

# File lib/flickrie/objects/media.rb, line 169
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end
has_people?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 141
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
  eval(hash['media'].capitalize).new(hash, api_caller)
end

include Base58
hash() click to toggle source

Returns the raw hash from the response. Useful if something isn’t available by methods.

@return [Hash]

# File lib/flickrie/objects/media.rb, line 164
def hash() @hash end
id() click to toggle source

@return [String]

# File lib/flickrie/objects/media.rb, line 23
def id()             @hash['id']           end
license() click to toggle source

@return [Flickrie::License]

# File lib/flickrie/objects/media.rb, line 68
def license() License.new(@hash['license']) rescue nil end

# @return [Time]
def posted_at() Time.at(Integer(@hash['dates']['posted'])) rescue nil end
# @return [Time]
def uploaded_at() Time.at(Integer(@hash['dates']['uploaded'])) rescue nil end
# @return [Time]
def updated_at() Time.at(Integer(@hash['dates']['lastupdate'])) rescue nil end
# @return [Time]
def taken_at() DateTime.parse(@hash['dates']['taken']).to_time rescue nil end
# @return [Fixnum]
def taken_at_granularity() Integer(@hash['dates']['takengranularity']) rescue nil end

# @return [Flickrie::User]
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end

# @return [Fixnum]
def safety_level() Integer(@hash['safety_level']) rescue nil end

# @return [Boolean]
def safe?()       safety_level <= 1 if safety_level end
# @return [Boolean]
def moderate?()   safety_level == 2 if safety_level end
# @return [Boolean]
def restricted?() safety_level == 3 if safety_level end

# @return [String]
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
# @return [String]
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end

# @return [Flickrie::Media::Visibility]
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
location() click to toggle source

@return [Flickrie::Location]

# File lib/flickrie/objects/media.rb, line 58
def location() Location.new(@hash['location']) rescue nil end
# @return [Flickrie::Media::Visibility]
def geo_permissions() Visibility.new(@hash['geoperms']) rescue nil end

# @return [Array<Flickrie::Media::Tag>]
def tags() @hash['tags'].map { |h| Tag.new(h, @api_caller) } rescue nil end
# @return [Array<Flickrie::Media::Tag>]
def machine_tags() tags.select { |tag| tag.machine_tag? } rescue nil end

# @return [Flickrie::License]
def license() License.new(@hash['license']) rescue nil end

# @return [Time]
def posted_at() Time.at(Integer(@hash['dates']['posted'])) rescue nil end
# @return [Time]
def uploaded_at() Time.at(Integer(@hash['dates']['uploaded'])) rescue nil end
# @return [Time]
def updated_at() Time.at(Integer(@hash['dates']['lastupdate'])) rescue nil end
# @return [Time]
def taken_at() DateTime.parse(@hash['dates']['taken']).to_time rescue nil end
# @return [Fixnum]
def taken_at_granularity() Integer(@hash['dates']['takengranularity']) rescue nil end

# @return [Flickrie::User]
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end

# @return [Fixnum]
def safety_level() Integer(@hash['safety_level']) rescue nil end

# @return [Boolean]
def safe?()       safety_level <= 1 if safety_level end
# @return [Boolean]
def moderate?()   safety_level == 2 if safety_level end
# @return [Boolean]
def restricted?() safety_level == 3 if safety_level end

# @return [String]
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
# @return [String]
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end

# @return [Flickrie::Media::Visibility]
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
machine_tags() click to toggle source

@return [Array<Flickrie::Media::Tag>]

# File lib/flickrie/objects/media.rb, line 65
def machine_tags() tags.select { |tag| tag.machine_tag? } rescue nil end

# @return [Flickrie::License]
def license() License.new(@hash['license']) rescue nil end

# @return [Time]
def posted_at() Time.at(Integer(@hash['dates']['posted'])) rescue nil end
# @return [Time]
def uploaded_at() Time.at(Integer(@hash['dates']['uploaded'])) rescue nil end
# @return [Time]
def updated_at() Time.at(Integer(@hash['dates']['lastupdate'])) rescue nil end
# @return [Time]
def taken_at() DateTime.parse(@hash['dates']['taken']).to_time rescue nil end
# @return [Fixnum]
def taken_at_granularity() Integer(@hash['dates']['takengranularity']) rescue nil end

# @return [Flickrie::User]
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end

# @return [Fixnum]
def safety_level() Integer(@hash['safety_level']) rescue nil end

# @return [Boolean]
def safe?()       safety_level <= 1 if safety_level end
# @return [Boolean]
def moderate?()   safety_level == 2 if safety_level end
# @return [Boolean]
def restricted?() safety_level == 3 if safety_level end

# @return [String]
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
# @return [String]
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end

# @return [Flickrie::Media::Visibility]
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

media_status() click to toggle source

@return [String]

# File lib/flickrie/objects/media.rb, line 35
def media_status()   @hash['media_status'] end
media_type() click to toggle source
# File lib/flickrie/objects/media.rb, line 197
def media_type
  self.class.name.split('::').last.downcase
end
moderate?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 90
def moderate?()   safety_level == 2 if safety_level end
notes() click to toggle source

@return [Array<Flickrie::Media::Note>]

# File lib/flickrie/objects/media.rb, line 147
    def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

    # @return [Integer]
    def content_type() Integer(@hash['content_type']) rescue nil end

    # @return [Flickrie::Collection<Flickrie::User>]
    def favorites
      collection = @hash['person'].map { |info| User.new(info, @api_caller) }
      Collection.new(@hash).replace(collection)
    rescue
      nil
    end

    def [](key) @hash[key] end
    # Returns the raw hash from the response. Useful if something isn't available by methods.
    #
    # @return [Hash]
    def hash() @hash end

    # Same as calling `Flickrie.get_(photo|video)_info(id)`.
    #
    # @return [self]
    def get_info(params = {})
      @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
      self
    end

    # Same as calling `Flickrie.get_(photo|video)_exif(id)`.
    #
    # @return [self]
    def get_exif(params = {})
      @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
      self
    end

    # Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
    #
    # @return [self]
    def get_favorites(params = {})
      @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
      self
    end

    def initialize(hash, api_caller)
      @hash = hash
      @api_caller = api_caller
    end

    private

    def media_type
      self.class.name.split('::').last.downcase
    end

    module ClassMethods
      def new_collection(hash, api_caller)
        collection = hash.delete('photo').map { |info| new(info, api_caller) }
        Collection.new(hash).replace(collection)
      end
    end
    extend ClassMethods

    # @private
    def self.included(klass)
      klass.extend(ClassMethods)
    end

    # @private
    def self.new(hash, api_caller)
      eval(hash['media'].capitalize).new(hash, api_caller)
    end

    include Base58
  end
end
owner() click to toggle source

@return [Flickrie::User]

# File lib/flickrie/objects/media.rb, line 82
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end
path_alias() click to toggle source

@return [String]

# File lib/flickrie/objects/media.rb, line 37
def path_alias()     @hash['pathalias']    end
posted_at() click to toggle source

@return [Time]

# File lib/flickrie/objects/media.rb, line 71
def posted_at() Time.at(Integer(@hash['dates']['posted'])) rescue nil end
# @return [Time]
def uploaded_at() Time.at(Integer(@hash['dates']['uploaded'])) rescue nil end
# @return [Time]
def updated_at() Time.at(Integer(@hash['dates']['lastupdate'])) rescue nil end
# @return [Time]
def taken_at() DateTime.parse(@hash['dates']['taken']).to_time rescue nil end
# @return [Fixnum]
def taken_at_granularity() Integer(@hash['dates']['takengranularity']) rescue nil end

# @return [Flickrie::User]
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end

# @return [Fixnum]
def safety_level() Integer(@hash['safety_level']) rescue nil end

# @return [Boolean]
def safe?()       safety_level <= 1 if safety_level end
# @return [Boolean]
def moderate?()   safety_level == 2 if safety_level end
# @return [Boolean]
def restricted?() safety_level == 3 if safety_level end

# @return [String]
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
# @return [String]
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end

# @return [Flickrie::Media::Visibility]
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def 
primary?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 111
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
  eval(hash
restricted?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 92
def restricted?() safety_level == 3 if safety_level end
safe?() click to toggle source

@return [Boolean]

# File lib/flickrie/objects/media.rb, line 88
def safe?()       safety_level <= 1 if safety_level end
safety_level() click to toggle source

@return [Fixnum]

# File lib/flickrie/objects/media.rb, line 85
def safety_level() Integer(@hash['safety_level']) rescue nil end

# @return [Boolean]
def safe?()       safety_level <= 1 if safety_level end
# @return [Boolean]
def moderate?()   safety_level == 2 if safety_level end
# @return [Boolean]
def restricted?() safety_level == 3 if safety_level end

# @return [String]
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
# @return [String]
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end

# @return [Flickrie::Media::Visibility]
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
secret() click to toggle source

@return [String]

# File lib/flickrie/objects/media.rb, line 25
def secret()         @hash['secret']       end
server() click to toggle source

@return [String]

# File lib/flickrie/objects/media.rb, line 27
def server()         @hash['server']       end
short_url() click to toggle source

@return [String]

# File lib/flickrie/objects/media.rb, line 103
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end
tags() click to toggle source

@return [Array<Flickrie::Media::Tag>]

# File lib/flickrie/objects/media.rb, line 63
def tags() @hash['tags'].map { |h| Tag.new(h, @api_caller) } rescue nil end
# @return [Array<Flickrie::Media::Tag>]
def machine_tags() tags.select { |tag| tag.machine_tag? } rescue nil end

# @return [Flickrie::License]
def license() License.new(@hash['license']) rescue nil end

# @return [Time]
def posted_at() Time.at(Integer(@hash['dates']['posted'])) rescue nil end
# @return [Time]
def uploaded_at() Time.at(Integer(@hash['dates']['uploaded'])) rescue nil end
# @return [Time]
def updated_at() Time.at(Integer(@hash['dates']['lastupdate'])) rescue nil end
# @return [Time]
def taken_at() DateTime.parse(@hash['dates']['taken']).to_time rescue nil end
# @return [Fixnum]
def taken_at_granularity() Integer(@hash['dates']['takengranularity']) rescue nil end

# @return [Flickrie::User]
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end

# @return [Fixnum]
def safety_level() Integer(@hash['safety_level']) rescue nil end

# @return [Boolean]
def safe?()       safety_level <= 1 if safety_level end
# @return [Boolean]
def moderate?()   safety_level == 2 if safety_level end
# @return [Boolean]
def restricted?() safety_level == 3 if safety_level end

# @return [String]
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
# @return [String]
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end

# @return [Flickrie::Media::Visibility]
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end
taken_at() click to toggle source

@return [Time]

# File lib/flickrie/objects/media.rb, line 77
def taken_at() DateTime.parse(@hash['dates']['taken']).to_time rescue nil end
# @return [Fixnum]
def taken_at_granularity() Integer(@hash['dates']['takengranularity']) rescue nil end

# @return [Flickrie::User]
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end

# @return [Fixnum]
def safety_level() Integer(@hash['safety_level']) rescue nil end

# @return [Boolean]
def safe?()       safety_level <= 1 if safety_level end
# @return [Boolean]
def moderate?()   safety_level == 2 if safety_level end
# @return [Boolean]
def restricted?() safety_level == 3 if safety_level end

# @return [String]
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
# @return [String]
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end

# @return [Flickrie::Media::Visibility]
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash,
taken_at_granularity() click to toggle source

@return [Fixnum]

# File lib/flickrie/objects/media.rb, line 79
def taken_at_granularity() Integer(@hash['dates']['takengranularity']) rescue nil end

# @return [Flickrie::User]
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end

# @return [Fixnum]
def safety_level() Integer(@hash['safety_level']) rescue nil end

# @return [Boolean]
def safe?()       safety_level <= 1 if safety_level end
# @return [Boolean]
def moderate?()   safety_level == 2 if safety_level end
# @return [Boolean]
def restricted?() safety_level == 3 if safety_level end

# @return [String]
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
# @return [String]
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end

# @return [Flickrie::Media::Visibility]
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller
title() click to toggle source

@return [String]

# File lib/flickrie/objects/media.rb, line 31
def title()          @hash['title']        end
updated_at() click to toggle source

@return [Time]

# File lib/flickrie/objects/media.rb, line 75
def updated_at() Time.at(Integer(@hash['dates']['lastupdate'])) rescue nil end
# @return [Time]
def taken_at() DateTime.parse(@hash['dates']['taken']).to_time rescue nil end
# @return [Fixnum]
def taken_at_granularity() Integer(@hash['dates']['takengranularity']) rescue nil end

# @return [Flickrie::User]
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end

# @return [Fixnum]
def safety_level() Integer(@hash['safety_level']) rescue nil end

# @return [Boolean]
def safe?()       safety_level <= 1 if safety_level end
# @return [Boolean]
def moderate?()   safety_level == 2 if safety_level end
# @return [Boolean]
def restricted?() safety_level == 3 if safety_level end

# @return [String]
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
# @return [String]
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end

# @return [Flickrie::Media::Visibility]
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(
uploaded_at() click to toggle source

@return [Time]

# File lib/flickrie/objects/media.rb, line 73
def uploaded_at() Time.at(Integer(@hash['dates']['uploaded'])) rescue nil end
# @return [Time]
def updated_at() Time.at(Integer(@hash['dates']['lastupdate'])) rescue nil end
# @return [Time]
def taken_at() DateTime.parse(@hash['dates']['taken']).to_time rescue nil end
# @return [Fixnum]
def taken_at_granularity() Integer(@hash['dates']['takengranularity']) rescue nil end

# @return [Flickrie::User]
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end

# @return [Fixnum]
def safety_level() Integer(@hash['safety_level']) rescue nil end

# @return [Boolean]
def safe?()       safety_level <= 1 if safety_level end
# @return [Boolean]
def moderate?()   safety_level == 2 if safety_level end
# @return [Boolean]
def restricted?() safety_level == 3 if safety_level end

# @return [String]
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
# @return [String]
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end

# @return [Flickrie::Media::Visibility]
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.
url() click to toggle source

@return [String]

# File lib/flickrie/objects/media.rb, line 95
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
views_count() click to toggle source

@return [Fixnum]

# File lib/flickrie/objects/media.rb, line 53
def views_count()    Integer(@hash['views'])          rescue nil end
# @return [Fixnum]
def comments_count() Integer(@hash['comments_count']) rescue nil end

# @return [Flickrie::Location]
def location() Location.new(@hash['location']) rescue nil end
# @return [Flickrie::Media::Visibility]
def geo_permissions() Visibility.new(@hash['geoperms']) rescue nil end

# @return [Array<Flickrie::Media::Tag>]
def tags() @hash['tags'].map { |h| Tag.new(h, @api_caller) } rescue nil end
# @return [Array<Flickrie::Media::Tag>]
def machine_tags() tags.select { |tag| tag.machine_tag? } rescue nil end

# @return [Flickrie::License]
def license() License.new(@hash['license']) rescue nil end

# @return [Time]
def posted_at() Time.at(Integer(@hash['dates']['posted'])) rescue nil end
# @return [Time]
def uploaded_at() Time.at(Integer(@hash['dates']['uploaded'])) rescue nil end
# @return [Time]
def updated_at() Time.at(Integer(@hash['dates']['lastupdate'])) rescue nil end
# @return [Time]
def taken_at() DateTime.parse(@hash['dates']['taken']).to_time rescue nil end
# @return [Fixnum]
def taken_at_granularity() Integer(@hash['dates']['takengranularity']) rescue nil end

# @return [Flickrie::User]
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end

# @return [Fixnum]
def safety_level() Integer(@hash['safety_level']) rescue nil end

# @return [Boolean]
def safe?()       safety_level <= 1 if safety_level end
# @return [Boolean]
def moderate?()   safety_level == 2 if safety_level end
# @return [Boolean]
def restricted?() safety_level == 3 if safety_level end

# @return [String]
def url
  if owner and id
    "http://www.flickr.com/photos/#{owner.nsid}/#{id}"
  elsif @hash['url']
    "http://www.flickr.com" + @hash['url']
  end
end
# @return [String]
def short_url
  "http://flic.kr/p/#{to_base58(id)}" rescue nil
end

# @return [Flickrie::Media::Visibility]
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.
visibility() click to toggle source

@return [Flickrie::Media::Visibility]

# File lib/flickrie/objects/media.rb, line 108
def visibility() Visibility.new(@hash['visibility']) rescue nil end

# @return [Boolean]
def primary?() Integer(@hash['isprimary']) == 1 rescue nil end

# @return [Boolean]
def favorite?() Integer(@hash['isfavorite']) == 1 rescue nil end

# @return [Boolean]
def can_comment?()  Integer(@hash['editability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_add_meta?() Integer(@hash['editability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_everyone_comment?()  Integer(@hash['publiceditability']['cancomment']) == 1 rescue nil end
# @return [Boolean]
def can_everyone_add_meta?() Integer(@hash['publiceditability']['canaddmeta']) == 1 rescue nil end

# @return [Boolean]
def can_download?() Integer(@hash['usage']['candownload']) == 1 rescue nil end
# @return [Boolean]
def can_blog?()     Integer(@hash['usage']['canblog']) == 1     rescue nil end
# @return [Boolean]
def can_print?()    Integer(@hash['usage']['canprint']) == 1    rescue nil end
# @return [Boolean]
def can_share?()    Integer(@hash['usage']['canshare']) == 1    rescue nil end

# @return [Boolean]
def commenting_permissions()  Integer(@hash['permissions']['permcomment']) rescue nil end
# @return [Boolean]
def adding_meta_permissions() Integer(@hash['permissions']['permaddmeta']) rescue nil end

# @return [Boolean]
def has_people?() Integer(@hash['people']['haspeople']) == 1 rescue nil end

# @return [Boolean]
def faved?() Integer(@hash['is_faved']) == 1 rescue nil end

# @return [Array<Flickrie::Media::Note>]
def notes() @hash['notes']['note'].map { |info| Note.new(info, @api_caller) } rescue nil end

# @return [Integer]
def content_type() Integer(@hash['content_type']) rescue nil end

# @return [Flickrie::Collection<Flickrie::User>]
def favorites
  collection = @hash['person'].map { |info| User.new(info, @api_caller) }
  Collection.new(@hash).replace(collection)
rescue
  nil
end

def [](key) @hash[key] end
# Returns the raw hash from the response. Useful if something isn't available by methods.
#
# @return [Hash]
def hash() @hash end

# Same as calling `Flickrie.get_(photo|video)_info(id)`.
#
# @return [self]
def get_info(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_info", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_exif(id)`.
#
# @return [self]
def get_exif(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_exif", id, params).hash)
  self
end

# Same as calling `Flickrie.get_(photo|video)_favorites(id)`.
#
# @return [self]
def get_favorites(params = {})
  @hash.deep_merge!(@api_caller.send("get_#{media_type}_favorites", id, params).hash)
  self
end

def initialize(hash, api_caller)
  @hash = hash
  @api_caller = api_caller
end

private

def media_type
  self.class.name.split('::').last.downcase
end

module ClassMethods
  def new_collection(hash, api_caller)
    collection = hash.delete('photo').map { |info| new(info, api_caller) }
    Collection.new(hash).replace(collection)
  end
end
extend ClassMethods

# @private
def self.included(klass)
  klass.extend(ClassMethods)
end

# @private
def self.new(hash, api_caller)
  eval