rack-heartbeat 1.0 → 1.0.1
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 +4 -4
- data/Gemfile +2 -1
- data/README.md +1 -1
- data/Rakefile +7 -0
- data/lib/rack/heartbeat.rb +15 -2
- data/rack-heartbeat.gemspec +4 -4
- data/test/helper.rb +6 -0
- data/test/rack/test_heartbeat.rb +57 -0
- metadata +35 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f91474fa924440ab0c9072b3636ffa7225b28cc
|
4
|
+
data.tar.gz: b864ec021073c6c39fb1e84deea53378a3b760b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 043d03774af1f1b4b4dc79a433da8030501d840e9557d7aa9fe59f1987f05e72caf4d4d7a9cfff2f1ac39d35e65d8221dc5f03c7ca2079cc3cac1abbaccfc89e
|
7
|
+
data.tar.gz: 7603c6b7c54a80220c9e44d58b531bcb8946c6a39fdd7aca86bd055b925c616a75898dcbabadb5fd7ccb527dfc28aa9a84bc6b5ea0f0e05264fe1706ceba6ede
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -23,7 +23,7 @@ Once the gem is installed, you're done. Just browse to localhost:300/heartbeat
|
|
23
23
|
If you want to customize the url for any reason, you can configure that, too:
|
24
24
|
|
25
25
|
```ruby
|
26
|
-
#config/
|
26
|
+
#config/initializers/rack_heartbeat.rb
|
27
27
|
Rack::Heartbeat.setup do |config|
|
28
28
|
config.heartbeat_path = 'health-check.txt'
|
29
29
|
end
|
data/Rakefile
CHANGED
data/lib/rack/heartbeat.rb
CHANGED
@@ -3,9 +3,18 @@ module Rack
|
|
3
3
|
# that returns status 200 and content OK when executed.
|
4
4
|
|
5
5
|
class Heartbeat
|
6
|
-
cattr_accessor :heartbeat_path
|
7
6
|
@@heartbeat_path = 'heartbeat'
|
8
|
-
|
7
|
+
|
8
|
+
class << self
|
9
|
+
def heartbeat_path
|
10
|
+
@@heartbeat_path
|
11
|
+
end
|
12
|
+
|
13
|
+
def heartbeat_path=(path)
|
14
|
+
@@heartbeat_path = path
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
9
18
|
def initialize(app)
|
10
19
|
@app = app
|
11
20
|
end
|
@@ -19,6 +28,10 @@ module Rack
|
|
19
28
|
end
|
20
29
|
end
|
21
30
|
|
31
|
+
def heartbeat_path
|
32
|
+
self.class.heartbeat_path
|
33
|
+
end
|
34
|
+
|
22
35
|
def self.setup
|
23
36
|
yield self
|
24
37
|
end
|
data/rack-heartbeat.gemspec
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
#require 'rack'
|
3
2
|
|
4
3
|
Gem::Specification.new do |gem|
|
5
4
|
gem.authors = ["James Cox"]
|
@@ -13,8 +12,9 @@ Gem::Specification.new do |gem|
|
|
13
12
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
14
13
|
gem.name = "rack-heartbeat"
|
15
14
|
gem.require_paths = ["lib"]
|
16
|
-
gem.version = '1.0'
|
15
|
+
gem.version = '1.0.1'
|
17
16
|
|
18
|
-
|
19
|
-
gem.
|
17
|
+
gem.add_development_dependency('minitest')
|
18
|
+
gem.add_development_dependency('rack-test')
|
19
|
+
gem.add_runtime_dependency('rack')
|
20
20
|
end
|
data/test/helper.rb
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class Rack::TestHeartbeat < Minitest::Test
|
4
|
+
def setup
|
5
|
+
@app = Minitest::Mock.new
|
6
|
+
@heartbeat = Rack::Heartbeat.new(@app)
|
7
|
+
end
|
8
|
+
|
9
|
+
def teardown
|
10
|
+
Rack::Heartbeat.setup do |config|
|
11
|
+
config.heartbeat_path = 'heartbeat'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_initialize_sets_default_heartbeat_path
|
16
|
+
assert_match(/\Aheartbeat\z/, @heartbeat.heartbeat_path)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_call_when_env_empty_sends_app_call
|
20
|
+
env = {}
|
21
|
+
|
22
|
+
@app.expect :call, nil, [env]
|
23
|
+
@heartbeat.call(env)
|
24
|
+
@app.verify
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_call_when_path_info_is_nil_sends_app_call
|
28
|
+
env = {'PATH_INFO' => nil}
|
29
|
+
|
30
|
+
@app.expect :call, nil, [env]
|
31
|
+
@heartbeat.call(env)
|
32
|
+
@app.verify
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_call_when_path_info_does_not_match_heartbeat_sends_app_call
|
36
|
+
env = {'PATH_INFO' => 'some-path'}
|
37
|
+
|
38
|
+
@app.expect :call, nil, [env]
|
39
|
+
@heartbeat.call(env)
|
40
|
+
@app.verify
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_call_when_path_info_matches_heartbeat_path_returns_200_response
|
44
|
+
env = {'PATH_INFO' => '/heartbeat'}
|
45
|
+
|
46
|
+
assert_equal [200, {'Content-Type' => 'text/plain'}, ['OK']], @heartbeat.call(env)
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_setup_configures_heartbeat_path
|
50
|
+
expected = 'health-check.txt'
|
51
|
+
Rack::Heartbeat.setup do |config|
|
52
|
+
config.heartbeat_path = expected
|
53
|
+
end
|
54
|
+
|
55
|
+
assert_match expected, Rack::Heartbeat.heartbeat_path
|
56
|
+
end
|
57
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-heartbeat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Cox
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: minitest
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rack-test
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
13
41
|
- !ruby/object:Gem::Dependency
|
14
42
|
name: rack
|
15
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -41,6 +69,8 @@ files:
|
|
41
69
|
- lib/rack/heartbeat.rb
|
42
70
|
- lib/rack/heartbeat/railtie.rb
|
43
71
|
- rack-heartbeat.gemspec
|
72
|
+
- test/helper.rb
|
73
|
+
- test/rack/test_heartbeat.rb
|
44
74
|
homepage: https://github.com/imajes/rack-heartbeat
|
45
75
|
licenses: []
|
46
76
|
metadata: {}
|
@@ -65,4 +95,6 @@ signing_key:
|
|
65
95
|
specification_version: 4
|
66
96
|
summary: provides a simple endpoint for your rails app for a heartbeat client to connect
|
67
97
|
to
|
68
|
-
test_files:
|
98
|
+
test_files:
|
99
|
+
- test/helper.rb
|
100
|
+
- test/rack/test_heartbeat.rb
|