redis_template_resolver 0.2.0 → 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.
- checksums.yaml +7 -0
- data/CHANGELOG +4 -0
- data/lib/redis_template_resolver.rb +7 -5
- data/redis_template_resolver.gemspec +2 -2
- data/spec/lib/redis_template_resolver_spec.rb +10 -10
- data/spec/spec_helper.rb +1 -1
- metadata +50 -66
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b7e1d74c2a0de4bce0900b3e48ea86aea6ac0ca5
|
4
|
+
data.tar.gz: f3b0f2309e27627534fb4d6df1e28520276c2e95
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1a49d2eaa670d68a9f25d811de002bd4551cfa9fbfcfb5ac5417172983918c45884fe6d2696fba66bd6eb1ad2a71c100e670a821dc0df501a6c2ea400019cd55
|
7
|
+
data.tar.gz: 979f9d9c51be0c821558f8ae3b409687a227e375e368f7ada19639e2edb241a1e4106e4f0e03ef1863f8243c64573f2016edef9edf7ca40597808f585c906d72
|
data/CHANGELOG
CHANGED
@@ -148,18 +148,20 @@ class RedisTemplateResolver < ActionView::Resolver
|
|
148
148
|
|
149
149
|
Rails.logger.info "Fetching remote template from #{layout_url.inspect}"
|
150
150
|
|
151
|
-
response =
|
152
|
-
|
151
|
+
response = Curl.get( layout_url ) do |curl|
|
152
|
+
curl.timeout = self.http_timeout
|
153
|
+
end
|
154
|
+
response_body = response.body_str
|
153
155
|
|
154
|
-
Rails.logger.info "Got remote template response code #{response.
|
156
|
+
Rails.logger.info "Got remote template response code #{response.response_code} with body #{response_body.inspect}"
|
155
157
|
|
156
|
-
return nil if response.
|
158
|
+
return nil if response.response_code == 404
|
157
159
|
|
158
160
|
response_body = postprocess_template( response_body ) if respond_to?( :postprocess_template, true )
|
159
161
|
|
160
162
|
return response_body
|
161
163
|
|
162
|
-
rescue
|
164
|
+
rescue SocketError, Curl::Err::TimeoutError, Errno::ECONNREFUSED, TemplateRejectedError => e
|
163
165
|
Rails.logger.error e.message
|
164
166
|
return nil
|
165
167
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "redis_template_resolver"
|
3
|
-
s.version = "0.
|
3
|
+
s.version = "0.3.0"
|
4
4
|
s.homepage = "https://github.com/psd/redis_template_resolver"
|
5
5
|
s.summary = "A template resolver for rails that retrieves templates via http and caches them in redis"
|
6
6
|
|
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
18
|
|
19
19
|
s.add_runtime_dependency( "redis", "> 3.0.0" )
|
20
|
-
s.add_runtime_dependency( "
|
20
|
+
s.add_runtime_dependency( "curb", "> 0.8.0" )
|
21
21
|
s.add_runtime_dependency( "rails", "~> 3.2.6" )
|
22
22
|
s.add_runtime_dependency( "activesupport", ">3.2.0" )
|
23
23
|
|
@@ -12,11 +12,11 @@ describe ExampleClass do
|
|
12
12
|
let( :dummy_remote_template_with_html_escaped_tags ) { "dummy template {{flash}} {{body}} {{head}} {{headline}} {{title}}" }
|
13
13
|
|
14
14
|
let( :fake_httparty_response ) do
|
15
|
-
OpenStruct.new( :
|
15
|
+
OpenStruct.new( :response_code => 200, :body_str => dummy_remote_template )
|
16
16
|
end
|
17
17
|
|
18
18
|
let( :fake_httparty_response_with_html_escaped_tags ) do
|
19
|
-
OpenStruct.new( :
|
19
|
+
OpenStruct.new( :response_code => 200, :body_str => dummy_remote_template_with_html_escaped_tags )
|
20
20
|
end
|
21
21
|
|
22
22
|
let( :redis_connector ) do
|
@@ -47,7 +47,7 @@ describe ExampleClass do
|
|
47
47
|
end
|
48
48
|
|
49
49
|
it 'should continue processing if the guard function returns true' do
|
50
|
-
|
50
|
+
Curl.stub( :get => fake_httparty_response )
|
51
51
|
ExampleClass.any_instance.stub( :resolver_guard ).and_return( true )
|
52
52
|
result = subject.find_templates( "redis:template", "layouts", "", {} )
|
53
53
|
result.first.source.should == dummy_remote_template
|
@@ -74,7 +74,7 @@ describe ExampleClass do
|
|
74
74
|
context "if the template in the local cache is too old" do
|
75
75
|
before( :each ) do
|
76
76
|
Timecop.travel( described_class.local_cache_ttl.seconds.ago ) do
|
77
|
-
|
77
|
+
Curl.stub( :get ).and_return( fake_httparty_response )
|
78
78
|
subject.find_templates( name, prefix, partial, details )
|
79
79
|
end
|
80
80
|
end
|
@@ -89,7 +89,7 @@ describe ExampleClass do
|
|
89
89
|
before( :each ) do
|
90
90
|
target_time = described_class.local_cache_ttl - 2
|
91
91
|
Timecop.travel( target_time.seconds.ago ) do
|
92
|
-
|
92
|
+
Curl.stub( :get => fake_httparty_response )
|
93
93
|
subject.find_templates( name, prefix, partial, details )
|
94
94
|
end
|
95
95
|
end
|
@@ -109,7 +109,7 @@ describe ExampleClass do
|
|
109
109
|
|
110
110
|
context "if a template could be found in the redis cache" do
|
111
111
|
before( :each ) do
|
112
|
-
redis_connector.stub
|
112
|
+
redis_connector.stub( :get ).and_return( dummy_remote_template )
|
113
113
|
end
|
114
114
|
|
115
115
|
it "should store the template in the local cache for 60 seconds" do
|
@@ -126,7 +126,7 @@ describe ExampleClass do
|
|
126
126
|
end
|
127
127
|
|
128
128
|
it "should not fall back to http" do
|
129
|
-
|
129
|
+
Curl.should_not_receive( :get )
|
130
130
|
subject.find_templates( name, prefix, partial, details )
|
131
131
|
end
|
132
132
|
|
@@ -134,12 +134,12 @@ describe ExampleClass do
|
|
134
134
|
|
135
135
|
context "if no template could be found in the redis cache" do
|
136
136
|
before( :each ) do
|
137
|
-
redis_connector.stub
|
137
|
+
redis_connector.stub( :get )
|
138
138
|
end
|
139
139
|
|
140
140
|
context "if the template could be retrieved via HTTP" do
|
141
141
|
before( :each ) do
|
142
|
-
|
142
|
+
Curl.stub( :get => fake_httparty_response )
|
143
143
|
end
|
144
144
|
|
145
145
|
it "should store the template in redis" do
|
@@ -164,7 +164,7 @@ describe ExampleClass do
|
|
164
164
|
|
165
165
|
context "if the template could not be retrieved via HTTP" do
|
166
166
|
before( :each ) do
|
167
|
-
|
167
|
+
Curl.stub( :get ).and_raise( Curl::Err::TimeoutError )
|
168
168
|
end
|
169
169
|
|
170
170
|
it "should use the default template" do
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,130 +1,115 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redis_template_resolver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.2.0
|
4
|
+
version: 0.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- ProSiebenSat.1 Ditital, Central Systems Architecture
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-08-19 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
prerelease: false
|
16
|
-
type: :runtime
|
17
14
|
name: redis
|
18
|
-
|
19
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
20
16
|
requirements:
|
21
|
-
- -
|
17
|
+
- - '>'
|
22
18
|
- !ruby/object:Gem::Version
|
23
19
|
version: 3.0.0
|
24
|
-
|
25
|
-
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>'
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 3.0.0
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
|
-
|
32
|
-
|
33
|
-
name: httparty
|
34
|
-
version_requirements: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
28
|
+
name: curb
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
36
30
|
requirements:
|
37
|
-
- -
|
31
|
+
- - '>'
|
38
32
|
- !ruby/object:Gem::Version
|
39
33
|
version: 0.8.0
|
40
|
-
|
41
|
-
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>'
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: 0.8.0
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
|
-
prerelease: false
|
48
|
-
type: :runtime
|
49
42
|
name: rails
|
50
|
-
|
51
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
52
44
|
requirements:
|
53
45
|
- - ~>
|
54
46
|
- !ruby/object:Gem::Version
|
55
47
|
version: 3.2.6
|
56
|
-
|
57
|
-
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: 3.2.6
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
|
-
prerelease: false
|
64
|
-
type: :runtime
|
65
56
|
name: activesupport
|
66
|
-
|
67
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
68
58
|
requirements:
|
69
|
-
- -
|
59
|
+
- - '>'
|
70
60
|
- !ruby/object:Gem::Version
|
71
61
|
version: 3.2.0
|
72
|
-
|
73
|
-
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>'
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: 3.2.0
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
|
-
prerelease: false
|
80
|
-
type: :development
|
81
70
|
name: rspec
|
82
|
-
|
83
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
84
72
|
requirements:
|
85
|
-
- -
|
73
|
+
- - '>'
|
86
74
|
- !ruby/object:Gem::Version
|
87
75
|
version: 2.10.0
|
88
|
-
|
89
|
-
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - '>'
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: 2.10.0
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
|
-
prerelease: false
|
96
|
-
type: :development
|
97
84
|
name: simplecov
|
98
|
-
|
99
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
100
86
|
requirements:
|
101
|
-
- -
|
87
|
+
- - '>='
|
102
88
|
- !ruby/object:Gem::Version
|
103
89
|
version: '0'
|
104
|
-
|
105
|
-
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - '>='
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
|
-
prerelease: false
|
112
|
-
type: :development
|
113
98
|
name: timecop
|
114
|
-
|
115
|
-
none: false
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
116
100
|
requirements:
|
117
|
-
- -
|
101
|
+
- - '>='
|
118
102
|
- !ruby/object:Gem::Version
|
119
103
|
version: '0'
|
120
|
-
|
121
|
-
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - '>='
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
|
-
description:
|
127
|
-
|
111
|
+
description: " A template resolver for rails 3.2. It retrieves templates via HTTP
|
112
|
+
\n and stores them in a redis instance, as well as in local caches. \n"
|
128
113
|
email:
|
129
114
|
- sven.riedel@prosiebensat1digital.de
|
130
115
|
executables: []
|
@@ -140,27 +125,26 @@ files:
|
|
140
125
|
- spec/spec_helper.rb
|
141
126
|
homepage: https://github.com/psd/redis_template_resolver
|
142
127
|
licenses: []
|
128
|
+
metadata: {}
|
143
129
|
post_install_message:
|
144
130
|
rdoc_options: []
|
145
131
|
require_paths:
|
146
132
|
- lib
|
147
133
|
required_ruby_version: !ruby/object:Gem::Requirement
|
148
|
-
none: false
|
149
134
|
requirements:
|
150
|
-
- -
|
135
|
+
- - '>='
|
151
136
|
- !ruby/object:Gem::Version
|
152
137
|
version: '0'
|
153
138
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
139
|
requirements:
|
156
|
-
- -
|
140
|
+
- - '>='
|
157
141
|
- !ruby/object:Gem::Version
|
158
142
|
version: '0'
|
159
143
|
requirements: []
|
160
144
|
rubyforge_project:
|
161
|
-
rubygems_version:
|
145
|
+
rubygems_version: 2.0.3
|
162
146
|
signing_key:
|
163
|
-
specification_version:
|
147
|
+
specification_version: 4
|
164
148
|
summary: A template resolver for rails that retrieves templates via http and caches
|
165
149
|
them in redis
|
166
150
|
test_files: []
|