Sha256: 68344e04847f67219438f4acc73855f2f137408922b4736bcc2ff026f24b2cab

Contents?: true

Size: 975 Bytes

Versions: 2

Compression:

Stored size: 975 Bytes

Contents

module Shellac
  class Cache
    include Singleton
    
    VARNISH_CONFIGURATION = YAML.load_file("#{Rails.root.to_s}/config/varnish.yml")[::Rails.env]    
    
    # return client instance
    def client
      @client ||= Varnish::Client.new   "#{config("host")}:#{config("port")}",
                                        :timeout => config("timeout"),
                                        :keep_alive => config("keep_alive")
    end
    
    # purge a regular expression of url
    def purge path, recursive
      
      if recursive
        regex = "^#{path}" # purge any page starting with regex
      else
        regex = "^#{path}$"
      end
      
      # write to log
      Rails.logger.info "*** Purging#{" (recursively)" if recursive}: #{path}"
      
      # purge with 
      client.purge "req.http.host ~ ^#{config("host")} && req.url ~ #{regex}"
    end
    
    protected
    
      def config attr
        VARNISH_CONFIGURATION[attr]
      end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
shellac-0.0.2.1 lib/shellac/cache.rb
shellac-0.0.2 lib/shellac/cache.rb