rack-env-notifier 0.0.4 → 0.0.5
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.md +4 -0
- data/{LICENSE.txt → LICENSE} +0 -0
- data/README.md +5 -0
- data/lib/rack/env_notifier/body_injector.rb +7 -0
- data/lib/rack/env_notifier.rb +14 -7
- data/lib/rack-env-notifier.rb +1 -1
- metadata +16 -28
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: a5c629b250353cefaea0300cfa15606679d9f020
|
4
|
+
data.tar.gz: cf2c644b616624d23465054a97786214a1e1ff50
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4b67e844a1851df0bca53962b67c24f510a389a21b0aa4fbebcd2638e434242d577aae4843c5dfc01b656426cb323aa5aa99777d9e9d39be6fee8414f2a05ffd
|
7
|
+
data.tar.gz: 67a15ee0f84cfdec9074568361b074dd7b3c677f55b50a942c107817a8847281de354a21a9e7ca3dc9d95cad95d5c4dbff193ae3bd016b3b17f2ad09f2734d3c
|
data/CHANGELOG.md
CHANGED
data/{LICENSE.txt → LICENSE}
RENAMED
File without changes
|
data/README.md
CHANGED
@@ -34,6 +34,11 @@ Or install it yourself as:
|
|
34
34
|
|
35
35
|
## Usage
|
36
36
|
|
37
|
+
For Rails add use the middleware in application.rb:
|
38
|
+
|
39
|
+
config.middleware.use Rack::EnvNotifier
|
40
|
+
|
41
|
+
|
37
42
|
Rack::EnvNotifier can display a custom notification on every html page. It can be configured:
|
38
43
|
|
39
44
|
Rack::EnvNotifier.notify = Rails.env.production?
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module Rack
|
2
2
|
class EnvNotifier
|
3
3
|
class BodyInjector
|
4
|
+
# Lookup for <body> tag and inject notification after
|
5
|
+
|
4
6
|
BODY_TAG_REGEX = /<body>|<body[^(er)][^<]*>/
|
5
7
|
|
6
8
|
attr_reader :content_length, :new_body, :notification_added
|
@@ -14,6 +16,9 @@ module Rack
|
|
14
16
|
@env = env
|
15
17
|
@body.close if @body.respond_to?(:close)
|
16
18
|
|
19
|
+
# Convert String body to Array so it can respond to each method
|
20
|
+
# In test environment body may be a String object
|
21
|
+
|
17
22
|
@body = [@body] if @body.is_a? String
|
18
23
|
|
19
24
|
@new_body = []
|
@@ -29,6 +34,8 @@ module Rack
|
|
29
34
|
@notification_added = true
|
30
35
|
end
|
31
36
|
|
37
|
+
# Keep track of content_length
|
38
|
+
|
32
39
|
@content_length += line.bytesize
|
33
40
|
end
|
34
41
|
@new_body = @body
|
data/lib/rack/env_notifier.rb
CHANGED
@@ -19,6 +19,8 @@ module Rack
|
|
19
19
|
@message = msg
|
20
20
|
end
|
21
21
|
|
22
|
+
# Format notification based on custom_css value
|
23
|
+
|
22
24
|
def notification
|
23
25
|
if @custom_css == true
|
24
26
|
<<-EOF
|
@@ -35,13 +37,13 @@ module Rack
|
|
35
37
|
end
|
36
38
|
end
|
37
39
|
|
38
|
-
def notify?
|
39
|
-
@notify
|
40
|
-
end
|
41
|
-
|
42
40
|
def notify=(ntf)
|
43
41
|
@notify = ntf
|
44
42
|
end
|
43
|
+
|
44
|
+
def notify?
|
45
|
+
@notify
|
46
|
+
end
|
45
47
|
end
|
46
48
|
|
47
49
|
def initialize(app)
|
@@ -55,19 +57,24 @@ module Rack
|
|
55
57
|
def _call(env)
|
56
58
|
status, headers, body = @app.call(env)
|
57
59
|
|
58
|
-
#
|
60
|
+
# Inject headers, notification, update content-length header
|
61
|
+
|
59
62
|
if status == 200 and EnvNotifier.notify?
|
60
63
|
|
61
|
-
#
|
64
|
+
# Inject notification
|
65
|
+
|
62
66
|
if headers['Content-Type'] =~ %r{text/html} then
|
63
67
|
injector = BodyInjector.new(body, EnvNotifier.notification)
|
64
68
|
injector.inject!(env)
|
65
69
|
|
66
|
-
#
|
70
|
+
# Inject header
|
71
|
+
|
67
72
|
if injector.notification_added
|
68
73
|
headers['X-EnvNotifier'] = EnvNotifier.message
|
69
74
|
end
|
70
75
|
|
76
|
+
# Update content-length header after the body is modified
|
77
|
+
|
71
78
|
headers['Content-Length'] = injector.content_length.to_s
|
72
79
|
[status, headers, injector.new_body]
|
73
80
|
end
|
data/lib/rack-env-notifier.rb
CHANGED
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-env-notifier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.5
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Catalin Ilinca
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-17 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,65 +27,57 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rack-test
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: rack
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: 1.1.3
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - '>='
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: 1.1.3
|
94
83
|
description: Middleware that displays the custom notification for every html page.
|
@@ -106,7 +95,7 @@ files:
|
|
106
95
|
- .travis.yml
|
107
96
|
- CHANGELOG.md
|
108
97
|
- Gemfile
|
109
|
-
- LICENSE
|
98
|
+
- LICENSE
|
110
99
|
- README.md
|
111
100
|
- Rakefile
|
112
101
|
- assets/preview1.png
|
@@ -126,27 +115,26 @@ files:
|
|
126
115
|
homepage: https://github.com/ducknorris/rack-env-notifier
|
127
116
|
licenses:
|
128
117
|
- MIT
|
118
|
+
metadata: {}
|
129
119
|
post_install_message:
|
130
120
|
rdoc_options: []
|
131
121
|
require_paths:
|
132
122
|
- lib
|
133
123
|
required_ruby_version: !ruby/object:Gem::Requirement
|
134
|
-
none: false
|
135
124
|
requirements:
|
136
|
-
- -
|
125
|
+
- - '>='
|
137
126
|
- !ruby/object:Gem::Version
|
138
127
|
version: '0'
|
139
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
140
|
-
none: false
|
141
129
|
requirements:
|
142
|
-
- -
|
130
|
+
- - '>='
|
143
131
|
- !ruby/object:Gem::Version
|
144
132
|
version: '0'
|
145
133
|
requirements: []
|
146
134
|
rubyforge_project:
|
147
|
-
rubygems_version:
|
135
|
+
rubygems_version: 2.0.7
|
148
136
|
signing_key:
|
149
|
-
specification_version:
|
137
|
+
specification_version: 4
|
150
138
|
summary: Know your ground!
|
151
139
|
test_files:
|
152
140
|
- spec/rack/body_injector_spec.rb
|