pingable 0.0.3 → 0.0.4
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 +7 -2
- data/example/Gemfile +4 -0
- data/example/Gemfile.lock +36 -0
- data/example/config.ru +20 -6
- data/example/run.sh +4 -0
- data/lib/pingable/handler.rb +1 -1
- data/lib/pingable/version.rb +1 -1
- metadata +42 -64
data/README.md
CHANGED
@@ -3,7 +3,7 @@ Pingable
|
|
3
3
|
|
4
4
|
Pingable is a simple framework to implement a 'ping' URL in Rack-based web applications.
|
5
5
|
|
6
|
-
For example, a Rails or Sinatra app's `config.ru` may look like this:
|
6
|
+
For example, a Rails or Sinatra app's `config.ru` may look like this (Rack 1.4.0 and later):
|
7
7
|
|
8
8
|
map '/ping' do
|
9
9
|
use Pingable::Handler
|
@@ -44,6 +44,11 @@ Something a bit more complex:
|
|
44
44
|
|
45
45
|
Pingable.add_check TwitterCheck.new(:url => "http://twitter.com/")
|
46
46
|
|
47
|
+
Rack compatibility
|
48
|
+
------------------
|
49
|
+
|
50
|
+
Pre-Rack 1.4.0, `map` seems broken, and requires jumping through a few hoops to mount different paths. See `example/config.ru` for an example.
|
51
|
+
|
47
52
|
Configuration
|
48
53
|
-------------
|
49
54
|
|
@@ -59,7 +64,7 @@ Ping check
|
|
59
64
|
|
60
65
|
`/ping` is implemented by running all registered checks.
|
61
66
|
|
62
|
-
On failure, an HTTP `
|
67
|
+
On failure, an HTTP `503` is returned, with the body of the response being a `text/plain` text with each error on separate lines.
|
63
68
|
|
64
69
|
On success, a `200 OK` is returned, with either the application's name as the body (if defined), or an empty body.
|
65
70
|
|
data/example/Gemfile
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
activemodel (3.2.1)
|
5
|
+
activesupport (= 3.2.1)
|
6
|
+
builder (~> 3.0.0)
|
7
|
+
activerecord (3.2.1)
|
8
|
+
activemodel (= 3.2.1)
|
9
|
+
activesupport (= 3.2.1)
|
10
|
+
arel (~> 3.0.0)
|
11
|
+
tzinfo (~> 0.3.29)
|
12
|
+
activesupport (3.2.1)
|
13
|
+
i18n (~> 0.6)
|
14
|
+
multi_json (~> 1.0)
|
15
|
+
arel (3.0.0)
|
16
|
+
builder (3.0.0)
|
17
|
+
daemons (1.1.6)
|
18
|
+
eventmachine (0.12.10)
|
19
|
+
i18n (0.6.0)
|
20
|
+
multi_json (1.0.4)
|
21
|
+
pingable (0.0.3)
|
22
|
+
rack (>= 1.0.0)
|
23
|
+
rack (1.4.0)
|
24
|
+
thin (1.3.1)
|
25
|
+
daemons (>= 1.0.9)
|
26
|
+
eventmachine (>= 0.12.6)
|
27
|
+
rack (>= 1.0.0)
|
28
|
+
tzinfo (0.3.31)
|
29
|
+
|
30
|
+
PLATFORMS
|
31
|
+
ruby
|
32
|
+
|
33
|
+
DEPENDENCIES
|
34
|
+
activerecord
|
35
|
+
pingable
|
36
|
+
thin
|
data/example/config.ru
CHANGED
@@ -6,9 +6,23 @@ Pingable.add_check lambda {
|
|
6
6
|
{:message => "oh noes"}
|
7
7
|
}
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
9
|
+
if true
|
10
|
+
# Rack 1.4.0 and later
|
11
|
+
map '/ping' do
|
12
|
+
use Pingable::Handler, "myapp"
|
13
|
+
end
|
14
|
+
run lambda { |env|
|
15
|
+
[200, {'Content-Type' => 'text/plain'}, ['OK']]
|
16
|
+
}
|
17
|
+
else
|
18
|
+
# Earlier Rack versions barf without this
|
19
|
+
map '/ping' do
|
20
|
+
use Pingable::Handler, "myapp"
|
21
|
+
run nil
|
22
|
+
end
|
23
|
+
map '/' do
|
24
|
+
run lambda { |env|
|
25
|
+
[200, {'Content-Type' => 'text/plain'}, ['OK']]
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
data/example/run.sh
ADDED
data/lib/pingable/handler.rb
CHANGED
@@ -10,7 +10,7 @@ module Pingable
|
|
10
10
|
def call(env)
|
11
11
|
failures = Pingable.run_checks!
|
12
12
|
if failures.any?
|
13
|
-
[
|
13
|
+
[503, HEADERS, failures.map { |f| f[:message] }.join("\n")]
|
14
14
|
else
|
15
15
|
[200, HEADERS, @name ||= '']
|
16
16
|
end
|
data/lib/pingable/version.rb
CHANGED
metadata
CHANGED
@@ -1,68 +1,55 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: pingable
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 3
|
10
|
-
version: 0.0.3
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Alexander Staubo
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-01-27 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rspec
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70205298320220 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
32
22
|
type: :development
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: rack
|
36
23
|
prerelease: false
|
37
|
-
|
24
|
+
version_requirements: *70205298320220
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rack
|
27
|
+
requirement: &70205298319720 !ruby/object:Gem::Requirement
|
38
28
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
hash: 23
|
43
|
-
segments:
|
44
|
-
- 1
|
45
|
-
- 0
|
46
|
-
- 0
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
47
32
|
version: 1.0.0
|
48
33
|
type: :runtime
|
49
|
-
|
50
|
-
|
51
|
-
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70205298319720
|
36
|
+
description: Pingable is a Rack handler that let an app respond to a path /ping, with
|
37
|
+
pluggable checks.
|
38
|
+
email:
|
52
39
|
- alex@origo.no
|
53
40
|
executables: []
|
54
|
-
|
55
41
|
extensions: []
|
56
|
-
|
57
42
|
extra_rdoc_files: []
|
58
|
-
|
59
|
-
files:
|
43
|
+
files:
|
60
44
|
- .gitignore
|
61
45
|
- Gemfile
|
62
46
|
- LICENSE
|
63
47
|
- README.md
|
64
48
|
- Rakefile
|
49
|
+
- example/Gemfile
|
50
|
+
- example/Gemfile.lock
|
65
51
|
- example/config.ru
|
52
|
+
- example/run.sh
|
66
53
|
- lib/pingable.rb
|
67
54
|
- lib/pingable/common_checks.rb
|
68
55
|
- lib/pingable/core.rb
|
@@ -71,36 +58,27 @@ files:
|
|
71
58
|
- pingable.gemspec
|
72
59
|
homepage: http://github.com/origo/pingable
|
73
60
|
licenses: []
|
74
|
-
|
75
61
|
post_install_message:
|
76
62
|
rdoc_options: []
|
77
|
-
|
78
|
-
require_paths:
|
63
|
+
require_paths:
|
79
64
|
- lib
|
80
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
66
|
none: false
|
82
|
-
requirements:
|
83
|
-
- -
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
|
86
|
-
|
87
|
-
- 0
|
88
|
-
version: "0"
|
89
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
72
|
none: false
|
91
|
-
requirements:
|
92
|
-
- -
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
|
95
|
-
segments:
|
96
|
-
- 0
|
97
|
-
version: "0"
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
98
77
|
requirements: []
|
99
|
-
|
100
78
|
rubyforge_project: pingable
|
101
|
-
rubygems_version: 1.8.
|
79
|
+
rubygems_version: 1.8.15
|
102
80
|
signing_key:
|
103
81
|
specification_version: 3
|
104
|
-
summary: Pingable is a Rack handler that let an app respond to a path /ping, with
|
82
|
+
summary: Pingable is a Rack handler that let an app respond to a path /ping, with
|
83
|
+
pluggable checks.
|
105
84
|
test_files: []
|
106
|
-
|