class Flickr::Client::Upload

Client for uploading photos.

Public Class Methods

new(access_token = nil) click to toggle source
Calls superclass method Flickr::Client::new
# File lib/flickr/client/upload.rb, line 9
def initialize(access_token = nil)
  access_token ||= Array.new(2, nil)

  super() do |builder|
    # Request
    builder.use FaradayMiddleware::OAuth,
      consumer_key:    api_key,
      consumer_secret: shared_secret,
      token:           access_token[0],
      token_secret:    access_token[1]
    builder.use Faraday::Request::Multipart

    # Response
    builder.use Flickr::Middleware::CheckStatus
    builder.use FaradayMiddleware::ParseXml
    builder.use Flickr::Middleware::CheckOAuth
  end
end

Public Instance Methods

replace(params = {}) click to toggle source
# File lib/flickr/client/upload.rb, line 33
def replace(params = {})
  params[:photo] = UploadIO(params[:photo])
  post "replace", params
end
upload(params = {}) click to toggle source
# File lib/flickr/client/upload.rb, line 28
def upload(params = {})
  params[:photo] = UploadIO(params[:photo])
  post "upload", params
end

Private Instance Methods

UploadIO(file) click to toggle source
# File lib/flickr/client/upload.rb, line 40
def UploadIO(file)
  io = Faraday::UploadIO.new(file.file, file.content_type, file.path)
  io.instance_eval { def length; size; end } # hack for multipart-post to support any IO
  io
end
length() click to toggle source
# File lib/flickr/client/upload.rb, line 42
def length; size; end
url() click to toggle source
# File lib/flickr/client/upload.rb, line 46
def url
  "https://api.flickr.com/services"
end