class AlchemyCloudinary::DragonflyDataStore

Public Instance Methods

destroy(uid) click to toggle source
# File lib/alchemy_cloudinary/dragonfly_data_store.rb, line 19
def destroy(uid)
  Cloudinary::Uploader.destroy public_id(uid)
end
read(uid) click to toggle source
# File lib/alchemy_cloudinary/dragonfly_data_store.rb, line 14
def read(uid)
  url = Cloudinary::Utils.cloudinary_url(public_id(uid), format: ext(uid) || 'jpg')
  [Cloudinary::Downloader.download(url), {'name' => name(uid)}]
end
url_for(uid, options = {}) click to toggle source
# File lib/alchemy_cloudinary/dragonfly_data_store.rb, line 23
def url_for(uid, options = {})
  options = {format: ext(uid)}.merge(options)
  Cloudinary::Utils.cloudinary_url(public_id(uid), options)
end
write(content, opts = {}) click to toggle source
# File lib/alchemy_cloudinary/dragonfly_data_store.rb, line 7
def write(content, opts = {})
  result = Cloudinary::Uploader.upload(content.file, {
    public_id: name(content.name)
  }.merge(opts))
  "#{result['public_id']}.#{result['format']}"
end

Private Instance Methods

ext(uid, with_dot = false) click to toggle source
# File lib/alchemy_cloudinary/dragonfly_data_store.rb, line 43
def ext(uid, with_dot = false)
  ext = File.extname(uid)
  ext[0] = '' if ext && !with_dot
  ext
end
name(uid) click to toggle source
# File lib/alchemy_cloudinary/dragonfly_data_store.rb, line 34
def name(uid)
  pid = public_id(uid)
  if pid.include?('_')
    public_id(uid).split('_')[0..-1].join
  else
    pid
  end
end
public_id(uid) click to toggle source
# File lib/alchemy_cloudinary/dragonfly_data_store.rb, line 30
def public_id(uid)
  File.basename(uid, ext(uid, true))
end