responders 0.4 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
@@ -88,7 +88,7 @@ module Responders
|
|
88
88
|
def to_html
|
89
89
|
super
|
90
90
|
|
91
|
-
|
91
|
+
if set_i18n_flash?
|
92
92
|
if has_errors?
|
93
93
|
controller.flash[:alert] ||= @alert if @alert
|
94
94
|
status = Responders::FlashResponder.flash_keys.last
|
@@ -107,6 +107,10 @@ module Responders
|
|
107
107
|
|
108
108
|
protected
|
109
109
|
|
110
|
+
def set_i18n_flash? #:nodoc:
|
111
|
+
!get? && @flash != false
|
112
|
+
end
|
113
|
+
|
110
114
|
def mount_i18n_options(status) #:nodoc:
|
111
115
|
resource_name = if resource.class.respond_to?(:human_name)
|
112
116
|
resource.class.human_name
|
@@ -15,9 +15,9 @@ module Responders
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def to_format
|
18
|
-
if
|
18
|
+
if do_http_cache?
|
19
19
|
timestamp = resources.flatten.map do |resource|
|
20
|
-
resource.updated_at.utc if resource.respond_to?(:updated_at)
|
20
|
+
(resource.updated_at || Time.now).utc if resource.respond_to?(:updated_at)
|
21
21
|
end.compact.max
|
22
22
|
|
23
23
|
controller.response.last_modified = timestamp if timestamp
|
@@ -29,5 +29,15 @@ module Responders
|
|
29
29
|
|
30
30
|
super
|
31
31
|
end
|
32
|
+
|
33
|
+
protected
|
34
|
+
|
35
|
+
def do_http_cache?
|
36
|
+
get? && @http_cache != false && !new_record? && controller.response.last_modified.nil?
|
37
|
+
end
|
38
|
+
|
39
|
+
def new_record?
|
40
|
+
resource.respond_to?(:new_record?) && resource.new_record?
|
41
|
+
end
|
32
42
|
end
|
33
43
|
end
|
data/lib/responders/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module Responders
|
2
|
-
VERSION = "0.4".freeze
|
3
|
-
end
|
2
|
+
VERSION = "0.4.1".freeze
|
3
|
+
end
|
@@ -17,6 +17,12 @@ class HttpCacheController < ApplicationController
|
|
17
17
|
respond_with [Model.new(Time.utc(2009)), Model.new(Time.utc(2008))]
|
18
18
|
end
|
19
19
|
|
20
|
+
def new_record
|
21
|
+
model = Model.new(Time.utc(2009))
|
22
|
+
model.new_record = true
|
23
|
+
respond_with(model)
|
24
|
+
end
|
25
|
+
|
20
26
|
def empty
|
21
27
|
respond_with []
|
22
28
|
end
|
@@ -101,4 +107,16 @@ class HttpCacheResponderTest < ActionController::TestCase
|
|
101
107
|
assert_match /xml/, @response.body
|
102
108
|
assert_equal 200, @response.status
|
103
109
|
end
|
110
|
+
|
111
|
+
def test_it_does_not_set_body_etag
|
112
|
+
get :collection
|
113
|
+
assert_nil @response.headers["ETag"]
|
114
|
+
end
|
115
|
+
|
116
|
+
def test_does_not_set_cache_for_new_records
|
117
|
+
get :new_record
|
118
|
+
assert_nil @response.headers["Last-Modified"]
|
119
|
+
assert_equal "<xml />", @response.body
|
120
|
+
assert_equal 200, @response.status
|
121
|
+
end
|
104
122
|
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: responders
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Jos\xC3\xA9 Valim"
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-12-
|
12
|
+
date: 2009-12-24 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|