rack-noncache 0.0.4 → 1.0.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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.pryrc +6 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +15 -0
  7. data/README.md +36 -52
  8. data/Rakefile +16 -1
  9. data/features/cache_control.feature +22 -0
  10. data/features/step_definitions/steps.rb +46 -0
  11. data/features/support/continous_integration.rb +47 -0
  12. data/features/support/coverage.rb +18 -0
  13. data/features/support/env.rb +9 -0
  14. data/features/support/helpers.rb +13 -0
  15. data/features/support/web_app/application.rb +70 -0
  16. data/features/support/web_app/config_blacklist.ru +13 -0
  17. data/features/support/web_app/config_whitelist.ru +13 -0
  18. data/features/support/web_app/public/app/collections/todos.js +17 -0
  19. data/features/support/web_app/public/app/config.js +18 -0
  20. data/features/support/web_app/public/app/main.js +21 -0
  21. data/features/support/web_app/public/app/models/todo.js +33 -0
  22. data/features/support/web_app/public/app/templates/todo-add.html +3 -0
  23. data/features/support/web_app/public/app/templates/todo-editor.html +1 -0
  24. data/features/support/web_app/public/app/templates/todo-item.html +2 -0
  25. data/features/support/web_app/public/app/templates/todo-list-empty.html +1 -0
  26. data/features/support/web_app/public/app/templates/todo-stats.html +4 -0
  27. data/features/support/web_app/public/app/views/stats.js +26 -0
  28. data/features/support/web_app/public/app/views/todo.js +55 -0
  29. data/features/support/web_app/public/app/views/todoadd.js +48 -0
  30. data/features/support/web_app/public/app/views/todoedit.js +70 -0
  31. data/features/support/web_app/public/app/views/todolist.js +69 -0
  32. data/features/support/web_app/public/assets/css/bootstrap.css +3990 -0
  33. data/features/support/web_app/public/assets/css/style.css +82 -0
  34. data/features/support/web_app/public/assets/js/libs/backbone.js +1428 -0
  35. data/features/support/web_app/public/assets/js/libs/jquery-1.7.2.js +9404 -0
  36. data/features/support/web_app/public/assets/js/libs/require.js +2053 -0
  37. data/features/support/web_app/public/assets/js/libs/underscore.js +1008 -0
  38. data/features/support/web_app/public/assets/js/plugins/text.js +288 -0
  39. data/features/support/web_app/public/test/SpecRunner.html +42 -0
  40. data/features/support/web_app/public/test/lib/jasmine-1.2.0.rc3/MIT.LICENSE +20 -0
  41. data/features/support/web_app/public/test/lib/jasmine-1.2.0.rc3/jasmine-html.js +616 -0
  42. data/features/support/web_app/public/test/lib/jasmine-1.2.0.rc3/jasmine.css +81 -0
  43. data/features/support/web_app/public/test/lib/jasmine-1.2.0.rc3/jasmine.js +2530 -0
  44. data/features/support/web_app/public/test/lib/jasmine-jquery.js +306 -0
  45. data/features/support/web_app/public/test/spec/models/todo.coffee +37 -0
  46. data/features/support/web_app/public/test/spec/models/todo.js +48 -0
  47. data/features/support/web_app/public/test/spec/spec_helper.coffee +20 -0
  48. data/features/support/web_app/public/test/spec/spec_helper.js +17 -0
  49. data/features/support/web_app/public/test/spec/views/stats.coffee +9 -0
  50. data/features/support/web_app/public/test/spec/views/stats.js +13 -0
  51. data/features/support/web_app/public/test/spec/views/todo.coffee +22 -0
  52. data/features/support/web_app/public/test/spec/views/todo.js +26 -0
  53. data/features/support/web_app/public/test/spec/views/todoadd.coffee +22 -0
  54. data/features/support/web_app/public/test/spec/views/todoadd.js +29 -0
  55. data/features/support/web_app/public/test/spec/views/todoedit.coffee +59 -0
  56. data/features/support/web_app/public/test/spec/views/todoedit.js +72 -0
  57. data/features/support/web_app/public/test/spec/views/todolist.coffee +28 -0
  58. data/features/support/web_app/public/test/spec/views/todolist.js +39 -0
  59. data/features/support/web_app/views/details.erb +14 -0
  60. data/features/support/web_app/views/index.erb +43 -0
  61. data/lib/rack/noncache.rb +5 -7
  62. data/lib/rack/noncache/engine.rb +10 -26
  63. data/lib/rack/noncache/filters.rb +75 -0
  64. data/lib/rack/noncache/version.rb +1 -1
  65. data/rack-noncache.gemspec +32 -10
  66. metadata +382 -7
@@ -0,0 +1,75 @@
1
+ module Rack
2
+ module NonCache
3
+ class Http10Filter
4
+ def self.apply(headers)
5
+ headers['Cache-Control'] =
6
+ 'max-stale=0, post-check=0, pre-check=0, ' \
7
+ 'no-cache=\"Set-Cookie, Set-Cookie2\"'
8
+ end
9
+ end
10
+
11
+ class Http11Filter
12
+ def self.apply(headers)
13
+ headers['Cache-Control'] += 'no-cache, max-age=0, must-revalidate, ' \
14
+ 'no-store, private'
15
+ headers['HTTP_PRAGMA'] = 'no-cache'
16
+ end
17
+ end
18
+
19
+ class ProxyFilter
20
+ def self.apply(headers)
21
+ headers['HTTP_EXPIRES'] = Time.now.httpdate
22
+ end
23
+ end
24
+
25
+ class SecurityFilter
26
+ def self.apply(headers)
27
+
28
+ # When you type in your bank's website, do you enter mybank.example.com
29
+ # or do you enter https://mybank.example.com? If you omit the https
30
+ # protocol, you are potentially vulnerable to Man in the Middle
31
+ # attacks. Even if the website performs a redirect to
32
+ # https://mybank.example.com a malicious user could intercept the
33
+ # initial HTTP request and manipulate the response (i.e. redirect to
34
+ # https://mibank.example.com and steal their credentials).
35
+ #
36
+ # Many users omit the https protocol and this is why HTTP Strict
37
+ # Transport Security (HSTS) was created. Once mybank.example.com is
38
+ # added as a HSTS host, a browser can know ahead of time that any
39
+ # request to mybank.example.com should be interpreted as
40
+ # https://mybank.example.com. This greatly reduces the possibility of a
41
+ # Man in the Middle attack occurring.
42
+
43
+ headers['Strict-Transport-Security'] = 'max-age=31536000; includeSubDomains'
44
+
45
+ # The problem with content sniffing is that this allowed malicious
46
+ # users to use polyglots (i.e. a file that is valid as multiple content
47
+ # types) to execute XSS attacks. For example, some sites may allow
48
+ # users to submit a valid postscript document to a website and view it.
49
+ # A malicious user might create a postscript document that is also a
50
+ # valid JavaScript file and execute a XSS attack with it.
51
+
52
+ headers['X-Content-Type-Options'] = 'nosniff'
53
+
54
+ # Some browsers have built in support for filtering out reflected XSS
55
+ # attacks. This is by no means full proof, but does assist in XSS
56
+ # protection.
57
+ # The filtering is typically enabled by default, so adding the header
58
+ # typically just ensures it is enabled and instructs the browser what
59
+ # to do when a XSS attack is detected. For example, the filter might
60
+ # try to change the content in the least invasive way to still render
61
+ # everything. At times, this type of replacement can become a XSS
62
+ # vulnerability in itself. Instead, it is best to block the content
63
+ # rather than attempt to fix it.
64
+
65
+ headers['S-Protection'] = '1; mode=block'
66
+ end
67
+ end
68
+
69
+ class DeprecatedFilter
70
+ def self.apply(headers)
71
+ headers['HTTP_KEEP_ALIVE'] = 'timeout=3, max=993'
72
+ end
73
+ end
74
+ end
75
+ end
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  module NonCache
3
- VERSION = "0.0.4"
3
+ VERSION = '1.0.0'
4
4
  end
5
5
  end
@@ -4,20 +4,42 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'rack/noncache/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "rack-noncache"
7
+ spec.name = 'rack-noncache'
8
8
  spec.version = Rack::NonCache::VERSION
9
- spec.authors = ["David Saenz Tagarro"]
10
- spec.email = ["david@redradix.com"]
11
- spec.summary = "HTTP Non browser caching for Rack"
12
- spec.description = "Rack::NonCache is a rack middleware that disables HTTP browser caching."
13
- spec.homepage = "https://github.com/dsaenztagarro/rack-noncache"
14
- spec.license = "MIT"
9
+ spec.authors = ['David Saenz Tagarro']
10
+ spec.email = ['david.saenz.tagarro@gmail.com']
11
+ spec.summary = 'HTTP Non browser caching for Rack'
12
+ spec.description = 'Rack::NonCache is a rack middleware that disables HTTP browser caching.'
13
+ spec.homepage = 'https://github.com/dsaenztagarro/rack-noncache'
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
19
+ spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.5"
22
- spec.add_development_dependency "rake"
21
+ spec.add_runtime_dependency 'activesupport'
22
+
23
+ spec.add_development_dependency 'bundler', '~> 1.6'
24
+ spec.add_development_dependency 'cane'
25
+ spec.add_development_dependency 'capybara'
26
+ spec.add_development_dependency 'capybara-selenium', '0.0.6'
27
+ spec.add_development_dependency 'codeclimate-test-reporter'
28
+ spec.add_development_dependency 'coveralls'
29
+ spec.add_development_dependency 'cucumber'
30
+ spec.add_development_dependency 'pry'
31
+ spec.add_development_dependency 'pry-byebug'
32
+ spec.add_development_dependency 'rake'
33
+ spec.add_development_dependency 'reek'
34
+ spec.add_development_dependency 'rspec'
35
+ spec.add_development_dependency 'rubocop'
36
+ spec.add_development_dependency 'rubocop-rspec'
37
+ spec.add_development_dependency 'selenium-webdriver'
38
+ spec.add_development_dependency 'simplecov'
39
+
40
+ # Dummy app dependencies
41
+ spec.add_development_dependency 'sinatra'
42
+ spec.add_development_dependency 'sinatra-contrib'
43
+ spec.add_development_dependency 'dm-sqlite-adapter'
44
+ spec.add_development_dependency 'datamapper'
23
45
  end
metadata CHANGED
@@ -1,29 +1,155 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-noncache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Saenz Tagarro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-12 00:00:00.000000000 Z
11
+ date: 2014-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: '1.5'
33
+ version: '1.6'
20
34
  type: :development
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: '1.5'
40
+ version: '1.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: cane
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: capybara
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: capybara-selenium
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 0.0.6
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 0.0.6
83
+ - !ruby/object:Gem::Dependency
84
+ name: codeclimate-test-reporter
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: coveralls
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: cucumber
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: pry-byebug
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
27
153
  - !ruby/object:Gem::Dependency
28
154
  name: rake
29
155
  requirement: !ruby/object:Gem::Requirement
@@ -38,21 +164,218 @@ dependencies:
38
164
  - - ">="
39
165
  - !ruby/object:Gem::Version
40
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: reek
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rspec
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: rubocop
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: rubocop-rspec
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: selenium-webdriver
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: simplecov
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: sinatra
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
+ - !ruby/object:Gem::Dependency
266
+ name: sinatra-contrib
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
279
+ - !ruby/object:Gem::Dependency
280
+ name: dm-sqlite-adapter
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ type: :development
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
293
+ - !ruby/object:Gem::Dependency
294
+ name: datamapper
295
+ requirement: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - ">="
298
+ - !ruby/object:Gem::Version
299
+ version: '0'
300
+ type: :development
301
+ prerelease: false
302
+ version_requirements: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - ">="
305
+ - !ruby/object:Gem::Version
306
+ version: '0'
41
307
  description: Rack::NonCache is a rack middleware that disables HTTP browser caching.
42
308
  email:
43
- - david@redradix.com
309
+ - david.saenz.tagarro@gmail.com
44
310
  executables: []
45
311
  extensions: []
46
312
  extra_rdoc_files: []
47
313
  files:
48
314
  - ".gitignore"
315
+ - ".pryrc"
316
+ - ".ruby-gemset"
317
+ - ".ruby-version"
318
+ - ".travis.yml"
49
319
  - Gemfile
50
320
  - LICENSE.txt
51
321
  - README.md
52
322
  - Rakefile
323
+ - features/cache_control.feature
324
+ - features/step_definitions/steps.rb
325
+ - features/support/continous_integration.rb
326
+ - features/support/coverage.rb
327
+ - features/support/env.rb
328
+ - features/support/helpers.rb
329
+ - features/support/web_app/application.rb
330
+ - features/support/web_app/config_blacklist.ru
331
+ - features/support/web_app/config_whitelist.ru
332
+ - features/support/web_app/public/app/collections/todos.js
333
+ - features/support/web_app/public/app/config.js
334
+ - features/support/web_app/public/app/main.js
335
+ - features/support/web_app/public/app/models/todo.js
336
+ - features/support/web_app/public/app/templates/todo-add.html
337
+ - features/support/web_app/public/app/templates/todo-editor.html
338
+ - features/support/web_app/public/app/templates/todo-item.html
339
+ - features/support/web_app/public/app/templates/todo-list-empty.html
340
+ - features/support/web_app/public/app/templates/todo-stats.html
341
+ - features/support/web_app/public/app/views/stats.js
342
+ - features/support/web_app/public/app/views/todo.js
343
+ - features/support/web_app/public/app/views/todoadd.js
344
+ - features/support/web_app/public/app/views/todoedit.js
345
+ - features/support/web_app/public/app/views/todolist.js
346
+ - features/support/web_app/public/assets/css/bootstrap.css
347
+ - features/support/web_app/public/assets/css/style.css
348
+ - features/support/web_app/public/assets/js/libs/backbone.js
349
+ - features/support/web_app/public/assets/js/libs/jquery-1.7.2.js
350
+ - features/support/web_app/public/assets/js/libs/require.js
351
+ - features/support/web_app/public/assets/js/libs/underscore.js
352
+ - features/support/web_app/public/assets/js/plugins/text.js
353
+ - features/support/web_app/public/test/SpecRunner.html
354
+ - features/support/web_app/public/test/lib/jasmine-1.2.0.rc3/MIT.LICENSE
355
+ - features/support/web_app/public/test/lib/jasmine-1.2.0.rc3/jasmine-html.js
356
+ - features/support/web_app/public/test/lib/jasmine-1.2.0.rc3/jasmine.css
357
+ - features/support/web_app/public/test/lib/jasmine-1.2.0.rc3/jasmine.js
358
+ - features/support/web_app/public/test/lib/jasmine-jquery.js
359
+ - features/support/web_app/public/test/spec/models/todo.coffee
360
+ - features/support/web_app/public/test/spec/models/todo.js
361
+ - features/support/web_app/public/test/spec/spec_helper.coffee
362
+ - features/support/web_app/public/test/spec/spec_helper.js
363
+ - features/support/web_app/public/test/spec/views/stats.coffee
364
+ - features/support/web_app/public/test/spec/views/stats.js
365
+ - features/support/web_app/public/test/spec/views/todo.coffee
366
+ - features/support/web_app/public/test/spec/views/todo.js
367
+ - features/support/web_app/public/test/spec/views/todoadd.coffee
368
+ - features/support/web_app/public/test/spec/views/todoadd.js
369
+ - features/support/web_app/public/test/spec/views/todoedit.coffee
370
+ - features/support/web_app/public/test/spec/views/todoedit.js
371
+ - features/support/web_app/public/test/spec/views/todolist.coffee
372
+ - features/support/web_app/public/test/spec/views/todolist.js
373
+ - features/support/web_app/views/details.erb
374
+ - features/support/web_app/views/index.erb
53
375
  - lib/rack-noncache.rb
54
376
  - lib/rack/noncache.rb
55
377
  - lib/rack/noncache/engine.rb
378
+ - lib/rack/noncache/filters.rb
56
379
  - lib/rack/noncache/version.rb
57
380
  - rack-noncache.gemspec
58
381
  homepage: https://github.com/dsaenztagarro/rack-noncache
@@ -75,8 +398,60 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
398
  version: '0'
76
399
  requirements: []
77
400
  rubyforge_project:
78
- rubygems_version: 2.2.2
401
+ rubygems_version: 2.4.5
79
402
  signing_key:
80
403
  specification_version: 4
81
404
  summary: HTTP Non browser caching for Rack
82
- test_files: []
405
+ test_files:
406
+ - features/cache_control.feature
407
+ - features/step_definitions/steps.rb
408
+ - features/support/continous_integration.rb
409
+ - features/support/coverage.rb
410
+ - features/support/env.rb
411
+ - features/support/helpers.rb
412
+ - features/support/web_app/application.rb
413
+ - features/support/web_app/config_blacklist.ru
414
+ - features/support/web_app/config_whitelist.ru
415
+ - features/support/web_app/public/app/collections/todos.js
416
+ - features/support/web_app/public/app/config.js
417
+ - features/support/web_app/public/app/main.js
418
+ - features/support/web_app/public/app/models/todo.js
419
+ - features/support/web_app/public/app/templates/todo-add.html
420
+ - features/support/web_app/public/app/templates/todo-editor.html
421
+ - features/support/web_app/public/app/templates/todo-item.html
422
+ - features/support/web_app/public/app/templates/todo-list-empty.html
423
+ - features/support/web_app/public/app/templates/todo-stats.html
424
+ - features/support/web_app/public/app/views/stats.js
425
+ - features/support/web_app/public/app/views/todo.js
426
+ - features/support/web_app/public/app/views/todoadd.js
427
+ - features/support/web_app/public/app/views/todoedit.js
428
+ - features/support/web_app/public/app/views/todolist.js
429
+ - features/support/web_app/public/assets/css/bootstrap.css
430
+ - features/support/web_app/public/assets/css/style.css
431
+ - features/support/web_app/public/assets/js/libs/backbone.js
432
+ - features/support/web_app/public/assets/js/libs/jquery-1.7.2.js
433
+ - features/support/web_app/public/assets/js/libs/require.js
434
+ - features/support/web_app/public/assets/js/libs/underscore.js
435
+ - features/support/web_app/public/assets/js/plugins/text.js
436
+ - features/support/web_app/public/test/SpecRunner.html
437
+ - features/support/web_app/public/test/lib/jasmine-1.2.0.rc3/MIT.LICENSE
438
+ - features/support/web_app/public/test/lib/jasmine-1.2.0.rc3/jasmine-html.js
439
+ - features/support/web_app/public/test/lib/jasmine-1.2.0.rc3/jasmine.css
440
+ - features/support/web_app/public/test/lib/jasmine-1.2.0.rc3/jasmine.js
441
+ - features/support/web_app/public/test/lib/jasmine-jquery.js
442
+ - features/support/web_app/public/test/spec/models/todo.coffee
443
+ - features/support/web_app/public/test/spec/models/todo.js
444
+ - features/support/web_app/public/test/spec/spec_helper.coffee
445
+ - features/support/web_app/public/test/spec/spec_helper.js
446
+ - features/support/web_app/public/test/spec/views/stats.coffee
447
+ - features/support/web_app/public/test/spec/views/stats.js
448
+ - features/support/web_app/public/test/spec/views/todo.coffee
449
+ - features/support/web_app/public/test/spec/views/todo.js
450
+ - features/support/web_app/public/test/spec/views/todoadd.coffee
451
+ - features/support/web_app/public/test/spec/views/todoadd.js
452
+ - features/support/web_app/public/test/spec/views/todoedit.coffee
453
+ - features/support/web_app/public/test/spec/views/todoedit.js
454
+ - features/support/web_app/public/test/spec/views/todolist.coffee
455
+ - features/support/web_app/public/test/spec/views/todolist.js
456
+ - features/support/web_app/views/details.erb
457
+ - features/support/web_app/views/index.erb