rack-env-notifier 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,3 +1,7 @@
1
+ ## v0.0.5
2
+
3
+ * Update code documentation
4
+
1
5
  ## v0.0.4
2
6
 
3
7
  * Update README
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
@@ -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
- # inject headers, notification
60
+ # Inject headers, notification, update content-length header
61
+
59
62
  if status == 200 and EnvNotifier.notify?
60
63
 
61
- # inject notification
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
- # inject header
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
@@ -1,5 +1,5 @@
1
1
  require 'rack/env_notifier'
2
2
 
3
3
  class Rack::EnvNotifier
4
- VERSION = "0.0.4"
4
+ VERSION = "0.0.5"
5
5
  end
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.4
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-15 00:00:00.000000000 Z
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.txt
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: 1.8.23
135
+ rubygems_version: 2.0.7
148
136
  signing_key:
149
- specification_version: 3
137
+ specification_version: 4
150
138
  summary: Know your ground!
151
139
  test_files:
152
140
  - spec/rack/body_injector_spec.rb