rack-headercontrol 0.0.1 → 0.0.2
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/README.md +20 -2
- data/lib/{rack-headercontrol.rb → rack/headercontrol.rb} +4 -3
- data/rack-headercontrol.gemspec +2 -2
- metadata +32 -56
- data/lib/rack-headercontrol/version.rb +0 -5
data/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#Rack::
|
|
1
|
+
#Rack::Headercontrol
|
|
2
2
|
|
|
3
3
|
Rack Middleware that allows you set/override response headers for selected paths
|
|
4
4
|
|
|
@@ -11,12 +11,30 @@ block for every condition that matches
|
|
|
11
11
|
##Usage
|
|
12
12
|
|
|
13
13
|
```ruby
|
|
14
|
-
use Rack::
|
|
14
|
+
use Rack::Headercontrol do |change|
|
|
15
15
|
change.path '/tralala' do |headers|
|
|
16
16
|
headers['X-Foo'] = 'bar'
|
|
17
17
|
end
|
|
18
|
+
|
|
18
19
|
change.path /./ do |headers|
|
|
19
20
|
headers.delete('X-Baz')
|
|
20
21
|
end
|
|
22
|
+
|
|
23
|
+
# Serve CORS headers for webfonts to enable them in Firefox
|
|
24
|
+
change.path %r{\.(woff|ttf|otf)$} do |headers|
|
|
25
|
+
headers['Access-Control-Allow-Origin'] = '*'
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Set far-future expires headers for versioned assets
|
|
29
|
+
change.path %r{/style/longlived\.(.?)\.css} do |headers|
|
|
30
|
+
expires_at = 10.years.from_now.utc
|
|
31
|
+
max_age = (expires_at - Time.now).floor
|
|
32
|
+
headers['Expires'] = expires_at.rfc2822
|
|
33
|
+
headers['Cache-Control'] = "public, max-age=#{max_age}"
|
|
34
|
+
# Best practice not to send Etags /w far-future expiring assets
|
|
35
|
+
headers.delete('Etag')
|
|
36
|
+
headers.delete 'Pragma'
|
|
37
|
+
headers.delete 'Last-Modified'
|
|
38
|
+
end
|
|
21
39
|
end
|
|
22
40
|
```
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
require "rack-headercontrol/version"
|
|
2
|
-
|
|
3
1
|
module Rack
|
|
4
|
-
class
|
|
2
|
+
class Headercontrol
|
|
3
|
+
VERSION = "0.0.2"
|
|
4
|
+
|
|
5
5
|
def initialize(app, &config_block)
|
|
6
6
|
@app = app
|
|
7
7
|
@config_block = config_block
|
|
@@ -22,6 +22,7 @@ module Rack
|
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
|
+
HeaderControl = Headercontrol #Backwards-compatibility
|
|
25
26
|
|
|
26
27
|
class PathRecorder
|
|
27
28
|
def initialize
|
data/rack-headercontrol.gemspec
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
2
|
$:.push File.expand_path("../lib", __FILE__)
|
|
3
|
-
require "rack
|
|
3
|
+
require "rack/headercontrol"
|
|
4
4
|
|
|
5
5
|
Gem::Specification.new do |s|
|
|
6
6
|
s.name = "rack-headercontrol"
|
|
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
|
9
9
|
s.email = ["gerrit@gerritkaiser.de"]
|
|
10
10
|
s.homepage = 'http://github.com/gerrit/rack-headercontrol'
|
|
11
11
|
s.summary = 'Rack Middleware that allows you set/override response headers for selected paths'
|
|
12
|
-
s.description = ''
|
|
12
|
+
s.description = 'Can be used e.g. to set CORS headers or selective caching of resources'
|
|
13
13
|
|
|
14
14
|
s.rubyforge_project = 'rack-headercontrol'
|
|
15
15
|
|
metadata
CHANGED
|
@@ -1,87 +1,63 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rack-headercontrol
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
prerelease:
|
|
6
|
-
segments:
|
|
7
|
-
- 0
|
|
8
|
-
- 0
|
|
9
|
-
- 1
|
|
10
|
-
version: 0.0.1
|
|
11
6
|
platform: ruby
|
|
12
|
-
authors:
|
|
7
|
+
authors:
|
|
13
8
|
- Gerrit Kaiser
|
|
14
9
|
autorequire:
|
|
15
10
|
bindir: bin
|
|
16
11
|
cert_chain: []
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
dependencies:
|
|
21
|
-
- !ruby/object:Gem::Dependency
|
|
12
|
+
date: 2011-11-10 00:00:00.000000000Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
22
15
|
name: rack
|
|
23
|
-
|
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
|
16
|
+
requirement: &70112740907960 !ruby/object:Gem::Requirement
|
|
25
17
|
none: false
|
|
26
|
-
requirements:
|
|
27
|
-
- -
|
|
28
|
-
- !ruby/object:Gem::Version
|
|
29
|
-
|
|
30
|
-
segments:
|
|
31
|
-
- 0
|
|
32
|
-
version: "0"
|
|
18
|
+
requirements:
|
|
19
|
+
- - ! '>='
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '0'
|
|
33
22
|
type: :runtime
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
23
|
+
prerelease: false
|
|
24
|
+
version_requirements: *70112740907960
|
|
25
|
+
description: Can be used e.g. to set CORS headers or selective caching of resources
|
|
26
|
+
email:
|
|
37
27
|
- gerrit@gerritkaiser.de
|
|
38
28
|
executables: []
|
|
39
|
-
|
|
40
29
|
extensions: []
|
|
41
|
-
|
|
42
30
|
extra_rdoc_files: []
|
|
43
|
-
|
|
44
|
-
files:
|
|
31
|
+
files:
|
|
45
32
|
- .gitignore
|
|
46
33
|
- Gemfile
|
|
47
34
|
- README.md
|
|
48
35
|
- Rakefile
|
|
49
|
-
- lib/rack
|
|
50
|
-
- lib/rack-headercontrol/version.rb
|
|
36
|
+
- lib/rack/headercontrol.rb
|
|
51
37
|
- rack-headercontrol.gemspec
|
|
52
|
-
has_rdoc: true
|
|
53
38
|
homepage: http://github.com/gerrit/rack-headercontrol
|
|
54
39
|
licenses: []
|
|
55
|
-
|
|
56
40
|
post_install_message:
|
|
57
41
|
rdoc_options: []
|
|
58
|
-
|
|
59
|
-
require_paths:
|
|
42
|
+
require_paths:
|
|
60
43
|
- lib
|
|
61
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
62
45
|
none: false
|
|
63
|
-
requirements:
|
|
64
|
-
- -
|
|
65
|
-
- !ruby/object:Gem::Version
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
- 0
|
|
69
|
-
version: "0"
|
|
70
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
46
|
+
requirements:
|
|
47
|
+
- - ! '>='
|
|
48
|
+
- !ruby/object:Gem::Version
|
|
49
|
+
version: '0'
|
|
50
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
71
51
|
none: false
|
|
72
|
-
requirements:
|
|
73
|
-
- -
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
|
|
76
|
-
segments:
|
|
77
|
-
- 0
|
|
78
|
-
version: "0"
|
|
52
|
+
requirements:
|
|
53
|
+
- - ! '>='
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '0'
|
|
79
56
|
requirements: []
|
|
80
|
-
|
|
81
57
|
rubyforge_project: rack-headercontrol
|
|
82
|
-
rubygems_version: 1.
|
|
58
|
+
rubygems_version: 1.8.6
|
|
83
59
|
signing_key:
|
|
84
60
|
specification_version: 3
|
|
85
|
-
summary: Rack Middleware that allows you set/override response headers for selected
|
|
61
|
+
summary: Rack Middleware that allows you set/override response headers for selected
|
|
62
|
+
paths
|
|
86
63
|
test_files: []
|
|
87
|
-
|