mongrel_page_cache_handler 1.6.0 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/cache_server.rb CHANGED
@@ -5,11 +5,23 @@ module Mongrel
5
5
 
6
6
  def process(request, response)
7
7
  Mongrel::PageCacheHandler::Utils.do_work(request, response) do
8
- file_path = Mongrel::PageCacheHandler::Utils.build_full_file_path(request)
9
- if File.exists?(file_path)
10
- puts "We found: #{file_path}, let's render it"
11
- response.start(200, true) do |head, out|
12
- out.write(File.open(file_path).read)
8
+ case (app_config.page_cache_storage || "disk")
9
+ when "cachetastic"
10
+ file_path = Mongrel::PageCacheHandler::Utils.build_cachetastic_key(request)
11
+ f = Cachetastic::Caches::PageCache.get(file_path)
12
+ if f
13
+ puts "We found: #{file_path} in the cache, let's render it"
14
+ response.start(200, true) do |head, out|
15
+ out.write(f)
16
+ end
17
+ end
18
+ when "disk"
19
+ file_path = Mongrel::PageCacheHandler::Utils.build_full_file_path(request)
20
+ if File.exists?(file_path)
21
+ puts "We found: #{file_path} on the disk, let's render it"
22
+ response.start(200, true) do |head, out|
23
+ out.write(File.open(file_path).read)
24
+ end
13
25
  end
14
26
  end
15
27
  end
data/lib/cacher.rb CHANGED
@@ -9,10 +9,18 @@ module Mongrel
9
9
  sent = response.header.instance_variable_get("@sent")
10
10
  mcm = sent["mongrel_cache_me"]
11
11
  if mcm
12
- file_path = Mongrel::PageCacheHandler::Utils.build_full_file_path(request, true)
13
- puts "Let's cache this page: #{file_path}"
14
- File.open(file_path, "w") do |f|
15
- f.puts response.body.string
12
+ case app_config.page_cache_storage
13
+ when "cachetastic"
14
+ # file_path = Mongrel::PageCacheHandler::Utils.build_full_file_path(request, true)
15
+ file_path = Mongrel::PageCacheHandler::Utils.build_cachetastic_key(request)
16
+ puts "Let's cache this page: #{file_path} to the cache"
17
+ Cachetastic::Caches::PageCache.set(file_path, response.body.string)
18
+ when "disk"
19
+ file_path = Mongrel::PageCacheHandler::Utils.build_full_file_path(request, true)
20
+ puts "Let's cache this page: #{file_path} to the disk"
21
+ File.open(file_path, "w") do |f|
22
+ f.puts response.body.string
23
+ end
16
24
  end
17
25
  end
18
26
  end
@@ -2,4 +2,4 @@
2
2
  gem_name: mongrel_page_cache_handler
3
3
  package: mongrel_page_cache_handler
4
4
  project: magrathea
5
- version: 1.6.0
5
+ version: 1.6.1
data/lib/utils.rb CHANGED
@@ -22,29 +22,14 @@ module Mongrel
22
22
  end
23
23
 
24
24
  def build_directory_path(request, mk_dirs = false)
25
- path = request.params[Mongrel::Const::PATH_INFO]# + ActionController::Base.page_cache_extension
26
- if path == "/"
27
- path = "/index"
28
- end
29
25
  pcd = ActionController::Base.page_cache_directory
30
- dir_path = File.join(pcd, path)
26
+ dir_path = File.join(pcd, build_path(request))
31
27
  FileUtils.mkdir_p(dir_path) if mk_dirs
32
28
  dir_path
33
29
  end
34
30
 
35
31
  def build_file_name(request)
36
- path = request.params[Mongrel::Const::PATH_INFO]
37
- path = "/index" if path == "/"
38
- url = path
39
- query_string = request.params["QUERY_STRING"]
40
- query_params = {:page => "1"}
41
- unless query_string.blank?
42
- query_string.split("&").sort.each do |pair|
43
- pair_values = pair.split("=")
44
- query_params[pair_values.first.to_sym] = URI.unescape(pair_values.last)
45
- end
46
- end
47
- query_params.delete(:gclid)
32
+ query_params = build_query_params(request)
48
33
  f_name = ""
49
34
  query_params.each_pair do |key, value|
50
35
  f_name << key.to_s
@@ -57,6 +42,31 @@ module Mongrel
57
42
  f_name.chop!
58
43
  f_name
59
44
  end
45
+
46
+ def build_cachetastic_key(request)
47
+ File.join(build_path(request), build_file_name(request))
48
+ end
49
+
50
+ def build_query_params(request)
51
+ query_string = request.params["QUERY_STRING"]
52
+ query_params = {:page => "1"}
53
+ unless query_string.blank?
54
+ query_string.split("&").sort.each do |pair|
55
+ pair_values = pair.split("=")
56
+ query_params[pair_values.first.to_sym] = URI.unescape(pair_values.last)
57
+ end
58
+ end
59
+ query_params.delete(:gclid)
60
+ query_params
61
+ end
62
+
63
+ def build_path(request)
64
+ path = request.params[Mongrel::Const::PATH_INFO]# + ActionController::Base.page_cache_extension
65
+ if path == "/"
66
+ path = "/index"
67
+ end
68
+ path
69
+ end
60
70
 
61
71
  end
62
72
 
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
3
3
  specification_version: 1
4
4
  name: mongrel_page_cache_handler
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.6.0
7
- date: 2007-10-26 00:00:00 -04:00
6
+ version: 1.6.1
7
+ date: 2007-12-21 00:00:00 -05:00
8
8
  summary: mongrel_page_cache_handler
9
9
  require_paths:
10
10
  - lib
@@ -21,6 +21,11 @@ autorequire:
21
21
  - m_action_controller_base
22
22
  - cacher
23
23
  - cache_server
24
+ - utils
25
+ - mongrel_page_cache_handler
26
+ - m_action_controller_base
27
+ - cacher
28
+ - cache_server
24
29
  default_executable:
25
30
  bindir: bin
26
31
  has_rdoc: false