padrino-cache 0.10.5 → 0.10.6.a

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.
@@ -93,18 +93,28 @@ module Padrino
93
93
  began_at = Time.now
94
94
  value = settings.cache.get(@route.cache_key || env['PATH_INFO'])
95
95
  logger.debug "GET Cache", began_at, @route.cache_key || env['PATH_INFO'] if defined?(logger) && value
96
- halt 200, value if value
96
+
97
+ if value
98
+ content_type(value[:content_type]) if value[:content_type]
99
+ halt 200, value[:response_buffer] if value[:response_buffer]
100
+ end
97
101
  end
98
102
  end
99
103
 
100
104
  route.after_filters do
101
105
  if settings.caching?
102
106
  began_at = Time.now
107
+
108
+ content = {
109
+ :response_buffer => @_response_buffer,
110
+ :content_type => @_content_type
111
+ }
112
+
103
113
  if @_last_expires_in
104
- settings.cache.set(@route.cache_key || env['PATH_INFO'], @_response_buffer, :expires_in => @_last_expires_in)
114
+ settings.cache.set(@route.cache_key || env['PATH_INFO'], content, :expires_in => @_last_expires_in)
105
115
  @_last_expires_in = nil
106
116
  else
107
- settings.cache.set(@route.cache_key || env['PATH_INFO'], @_response_buffer)
117
+ settings.cache.set(@route.cache_key || env['PATH_INFO'], content)
108
118
  end
109
119
  logger.debug "SET Cache", began_at, @route.cache_key || env['PATH_INFO'] if defined?(logger)
110
120
  end
@@ -35,16 +35,17 @@ module Padrino
35
35
  def get(key)
36
36
  init
37
37
  if ::File.exist?(path_for_key(key))
38
- contents = ::File.read(path_for_key(key))
38
+ read_method = ::File.respond_to?(:binread) ? :binread : :read
39
+ contents = ::File.send(read_method, path_for_key(key))
39
40
  expires_in, body = contents.split("\n", 2)
40
41
  expires_in = expires_in.to_i
41
42
  if expires_in == -1 or Time.new.to_i < expires_in
42
43
  Marshal.load(body) if body
43
- else
44
+ else # expire the key
44
45
  delete(key)
45
46
  nil
46
47
  end
47
- else
48
+ else # key can't be found
48
49
  nil
49
50
  end
50
51
  end
data/lib/padrino-cache.rb CHANGED
@@ -91,7 +91,7 @@ module Padrino
91
91
  app.helpers Padrino::Cache::Helpers::CacheStore
92
92
  app.helpers Padrino::Cache::Helpers::Fragment
93
93
  app.helpers Padrino::Cache::Helpers::Page
94
- app.set :cache, Padrino::Cache::Store::File.new(Padrino.root('tmp', app.app_name.to_s ,'cache'))
94
+ app.set :cache, Padrino::Cache::Store::File.new(Padrino.root('tmp', defined?(app.app_name) ? app.app_name.to_s : '', 'cache'))
95
95
  app.disable :caching
96
96
  end
97
97
  alias :included :registered
@@ -87,14 +87,14 @@ describe "PadrinoCache" do
87
87
  get "/foo"
88
88
  assert_equal 200, status
89
89
  assert_equal 'foo', body
90
- assert_equal 'foo', @app.cache.get(:foo)
90
+ assert_equal 'foo', @app.cache.get(:foo)[:response_buffer]
91
91
  get "/foo"
92
92
  assert_equal 'foo', body
93
93
 
94
94
  get "/bar"
95
95
  assert_equal 200, status
96
96
  assert_equal 'bar', body
97
- assert_equal 'bar', @app.cache.get(:bar)
97
+ assert_equal 'bar', @app.cache.get(:bar)[:response_buffer]
98
98
  get "/bar"
99
99
  assert_equal 'bar', body
100
100
  end
metadata CHANGED
@@ -1,8 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: padrino-cache
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.10.5
4
+ hash: 98
5
+ prerelease: 7
6
+ segments:
7
+ - 0
8
+ - 10
9
+ - 6
10
+ - a
11
+ version: 0.10.6.a
6
12
  platform: ruby
7
13
  authors:
8
14
  - Padrino Team
@@ -13,8 +19,7 @@ autorequire:
13
19
  bindir: bin
14
20
  cert_chain: []
15
21
 
16
- date: 2011-10-12 00:00:00 -07:00
17
- default_executable:
22
+ date: 2012-01-23 00:00:00 Z
18
23
  dependencies:
19
24
  - !ruby/object:Gem::Dependency
20
25
  name: padrino-core
@@ -24,7 +29,13 @@ dependencies:
24
29
  requirements:
25
30
  - - "="
26
31
  - !ruby/object:Gem::Version
27
- version: 0.10.5
32
+ hash: 98
33
+ segments:
34
+ - 0
35
+ - 10
36
+ - 6
37
+ - a
38
+ version: 0.10.6.a
28
39
  type: :runtime
29
40
  version_requirements: *id001
30
41
  description: Caching support for memcached, page and fragment
@@ -56,7 +67,6 @@ files:
56
67
  - test/helper.rb
57
68
  - test/test_padrino_cache.rb
58
69
  - test/test_stores.rb
59
- has_rdoc: true
60
70
  homepage: http://www.padrinorb.com
61
71
  licenses: []
62
72
 
@@ -70,17 +80,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
70
80
  requirements:
71
81
  - - ">="
72
82
  - !ruby/object:Gem::Version
83
+ hash: 3
84
+ segments:
85
+ - 0
73
86
  version: "0"
74
87
  required_rubygems_version: !ruby/object:Gem::Requirement
75
88
  none: false
76
89
  requirements:
77
- - - ">="
90
+ - - ">"
78
91
  - !ruby/object:Gem::Version
79
- version: 1.3.6
92
+ hash: 25
93
+ segments:
94
+ - 1
95
+ - 3
96
+ - 1
97
+ version: 1.3.1
80
98
  requirements: []
81
99
 
82
100
  rubyforge_project: padrino-cache
83
- rubygems_version: 1.6.2
101
+ rubygems_version: 1.8.15
84
102
  signing_key:
85
103
  specification_version: 3
86
104
  summary: Page and fragment caching for Padrino
@@ -88,3 +106,4 @@ test_files:
88
106
  - test/helper.rb
89
107
  - test/test_padrino_cache.rb
90
108
  - test/test_stores.rb
109
+ has_rdoc: