Sha256: f74d99e4eb4688de9e14f13838c1bf18f6a89879e1da6776c6b82bcf8a78704f

Contents?: true

Size: 1.79 KB

Versions: 33

Compression:

Stored size: 1.79 KB

Contents

module FbGraph
  class Album < Node
    include Connections::Photos
    include Connections::Comments
    include Connections::Likes
    include Connections::Likes::Likable
    include Connections::Picture

    attr_accessor :from, :name, :description, :location, :link, :cover_photo, :privacy, :count, :type, :created_time, :updated_time

    def initialize(identifier, attributes = {})
      super
      @from = if (from = attributes[:from])
        if from[:category]
          Page.new(from[:id], from)
        else
          User.new(from[:id], from)
        end
      end
      @name = attributes[:name]
      # NOTE:
      # for some reason, facebook uses different parameter names.
      # "description" in GET & "message" in POST
      @description = attributes[:description] || attributes[:message]
      @location    = attributes[:location]
      @link        = attributes[:link]
      @privacy     = attributes[:privacy]
      @count       = attributes[:count]
      @type        = attributes[:type]

      @cover_photo = if attributes[:cover_photo]
        Photo.new(attributes[:cover_photo])
      end
      @created_time = if attributes[:created_time]
        Time.parse(attributes[:created_time]).utc
      end
      @updated_time = if attributes[:updated_time]
        Time.parse(attributes[:updated_time]).utc
      end

      # cached connection
      cache_collection attributes, :comments
    end

    def picture_with_access_token(size = nil)
      raise Unauthorized.new('Album picture connection requires an access token') unless self.access_token
      _endpoint_ = URI.parse picture_without_access_token(size)
      _endpoint_.query = [_endpoint_.query, {:access_token => self.access_token.to_s}.to_query].compact.join('&')
      _endpoint_.to_s
    end
    alias_method_chain :picture, :access_token
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
fb_graph-2.5.5 lib/fb_graph/album.rb
fb_graph-2.5.4 lib/fb_graph/album.rb
fb_graph-2.5.3 lib/fb_graph/album.rb
fb_graph-2.5.2 lib/fb_graph/album.rb
fb_graph-2.5.1 lib/fb_graph/album.rb
fb_graph-2.5.0 lib/fb_graph/album.rb
fb_graph-2.4.20 lib/fb_graph/album.rb
fb_graph-2.4.19 lib/fb_graph/album.rb
fb_graph-2.4.18 lib/fb_graph/album.rb
fb_graph-2.4.17 lib/fb_graph/album.rb
fb_graph-2.4.16 lib/fb_graph/album.rb
fb_graph-2.4.15 lib/fb_graph/album.rb
fb_graph-2.4.14 lib/fb_graph/album.rb
fb_graph-2.4.13 lib/fb_graph/album.rb
fb_graph-2.4.12 lib/fb_graph/album.rb
fb_graph-2.4.11 lib/fb_graph/album.rb
fb_graph-2.4.10 lib/fb_graph/album.rb
fb_graph-2.4.9 lib/fb_graph/album.rb
fb_graph-2.4.8 lib/fb_graph/album.rb
fb_graph-2.4.7 lib/fb_graph/album.rb