rack-cachely 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +1 -1
- data/lib/rack-cachely/config.rb +1 -1
- data/lib/rack-cachely/context.rb +9 -2
- data/lib/rack-cachely/key.rb +2 -2
- data/lib/rack-cachely/store.rb +6 -2
- data/lib/rack-cachely/version.rb +1 -1
- metadata +2 -2
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/lib/rack-cachely/config.rb
    CHANGED
    
    
    
        data/lib/rack-cachely/context.rb
    CHANGED
    
    | @@ -13,6 +13,7 @@ module Rack | |
| 13 13 | 
             
                  def call(env)
         | 
| 14 14 | 
             
                    @env = env
         | 
| 15 15 | 
             
                    if self.perform_caching?
         | 
| 16 | 
            +
                      handle_refresh_request
         | 
| 16 17 | 
             
                      results = Rack::Cachely::Store.get(key)
         | 
| 17 18 | 
             
                      if results
         | 
| 18 19 | 
             
                        return results
         | 
| @@ -25,13 +26,19 @@ module Rack | |
| 25 26 | 
             
                    return results
         | 
| 26 27 | 
             
                  end
         | 
| 27 28 |  | 
| 29 | 
            +
                  def handle_refresh_request
         | 
| 30 | 
            +
                    if request.params["refresh-cachely"]
         | 
| 31 | 
            +
                      Rack::Cachely::Store.delete(key)
         | 
| 32 | 
            +
                    end
         | 
| 33 | 
            +
                  end
         | 
| 34 | 
            +
             | 
| 28 35 | 
             
                  def perform_caching?
         | 
| 29 | 
            -
                     | 
| 36 | 
            +
                    perform_caching = if defined?(Rails)
         | 
| 30 37 | 
             
                      Rails.application.config.action_controller.perform_caching
         | 
| 31 38 | 
             
                    else
         | 
| 32 39 | 
             
                      @env['rack-cachely.perform_caching'].to_s == 'true'
         | 
| 33 40 | 
             
                    end
         | 
| 34 | 
            -
                     | 
| 41 | 
            +
                    perform_caching && request.request_method == 'GET' && !request.params["no-cachely"]
         | 
| 35 42 | 
             
                  end
         | 
| 36 43 |  | 
| 37 44 | 
             
                  def is_cacheable?(results)
         | 
    
        data/lib/rack-cachely/key.rb
    CHANGED
    
    | @@ -43,9 +43,9 @@ module Rack | |
| 43 43 | 
             
                  # and applying consistent escaping.
         | 
| 44 44 | 
             
                  def query_string
         | 
| 45 45 | 
             
                    return nil if @request.query_string.nil?
         | 
| 46 | 
            -
             | 
| 46 | 
            +
                    ignore_query_params = ["no-cachely", "refresh-cachely", Rack::Cachely.config.ignore_query_params].flatten
         | 
| 47 47 | 
             
                    query = @request.query_string.split(/[&;] */n).map { |p| unescape(p).split('=', 2) }.sort
         | 
| 48 | 
            -
                    query = query.reject{|k,v|  | 
| 48 | 
            +
                    query = query.reject{|k,v| ignore_query_params.include?(k)}.map{ |k,v| "#{escape(k)}=#{escape(v)}" }
         | 
| 49 49 |  | 
| 50 50 | 
             
                    query.join('&')
         | 
| 51 51 | 
             
                  end
         | 
    
        data/lib/rack-cachely/store.rb
    CHANGED
    
    | @@ -10,6 +10,9 @@ module Rack | |
| 10 10 | 
             
                  def get(key)
         | 
| 11 11 | 
             
                    remote do
         | 
| 12 12 | 
             
                      url = "#{config.cachely_url}?_version=#{Rack::Cachely::VERSION}&url=#{CGI.escape(key.to_s)}"
         | 
| 13 | 
            +
                      if config.verbose
         | 
| 14 | 
            +
                        logger.debug "Cachely [URL]: #{url}"
         | 
| 15 | 
            +
                      end
         | 
| 13 16 | 
             
                      uri = URI(url)
         | 
| 14 17 | 
             
                      http = Net::HTTP.new(uri.host, uri.port)
         | 
| 15 18 | 
             
                      request = Net::HTTP::Get.new(uri.request_uri)
         | 
| @@ -25,7 +28,7 @@ module Rack | |
| 25 28 | 
             
                        logger.info "Cachely [response.code]: #{response.code}"
         | 
| 26 29 | 
             
                        logger.info "Cachely [response.body]: #{response.body}"
         | 
| 27 30 | 
             
                      end
         | 
| 28 | 
            -
                      if response.code.to_i | 
| 31 | 
            +
                      if (200...300).include?(response.code.to_i)
         | 
| 29 32 | 
             
                        headers = {}
         | 
| 30 33 | 
             
                        response.each_header do |key, value|
         | 
| 31 34 | 
             
                          headers[key] = value
         | 
| @@ -67,8 +70,9 @@ module Rack | |
| 67 70 |  | 
| 68 71 | 
             
                  def remote(&block)
         | 
| 69 72 | 
             
                    begin
         | 
| 70 | 
            -
                      Timeout::timeout( | 
| 73 | 
            +
                      Timeout::timeout(config.timeout, &block)
         | 
| 71 74 | 
             
                    rescue Timeout::Error, Errno::ECONNREFUSED => e
         | 
| 75 | 
            +
                      # raise e
         | 
| 72 76 | 
             
                      logger.error(e)
         | 
| 73 77 | 
             
                    end
         | 
| 74 78 | 
             
                  end
         | 
    
        data/lib/rack-cachely/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rack-cachely
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.3.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2012-10- | 
| 12 | 
            +
            date: 2012-10-30 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: rack
         |