Class Rack::Cache::Key

  1. lib/rack/cache/key.rb
Parent: Object

Methods

public class

  1. call
  2. new

public instance

  1. generate

Included modules

  1. Rack::Utils

Public class methods

call (request)

Implement .call, since it seems like the “Rack-y” thing to do. Plus, it opens the door for cache key generators to just be blocks.

[show source]
    # File lib/rack/cache/key.rb, line 9
 9:     def self.call(request)
10:       new(request).generate
11:     end
new (request)
[show source]
    # File lib/rack/cache/key.rb, line 13
13:     def initialize(request)
14:       @request = request
15:     end

Public instance methods

generate ()

Generate a normalized cache key for the request.

[show source]
    # File lib/rack/cache/key.rb, line 18
18:     def generate
19:       parts = []
20:       parts << @request.scheme << "://"
21:       parts << @request.host
22: 
23:       if @request.scheme == "https" && @request.port != 443 ||
24:           @request.scheme == "http" && @request.port != 80
25:         parts << ":" << @request.port.to_s
26:       end
27: 
28:       parts << @request.script_name
29:       parts << @request.path_info
30: 
31:       if qs = query_string
32:         parts << "?"
33:         parts << qs
34:       end
35: 
36:       parts.join
37:     end