Class: CarrierWave::Storage::Flickr::File

Inherits:
Object
  • Object
show all
Defined in:
lib/carrierwave/storage/flickr.rb

Instance Method Summary collapse

Constructor Details

#initialize(uploader, base, info = nil) ⇒ File

Returns a new instance of File.



64
65
66
67
68
# File 'lib/carrierwave/storage/flickr.rb', line 64

def initialize(uploader, base, info = nil)
  @uploader = uploader
  @base = base
  @info = FlickRaw::Response.build(info, 'photo') if info
end

Instance Method Details

#add_to_album(photo_id) ⇒ Object



94
95
96
97
98
# File 'lib/carrierwave/storage/flickr.rb', line 94

def add_to_album(photo_id)
  flickr.photosets.addPhoto(
    'photo_id' => photo_id,
    'photoset_id' => album)
end

#albumObject



100
101
102
# File 'lib/carrierwave/storage/flickr.rb', line 100

def album
  @uploader.flickr_credentials[:album]
end

#deleteObject



90
91
92
# File 'lib/carrierwave/storage/flickr.rb', line 90

def delete
  flickr.photos.delete 'photo_id' => @info['id']
end

#pathObject



74
75
76
# File 'lib/carrierwave/storage/flickr.rb', line 74

def path
  url
end

#store(new_file) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
# File 'lib/carrierwave/storage/flickr.rb', line 78

def store(new_file)
  file = new_file.to_file

  photo_id = flickr.upload_photo file, **store_options

  add_to_album(photo_id) if album.present?

  file.close if file && !file.closed?

  @info = flickr.photos.getInfo('photo_id' => photo_id)
end

#url(format: :original) ⇒ Object



70
71
72
# File 'lib/carrierwave/storage/flickr.rb', line 70

def url(format: :original)
  FlickRaw.public_send(format_getter(format), @info) if @info
end