class CarrierWave::Storage::Flickr

Public Instance Methods

identifier() click to toggle source
# File lib/carrierwave/storage/flickr.rb, line 21
def identifier
  (@info.as_json || {}).slice(
    'id',
    'secret',
    'server',
    'farm',
    'originalsecret',
    'originalformat').to_json
end
retrieve!(identifier) click to toggle source
# File lib/carrierwave/storage/flickr.rb, line 16
def retrieve!(identifier)
  info = JSON.parse(identifier)
  CarrierWave::Storage::Flickr::File.new(uploader, self, info)
end
store!(file) click to toggle source
# File lib/carrierwave/storage/flickr.rb, line 8
def store!(file)
  f = CarrierWave::Storage::Flickr::File.new(uploader, self)
  @info = f.store(file)
  store_identifier
  store_sizes if store_sizes?
  f
end

Private Instance Methods

prepare_sizes(raw_sizes) click to toggle source
# File lib/carrierwave/storage/flickr.rb, line 48
def prepare_sizes(raw_sizes)
  raw_sizes.each_with_object({}) do |raw_size, sizes|
    key = raw_size['label'].downcase.gsub(/ /, '_').to_sym

    sizes[key] = {
      height: raw_size['height'].to_i,
      width: raw_size['width'].to_i
    }
  end
end
store_identifier() click to toggle source
# File lib/carrierwave/storage/flickr.rb, line 33
def store_identifier
  column = @uploader.mounted_as
  model = @uploader.model

  model.public_send(:"write_#{column}_identifier")
end
store_sizes() click to toggle source
# File lib/carrierwave/storage/flickr.rb, line 40
def store_sizes
  photo_sizes = flickr.photos.getSizes 'photo_id' => @info['id']

  model = @uploader.model

  model.update_column uploader.store_flickr_photo_sizes, prepare_sizes(photo_sizes)
end
store_sizes?() click to toggle source
# File lib/carrierwave/storage/flickr.rb, line 59
def store_sizes?
  uploader.store_flickr_photo_sizes.present?
end