Sha256: d9e4f8c098505b5fb84d634da596136f5000941c7fe6479cc4bfee9283caace7

Contents?: true

Size: 780 Bytes

Versions: 1

Compression:

Stored size: 780 Bytes

Contents

class Cloudinary::PreloadedFile
  PRELOADED_CLOUDINARY_PATH = /^([^\/]+)\/([^\/]+)\/v(\d+)\/([^#]+)#([^\/]+)$/

  attr_reader :filename, :version, :public_id, :signature, :resource_type, :type
  def initialize(file_info)
    @resource_type, @type, @version, @filename, @signature = file_info.scan(PRELOADED_CLOUDINARY_PATH).first    
    @public_id = @resource_type == "image" ? @filename[0..(@filename.rindex(".")-1)] : @filename
  end
  
  def valid?
    expected_signature = Cloudinary::Utils.api_sign_request({:public_id=>public_id, :version=>version}, Cloudinary.config.api_secret)
    @signature == expected_signature
  end
  
  def identifier
    "v#{version}/#{filename}"
  end
  
  def to_s
    "#{resource_type}/#{type}/v#{version}/#{filename}##{signature}"
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cloudinary-1.0.55 lib/cloudinary/preloaded_file.rb