slimmer 1.1.5 → 1.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,22 @@
1
+ module Slimmer
2
+ module Headers
3
+ InvalidHeader = Class.new(RuntimeError)
4
+
5
+ SLIMMER_HEADER_MAPPING = {
6
+ section: "Section",
7
+ need_id: "Need-ID",
8
+ format: "Format",
9
+ proposition: "Proposition",
10
+ template: "Template",
11
+ skip: "Skip",
12
+ }
13
+
14
+ def set_slimmer_headers(hash)
15
+ raise InvalidHeader if (hash.keys - SLIMMER_HEADER_MAPPING.keys).any?
16
+ SLIMMER_HEADER_MAPPING.each do |hash_key, header_suffix|
17
+ value = hash[hash_key]
18
+ headers["X-Slimmer-#{header_suffix}"] = value if value
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,3 +1,3 @@
1
1
  module Slimmer
2
- VERSION = '1.1.5'
2
+ VERSION = '1.1.6'
3
3
  end
@@ -0,0 +1,52 @@
1
+ require "test_helper"
2
+ require "slimmer/headers"
3
+
4
+ class HeadersTest < MiniTest::Unit::TestCase
5
+ include Slimmer::Headers
6
+ attr_accessor :headers
7
+
8
+ def setup
9
+ self.headers = {}
10
+ end
11
+
12
+ def test_should_set_section_header
13
+ set_slimmer_headers section: "rhubarb"
14
+ assert_equal "rhubarb", headers["X-Slimmer-Section"]
15
+ end
16
+
17
+ def test_should_set_need_id_header
18
+ set_slimmer_headers need_id: "rhubarb"
19
+ assert_equal "rhubarb", headers["X-Slimmer-Need-ID"]
20
+ end
21
+
22
+ def test_should_set_format_header
23
+ set_slimmer_headers format: "rhubarb"
24
+ assert_equal "rhubarb", headers["X-Slimmer-Format"]
25
+ end
26
+
27
+ def test_should_set_proposition_header
28
+ set_slimmer_headers proposition: "rhubarb"
29
+ assert_equal "rhubarb", headers["X-Slimmer-Proposition"]
30
+ end
31
+
32
+ def test_should_set_template_header
33
+ set_slimmer_headers template: "rhubarb"
34
+ assert_equal "rhubarb", headers["X-Slimmer-Template"]
35
+ end
36
+
37
+ def test_should_set_skip_header
38
+ set_slimmer_headers skip: "rhubarb"
39
+ assert_equal "rhubarb", headers["X-Slimmer-Skip"]
40
+ end
41
+
42
+ def test_should_skip_missing_headers
43
+ set_slimmer_headers section: "rhubarb"
44
+ refute_includes headers.keys, "X-Slimmer-Need-ID"
45
+ end
46
+
47
+ def test_should_raise_an_exception_if_a_header_has_a_typo
48
+ assert_raises Slimmer::Headers::InvalidHeader do
49
+ set_slimmer_headers seccion: "wrong"
50
+ end
51
+ end
52
+ 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.5
4
+ version: 1.1.6
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: 2011-12-14 00:00:00.000000000Z
13
+ date: 2011-12-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
17
- requirement: &70317042052480 !ruby/object:Gem::Requirement
17
+ requirement: &14605900 !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: *70317042052480
25
+ version_requirements: *14605900
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rack
28
- requirement: &70317042051600 !ruby/object:Gem::Requirement
28
+ requirement: &14604560 !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: *70317042051600
36
+ version_requirements: *14604560
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: plek
39
- requirement: &70317042050180 !ruby/object:Gem::Requirement
39
+ requirement: &15450680 !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: *70317042050180
47
+ version_requirements: *15450680
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: json
50
- requirement: &70317042048980 !ruby/object:Gem::Requirement
50
+ requirement: &15450300 !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: *70317042048980
58
+ version_requirements: *15450300
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: rake
61
- requirement: &70317042047100 !ruby/object:Gem::Requirement
61
+ requirement: &15449460 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 0.9.2.2
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *70317042047100
69
+ version_requirements: *15449460
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rack-test
72
- requirement: &70317042039160 !ruby/object:Gem::Requirement
72
+ requirement: &15448960 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ~>
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: 0.6.1
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *70317042039160
80
+ version_requirements: *15448960
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: mocha
83
- requirement: &70317042038140 !ruby/object:Gem::Requirement
83
+ requirement: &15448500 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ~>
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: 0.9.12
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *70317042038140
91
+ version_requirements: *15448500
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: webmock
94
- requirement: &70317042037200 !ruby/object:Gem::Requirement
94
+ requirement: &15447980 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ~>
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: '1.7'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *70317042037200
102
+ version_requirements: *15447980
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: therubyracer
105
- requirement: &70317042036560 !ruby/object:Gem::Requirement
105
+ requirement: &15447600 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ! '>='
@@ -110,7 +110,7 @@ dependencies:
110
110
  version: '0'
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *70317042036560
113
+ version_requirements: *15447600
114
114
  description: Rack middleware for skinning pages using a specific template
115
115
  email:
116
116
  - bengriffiths@gmail.com
@@ -121,34 +121,36 @@ extra_rdoc_files: []
121
121
  files:
122
122
  - README.md
123
123
  - CHANGELOG.md
124
+ - lib/slimmer/tag_mover.rb
124
125
  - lib/slimmer/admin_title_inserter.rb
126
+ - lib/slimmer/footer_remover.rb
127
+ - lib/slimmer/section_inserter.rb
128
+ - lib/slimmer/template.rb
129
+ - lib/slimmer/header_context_inserter.rb
125
130
  - lib/slimmer/app.rb
131
+ - lib/slimmer/skin.rb
126
132
  - lib/slimmer/body_class_copier.rb
133
+ - lib/slimmer/railtie.rb
134
+ - lib/slimmer/title_inserter.rb
127
135
  - lib/slimmer/body_inserter.rb
128
- - lib/slimmer/footer_remover.rb
129
136
  - lib/slimmer/google_analytics_configurator.rb
130
- - lib/slimmer/header_context_inserter.rb
131
- - lib/slimmer/railtie.rb
132
- - lib/slimmer/section_inserter.rb
133
- - lib/slimmer/skin.rb
134
- - lib/slimmer/tag_mover.rb
135
- - lib/slimmer/template.rb
136
137
  - lib/slimmer/test.rb
137
- - lib/slimmer/title_inserter.rb
138
- - lib/slimmer/url_rewriter.rb
138
+ - lib/slimmer/headers.rb
139
139
  - lib/slimmer/version.rb
140
- - lib/slimmer.rb
140
+ - lib/slimmer/url_rewriter.rb
141
141
  - lib/tasks/slimmer.rake
142
+ - lib/slimmer.rb
142
143
  - Rakefile
143
- - test/fixtures/404.html.erb
144
+ - test/typical_usage_test.rb
144
145
  - test/fixtures/500.html.erb
146
+ - test/fixtures/404.html.erb
145
147
  - test/fixtures/wrapper.html.erb
148
+ - test/test_helper.rb
149
+ - test/skin_test.rb
146
150
  - test/google_analytics_test.rb
151
+ - test/headers_test.rb
147
152
  - test/processors/body_inserter_test.rb
148
153
  - test/processors/header_context_inserter_test.rb
149
- - test/skin_test.rb
150
- - test/test_helper.rb
151
- - test/typical_usage_test.rb
152
154
  homepage: http://github.com/alphagov/slimmer
153
155
  licenses: []
154
156
  post_install_message:
@@ -169,17 +171,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
171
  version: '0'
170
172
  requirements: []
171
173
  rubyforge_project: slimmer
172
- rubygems_version: 1.8.10
174
+ rubygems_version: 1.8.11
173
175
  signing_key:
174
176
  specification_version: 3
175
177
  summary: Thinner than the skinner
176
178
  test_files:
177
- - test/fixtures/404.html.erb
179
+ - test/typical_usage_test.rb
178
180
  - test/fixtures/500.html.erb
181
+ - test/fixtures/404.html.erb
179
182
  - test/fixtures/wrapper.html.erb
183
+ - test/test_helper.rb
184
+ - test/skin_test.rb
180
185
  - test/google_analytics_test.rb
186
+ - test/headers_test.rb
181
187
  - test/processors/body_inserter_test.rb
182
188
  - test/processors/header_context_inserter_test.rb
183
- - test/skin_test.rb
184
- - test/test_helper.rb
185
- - test/typical_usage_test.rb