Sha256: c7935bb381fa788662b5276150baf4c249ee3e011d7ceb2cd707949ad4dc7192

Contents?: true

Size: 1.05 KB

Versions: 52

Compression:

Stored size: 1.05 KB

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, @format = Cloudinary::PreloadedFile.split_format(@filename)      
  end
  
  def valid?
    public_id = @resource_type == "raw" ? self.filename : self.public_id
    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

  def self.split_format(identifier)
    last_dot = identifier.rindex(".")
    return [identifier, nil] if last_dot.nil?
    public_id = identifier[0, last_dot]
    format = identifier[last_dot+1..-1]
    return [public_id, format]    
  end
  
end

Version data entries

52 entries across 52 versions & 1 rubygems

Version Path
cloudinary-1.8.3 lib/cloudinary/preloaded_file.rb
cloudinary-1.8.2 lib/cloudinary/preloaded_file.rb
cloudinary-1.8.1 lib/cloudinary/preloaded_file.rb
cloudinary-1.8.0 lib/cloudinary/preloaded_file.rb
cloudinary-1.7.0 lib/cloudinary/preloaded_file.rb
cloudinary-1.6.0 lib/cloudinary/preloaded_file.rb
cloudinary-1.5.2 lib/cloudinary/preloaded_file.rb
cloudinary-1.4.0 lib/cloudinary/preloaded_file.rb
cloudinary-1.3.0 lib/cloudinary/preloaded_file.rb
cloudinary-1.2.4 lib/cloudinary/preloaded_file.rb
cloudinary-1.2.3 lib/cloudinary/preloaded_file.rb
cloudinary-1.2.2 lib/cloudinary/preloaded_file.rb
cloudinary-1.2.1 lib/cloudinary/preloaded_file.rb
cloudinary-1.2.0 lib/cloudinary/preloaded_file.rb
cloudinary-1.1.7 lib/cloudinary/preloaded_file.rb
cloudinary-1.1.6 lib/cloudinary/preloaded_file.rb
cloudinary-1.1.5 lib/cloudinary/preloaded_file.rb
cloudinary-1.1.4 lib/cloudinary/preloaded_file.rb
cloudinary-1.1.3 lib/cloudinary/preloaded_file.rb
cloudinary-1.1.2 lib/cloudinary/preloaded_file.rb