slimmer 1.1.18 → 1.1.19

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.
data/lib/slimmer.rb CHANGED
@@ -27,4 +27,7 @@ module Slimmer
27
27
  autoload :UrlRewriter, 'slimmer/url_rewriter'
28
28
  autoload :HeaderContextInserter, 'slimmer/header_context_inserter'
29
29
  autoload :GoogleAnalyticsConfigurator, 'slimmer/google_analytics_configurator'
30
+
31
+ class TemplateNotFoundException < StandardError; end
32
+ class CouldNotRetrieveTemplate < StandardError; end
30
33
  end
data/lib/slimmer/app.rb CHANGED
@@ -92,27 +92,8 @@ module Slimmer
92
92
  rewritten_body = app_body
93
93
  end
94
94
  rewritten_body = [rewritten_body] unless rewritten_body.respond_to?(:each)
95
- filtered_headers = filter_headers headers
96
95
  logger.debug "Slimmer: Returning final status, headers and body"
97
- [status, filtered_headers, rewritten_body]
98
- end
99
-
100
- def filter_headers(header_hash)
101
- valid_keys = %w{vary set-cookie location content-type expires cache-control www-authenticate last-modified etag}
102
- logger.debug "Slimmer: removing headers except #{valid_keys} from #{header_hash.keys}"
103
- removed_keys = []
104
- header_hash.keys.each do |key|
105
- unless valid_keys.include?(key.downcase)
106
- removed_keys << key
107
- header_hash.delete(key)
108
- end
109
- end
110
- if removed_keys.size > 0
111
- logger.debug "Slimmer: removed #{removed_keys.size} headers: #{removed_keys.inspect}"
112
- else
113
- logger.debug "Slimmer: no headers removed"
114
- end
115
- header_hash
96
+ [status, headers, rewritten_body]
116
97
  end
117
98
  end
118
99
  end
data/lib/slimmer/skin.rb CHANGED
@@ -61,6 +61,10 @@ module Slimmer
61
61
  cache template_name, template
62
62
  logger.debug "Slimmer: Returning evaluated template"
63
63
  template
64
+ rescue OpenURI::HTTPError
65
+ raise TemplateNotFoundException
66
+ rescue Errno::ECONNREFUSED
67
+ raise CouldNotRetrieveTemplate
64
68
  end
65
69
 
66
70
  def template_url template_name
@@ -1,3 +1,3 @@
1
1
  module Slimmer
2
- VERSION = '1.1.18'
2
+ VERSION = '1.1.19'
3
3
  end
data/test/skin_test.rb CHANGED
@@ -20,4 +20,24 @@ class SkinTest < MiniTest::Unit::TestCase
20
20
  template = skin.load_template 'example'
21
21
  assert_equal "<p>this-is-the-prefix</p>", template
22
22
  end
23
+
24
+ def test_should_raise_appropriate_exception_when_template_not_found
25
+ skin = Slimmer::Skin.new "http://example.local/"
26
+ expected_url = "http://example.local/templates/example.html.erb"
27
+ stub_request(:get, expected_url).to_return(:status => '404')
28
+
29
+ assert_raises(Slimmer::TemplateNotFoundException) do
30
+ skin.load_template 'example'
31
+ end
32
+ end
33
+
34
+ def test_should_raise_appropriate_exception_when_cant_reach_template_host
35
+ skin = Slimmer::Skin.new "http://example.local/"
36
+ expected_url = "http://example.local/templates/example.html.erb"
37
+ stub_request(:get, expected_url).to_raise(Errno::ECONNREFUSED)
38
+
39
+ assert_raises(Slimmer::CouldNotRetrieveTemplate) do
40
+ skin.load_template 'example'
41
+ end
42
+ end
23
43
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slimmer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.18
4
+ version: 1.1.19
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-01-10 00:00:00.000000000 Z
13
+ date: 2012-01-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
17
- requirement: &70351908621780 !ruby/object:Gem::Requirement
17
+ requirement: &70164012495200 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 1.5.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70351908621780
25
+ version_requirements: *70164012495200
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rack
28
- requirement: &70351908620040 !ruby/object:Gem::Requirement
28
+ requirement: &70164012494660 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 1.3.5
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70351908620040
36
+ version_requirements: *70164012494660
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: plek
39
- requirement: &70351908619480 !ruby/object:Gem::Requirement
39
+ requirement: &70164012494160 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 0.1.8
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *70351908619480
47
+ version_requirements: *70164012494160
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: json
50
- requirement: &70351908618940 !ruby/object:Gem::Requirement
50
+ requirement: &70164012493740 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *70351908618940
58
+ version_requirements: *70164012493740
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: null_logger
61
- requirement: &70351908617580 !ruby/object:Gem::Requirement
61
+ requirement: &70164012493260 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *70351908617580
69
+ version_requirements: *70164012493260
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rake
72
- requirement: &70351908611760 !ruby/object:Gem::Requirement
72
+ requirement: &70164012492300 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ~>
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: 0.9.2.2
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *70351908611760
80
+ version_requirements: *70164012492300
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: rack-test
83
- requirement: &70351908609820 !ruby/object:Gem::Requirement
83
+ requirement: &70164012491740 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ~>
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: 0.6.1
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *70351908609820
91
+ version_requirements: *70164012491740
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: mocha
94
- requirement: &70351908606800 !ruby/object:Gem::Requirement
94
+ requirement: &70164012491020 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ~>
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: 0.9.12
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *70351908606800
102
+ version_requirements: *70164012491020
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: webmock
105
- requirement: &70351908602140 !ruby/object:Gem::Requirement
105
+ requirement: &70164012488760 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ~>
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: '1.7'
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *70351908602140
113
+ version_requirements: *70164012488760
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: therubyracer
116
- requirement: &70351908599800 !ruby/object:Gem::Requirement
116
+ requirement: &70164012488340 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - ! '>='
@@ -121,7 +121,7 @@ dependencies:
121
121
  version: '0'
122
122
  type: :development
123
123
  prerelease: false
124
- version_requirements: *70351908599800
124
+ version_requirements: *70164012488340
125
125
  description: Rack middleware for skinning pages using a specific template
126
126
  email:
127
127
  - bengriffiths@gmail.com
@@ -157,7 +157,6 @@ files:
157
157
  - test/fixtures/500.html.erb
158
158
  - test/fixtures/wrapper.html.erb
159
159
  - test/google_analytics_test.rb
160
- - test/header_filtering_test.rb
161
160
  - test/headers_test.rb
162
161
  - test/processors/body_inserter_test.rb
163
162
  - test/processors/header_context_inserter_test.rb
@@ -177,12 +176,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
176
  - - ! '>='
178
177
  - !ruby/object:Gem::Version
179
178
  version: '0'
179
+ segments:
180
+ - 0
181
+ hash: -1615013662764741884
180
182
  required_rubygems_version: !ruby/object:Gem::Requirement
181
183
  none: false
182
184
  requirements:
183
185
  - - ! '>='
184
186
  - !ruby/object:Gem::Version
185
187
  version: '0'
188
+ segments:
189
+ - 0
190
+ hash: -1615013662764741884
186
191
  requirements: []
187
192
  rubyforge_project: slimmer
188
193
  rubygems_version: 1.8.11
@@ -194,7 +199,6 @@ test_files:
194
199
  - test/fixtures/500.html.erb
195
200
  - test/fixtures/wrapper.html.erb
196
201
  - test/google_analytics_test.rb
197
- - test/header_filtering_test.rb
198
202
  - test/headers_test.rb
199
203
  - test/processors/body_inserter_test.rb
200
204
  - test/processors/header_context_inserter_test.rb
@@ -1,20 +0,0 @@
1
- require "test_helper"
2
-
3
- class HeaderFilteringTest < SlimmerIntegrationTest
4
- ALLOWED_HEADERS = ["Vary", "Set-Cookie", "Location", "Content-Type", "Expires", "Cache-Control", "WWW-Authenticate", "Last-Modified", "ETag"]
5
- FORBIDDEN_HEADERS = ["Anything-Else"]
6
-
7
- given_response 200, %{Anything}, (ALLOWED_HEADERS + FORBIDDEN_HEADERS).inject({}) {|memo, header| memo[header] = header.downcase; memo}
8
-
9
- def test_allows_whitelisted_headers
10
- ALLOWED_HEADERS.each do |header|
11
- assert last_response.headers.keys.include?(header)
12
- end
13
- end
14
-
15
- def test_filters_other_headers
16
- FORBIDDEN_HEADERS.each do |header|
17
- refute last_response.headers.keys.include?(header)
18
- end
19
- end
20
- end