You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: cache.rb
    path of file: ./repos/cloudinary_gem/lib/cloudinary
    
    the code of the file until where you have to start completion: require 'digest'

module Cloudinary
  module Cach
    
      def generate_cache_key(public_id, options)
        type = options[:type] || "upload"
        resource_type = options[:resource_type] || "image"
        transformation = Cloudinary::Utils.generate_transformation_string options.clone
        format = options[:format]
        Digest::SHA1.hexdigest [public_id, type, resource_type, transformation, format].reject(&:blank?).join('/')
      end