mojombo-god 0.7.7
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/History.txt +255 -0
- data/Manifest.txt +107 -0
- data/README.txt +59 -0
- data/Rakefile +35 -0
- data/bin/god +127 -0
- data/examples/events.god +84 -0
- data/examples/gravatar.god +54 -0
- data/examples/single.god +66 -0
- data/ext/god/extconf.rb +55 -0
- data/ext/god/kqueue_handler.c +123 -0
- data/ext/god/netlink_handler.c +167 -0
- data/init/god +42 -0
- data/lib/god.rb +644 -0
- data/lib/god/behavior.rb +52 -0
- data/lib/god/behaviors/clean_pid_file.rb +21 -0
- data/lib/god/behaviors/clean_unix_socket.rb +21 -0
- data/lib/god/behaviors/notify_when_flapping.rb +51 -0
- data/lib/god/cli/command.rb +206 -0
- data/lib/god/cli/run.rb +177 -0
- data/lib/god/cli/version.rb +23 -0
- data/lib/god/condition.rb +96 -0
- data/lib/god/conditions/always.rb +23 -0
- data/lib/god/conditions/complex.rb +86 -0
- data/lib/god/conditions/cpu_usage.rb +80 -0
- data/lib/god/conditions/degrading_lambda.rb +52 -0
- data/lib/god/conditions/disk_usage.rb +27 -0
- data/lib/god/conditions/flapping.rb +128 -0
- data/lib/god/conditions/http_response_code.rb +168 -0
- data/lib/god/conditions/lambda.rb +25 -0
- data/lib/god/conditions/memory_usage.rb +82 -0
- data/lib/god/conditions/process_exits.rb +72 -0
- data/lib/god/conditions/process_running.rb +74 -0
- data/lib/god/conditions/tries.rb +44 -0
- data/lib/god/configurable.rb +57 -0
- data/lib/god/contact.rb +106 -0
- data/lib/god/contacts/email.rb +95 -0
- data/lib/god/dependency_graph.rb +41 -0
- data/lib/god/diagnostics.rb +37 -0
- data/lib/god/driver.rb +108 -0
- data/lib/god/errors.rb +24 -0
- data/lib/god/event_handler.rb +111 -0
- data/lib/god/event_handlers/dummy_handler.rb +13 -0
- data/lib/god/event_handlers/kqueue_handler.rb +17 -0
- data/lib/god/event_handlers/netlink_handler.rb +13 -0
- data/lib/god/logger.rb +120 -0
- data/lib/god/metric.rb +59 -0
- data/lib/god/process.rb +325 -0
- data/lib/god/registry.rb +32 -0
- data/lib/god/simple_logger.rb +53 -0
- data/lib/god/socket.rb +96 -0
- data/lib/god/sugar.rb +47 -0
- data/lib/god/system/portable_poller.rb +42 -0
- data/lib/god/system/process.rb +42 -0
- data/lib/god/system/slash_proc_poller.rb +82 -0
- data/lib/god/task.rb +487 -0
- data/lib/god/timeline.rb +25 -0
- data/lib/god/trigger.rb +43 -0
- data/lib/god/watch.rb +183 -0
- data/test/configs/child_events/child_events.god +44 -0
- data/test/configs/child_events/simple_server.rb +3 -0
- data/test/configs/child_polls/child_polls.god +37 -0
- data/test/configs/child_polls/simple_server.rb +12 -0
- data/test/configs/complex/complex.god +59 -0
- data/test/configs/complex/simple_server.rb +3 -0
- data/test/configs/contact/contact.god +74 -0
- data/test/configs/contact/simple_server.rb +3 -0
- data/test/configs/daemon_events/daemon_events.god +37 -0
- data/test/configs/daemon_events/simple_server.rb +8 -0
- data/test/configs/daemon_events/simple_server_stop.rb +11 -0
- data/test/configs/daemon_polls/daemon_polls.god +17 -0
- data/test/configs/daemon_polls/simple_server.rb +6 -0
- data/test/configs/degrading_lambda/degrading_lambda.god +31 -0
- data/test/configs/degrading_lambda/tcp_server.rb +15 -0
- data/test/configs/matias/matias.god +50 -0
- data/test/configs/real.rb +59 -0
- data/test/configs/running_load/running_load.god +16 -0
- data/test/configs/stress/simple_server.rb +3 -0
- data/test/configs/stress/stress.god +15 -0
- data/test/configs/task/logs/.placeholder +0 -0
- data/test/configs/task/task.god +26 -0
- data/test/configs/test.rb +61 -0
- data/test/helper.rb +151 -0
- data/test/suite.rb +6 -0
- data/test/test_behavior.rb +21 -0
- data/test/test_condition.rb +50 -0
- data/test/test_conditions_disk_usage.rb +56 -0
- data/test/test_conditions_http_response_code.rb +109 -0
- data/test/test_conditions_process_running.rb +44 -0
- data/test/test_conditions_tries.rb +67 -0
- data/test/test_contact.rb +109 -0
- data/test/test_dependency_graph.rb +62 -0
- data/test/test_driver.rb +11 -0
- data/test/test_event_handler.rb +80 -0
- data/test/test_god.rb +598 -0
- data/test/test_handlers_kqueue_handler.rb +16 -0
- data/test/test_logger.rb +63 -0
- data/test/test_metric.rb +72 -0
- data/test/test_process.rb +246 -0
- data/test/test_registry.rb +15 -0
- data/test/test_socket.rb +42 -0
- data/test/test_sugar.rb +42 -0
- data/test/test_system_portable_poller.rb +17 -0
- data/test/test_system_process.rb +30 -0
- data/test/test_task.rb +262 -0
- data/test/test_timeline.rb +37 -0
- data/test/test_trigger.rb +59 -0
- data/test/test_watch.rb +279 -0
- metadata +186 -0
data/test/test_watch.rb
ADDED
@@ -0,0 +1,279 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
2
|
+
|
3
|
+
class TestWatch < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
God.internal_init
|
6
|
+
@watch = Watch.new
|
7
|
+
@watch.name = 'foo'
|
8
|
+
@watch.start = lambda { }
|
9
|
+
@watch.stop = lambda { }
|
10
|
+
@watch.prepare
|
11
|
+
end
|
12
|
+
|
13
|
+
# new
|
14
|
+
|
15
|
+
def test_new_should_have_no_behaviors
|
16
|
+
assert_equal [], @watch.behaviors
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_new_should_have_no_metrics
|
20
|
+
Watch::VALID_STATES.each do |state|
|
21
|
+
assert_equal [], @watch.metrics[state]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_new_should_have_standard_attributes
|
26
|
+
assert_nothing_raised do
|
27
|
+
@watch.name = 'foo'
|
28
|
+
@watch.start = 'start'
|
29
|
+
@watch.stop = 'stop'
|
30
|
+
@watch.restart = 'restart'
|
31
|
+
@watch.interval = 30
|
32
|
+
@watch.grace = 5
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_new_should_have_unmonitored_state
|
37
|
+
assert_equal :unmonitored, @watch.state
|
38
|
+
end
|
39
|
+
|
40
|
+
# valid?
|
41
|
+
|
42
|
+
def test_valid?
|
43
|
+
God::Process.any_instance.expects(:valid?)
|
44
|
+
@watch.valid?
|
45
|
+
end
|
46
|
+
|
47
|
+
# behavior
|
48
|
+
|
49
|
+
def test_behavior_should_record_behavior
|
50
|
+
beh = nil
|
51
|
+
@watch.behavior(:fake_behavior) { |b| beh = b }
|
52
|
+
assert_equal 1, @watch.behaviors.size
|
53
|
+
assert_equal beh, @watch.behaviors.first
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_invalid_behavior_should_abort
|
57
|
+
assert_abort do
|
58
|
+
@watch.behavior(:invalid)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# transition
|
63
|
+
|
64
|
+
def test_transition_should_abort_on_invalid_start_state
|
65
|
+
assert_abort do
|
66
|
+
@watch.transition(:foo, :bar)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_transition_should_accept_all_valid_start_states
|
71
|
+
assert_nothing_raised do
|
72
|
+
Watch::VALID_STATES.each do |state|
|
73
|
+
@watch.transition(state, :bar) { }
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_transition_should_create_and_record_a_metric_for_the_given_start_state
|
79
|
+
@watch.transition(:init, :start) { }
|
80
|
+
assert_equal 1, @watch.metrics[:init].size
|
81
|
+
end
|
82
|
+
|
83
|
+
# lifecycle
|
84
|
+
|
85
|
+
def test_lifecycle_should_create_and_record_a_metric_for_nil_start_state
|
86
|
+
@watch.lifecycle { }
|
87
|
+
assert_equal 1, @watch.metrics[nil].size
|
88
|
+
end
|
89
|
+
|
90
|
+
# start_if
|
91
|
+
|
92
|
+
def test_start_if_should_place_a_metric_on_up_state
|
93
|
+
@watch.start_if { }
|
94
|
+
assert_equal 1, @watch.metrics[:up].size
|
95
|
+
end
|
96
|
+
|
97
|
+
# restart_if
|
98
|
+
|
99
|
+
def test_restart_if_should_place_a_metric_on_up_state
|
100
|
+
@watch.restart_if { }
|
101
|
+
assert_equal 1, @watch.metrics[:up].size
|
102
|
+
end
|
103
|
+
|
104
|
+
# monitor
|
105
|
+
|
106
|
+
def test_monitor_should_move_to_init_if_available
|
107
|
+
@watch.instance_eval do
|
108
|
+
transition(:init, :up) { }
|
109
|
+
end
|
110
|
+
@watch.expects(:move).with(:init)
|
111
|
+
@watch.monitor
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_monitor_should_move_to_up_if_no_init_available
|
115
|
+
@watch.expects(:move).with(:up)
|
116
|
+
@watch.monitor
|
117
|
+
end
|
118
|
+
|
119
|
+
# unmonitor
|
120
|
+
|
121
|
+
def test_unmonitor_should_move_to_nil
|
122
|
+
@watch.expects(:move).with(:unmonitored)
|
123
|
+
@watch.unmonitor
|
124
|
+
end
|
125
|
+
|
126
|
+
# move
|
127
|
+
|
128
|
+
def test_move_should_not_clean_up_if_from_state_is_nil
|
129
|
+
Thread.current.stubs(:==).returns(true)
|
130
|
+
@watch.driver.expects(:message).never
|
131
|
+
|
132
|
+
metric = nil
|
133
|
+
|
134
|
+
@watch.instance_eval do
|
135
|
+
transition(:init, :up) do |on|
|
136
|
+
metric = on
|
137
|
+
on.condition(:process_running) do |c|
|
138
|
+
c.running = true
|
139
|
+
c.interval = 10
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
metric.expects(:disable).never
|
145
|
+
|
146
|
+
no_stdout { @watch.move(:init) }
|
147
|
+
end
|
148
|
+
|
149
|
+
def test_move_should_clean_up_from_state_if_not_nil
|
150
|
+
Thread.current.stubs(:==).returns(true)
|
151
|
+
@watch.driver.expects(:message).never
|
152
|
+
|
153
|
+
metric = nil
|
154
|
+
|
155
|
+
@watch.instance_eval do
|
156
|
+
transition(:init, :up) do |on|
|
157
|
+
metric = on
|
158
|
+
on.condition(:process_running) do |c|
|
159
|
+
c.running = true
|
160
|
+
c.interval = 10
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
no_stdout { @watch.move(:init) }
|
166
|
+
|
167
|
+
metric.expects(:disable)
|
168
|
+
|
169
|
+
no_stdout { @watch.move(:up) }
|
170
|
+
end
|
171
|
+
|
172
|
+
def test_move_should_call_action
|
173
|
+
Thread.current.stubs(:==).returns(true)
|
174
|
+
@watch.driver.expects(:message).never
|
175
|
+
|
176
|
+
@watch.expects(:action).with(:start)
|
177
|
+
|
178
|
+
no_stdout { @watch.move(:start) }
|
179
|
+
end
|
180
|
+
|
181
|
+
def test_move_should_move_to_up_state_if_no_start_or_restart_metric
|
182
|
+
Thread.current.stubs(:==).returns(true)
|
183
|
+
@watch.driver.expects(:message).never
|
184
|
+
|
185
|
+
[:start, :restart].each do |state|
|
186
|
+
@watch.expects(:action)
|
187
|
+
no_stdout { @watch.move(state) }
|
188
|
+
assert_equal :up, @watch.state
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
def test_move_should_enable_destination_metric
|
193
|
+
Thread.current.stubs(:==).returns(true)
|
194
|
+
@watch.driver.expects(:message).never
|
195
|
+
|
196
|
+
metric = nil
|
197
|
+
|
198
|
+
@watch.instance_eval do
|
199
|
+
transition(:init, :up) do |on|
|
200
|
+
metric = on
|
201
|
+
on.condition(:process_running) do |c|
|
202
|
+
c.running = true
|
203
|
+
c.interval = 10
|
204
|
+
end
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
metric.expects(:enable)
|
209
|
+
|
210
|
+
no_stdout { @watch.move(:init) }
|
211
|
+
end
|
212
|
+
|
213
|
+
# action
|
214
|
+
|
215
|
+
def test_action_should_pass_start_and_stop_actions_to_call_action
|
216
|
+
Thread.current.stubs(:==).returns(true)
|
217
|
+
@watch.driver.expects(:message).never
|
218
|
+
|
219
|
+
c = Conditions::FakePollCondition.new
|
220
|
+
[:start, :stop].each do |cmd|
|
221
|
+
@watch.expects(:call_action).with(c, cmd)
|
222
|
+
@watch.action(cmd, c)
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
def test_action_should_do_stop_then_start_if_no_restart_command
|
227
|
+
Thread.current.stubs(:==).returns(true)
|
228
|
+
@watch.driver.expects(:message).never
|
229
|
+
|
230
|
+
c = Conditions::FakePollCondition.new
|
231
|
+
@watch.expects(:call_action).with(c, :stop)
|
232
|
+
@watch.expects(:call_action).with(c, :start)
|
233
|
+
@watch.action(:restart, c)
|
234
|
+
end
|
235
|
+
|
236
|
+
def test_action_should_restart_to_call_action_if_present
|
237
|
+
Thread.current.stubs(:==).returns(true)
|
238
|
+
@watch.driver.expects(:message).never
|
239
|
+
|
240
|
+
@watch.restart = lambda { }
|
241
|
+
c = Conditions::FakePollCondition.new
|
242
|
+
@watch.expects(:call_action).with(c, :restart)
|
243
|
+
@watch.action(:restart, c)
|
244
|
+
end
|
245
|
+
|
246
|
+
# call_action
|
247
|
+
|
248
|
+
def test_call_action
|
249
|
+
c = Conditions::FakePollCondition.new
|
250
|
+
God::Process.any_instance.expects(:call_action).with(:start)
|
251
|
+
no_stdout { @watch.call_action(c, :start) }
|
252
|
+
end
|
253
|
+
|
254
|
+
def test_call_action_should_call_before_start_when_behavior_has_that
|
255
|
+
@watch.behavior(:fake_behavior)
|
256
|
+
c = Conditions::FakePollCondition.new
|
257
|
+
God::Process.any_instance.expects(:call_action).with(:start)
|
258
|
+
Behaviors::FakeBehavior.any_instance.expects(:before_start)
|
259
|
+
no_stdout { @watch.call_action(c, :start) }
|
260
|
+
end
|
261
|
+
|
262
|
+
def test_call_action_should_call_after_start_when_behavior_has_that
|
263
|
+
@watch.behavior(:fake_behavior)
|
264
|
+
c = Conditions::FakePollCondition.new
|
265
|
+
God::Process.any_instance.expects(:call_action).with(:start)
|
266
|
+
Behaviors::FakeBehavior.any_instance.expects(:after_start)
|
267
|
+
no_stdout { @watch.call_action(c, :start) }
|
268
|
+
end
|
269
|
+
|
270
|
+
# canonical_hash_form
|
271
|
+
|
272
|
+
def test_canonical_hash_form_should_convert_symbol_to_hash
|
273
|
+
assert_equal({true => :foo}, @watch.canonical_hash_form(:foo))
|
274
|
+
end
|
275
|
+
|
276
|
+
def test_canonical_hash_form_should_convert_hash_to_hash
|
277
|
+
assert_equal({true => :foo}, @watch.canonical_hash_form(true => :foo))
|
278
|
+
end
|
279
|
+
end
|
metadata
ADDED
@@ -0,0 +1,186 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mojombo-god
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.7.7
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tom Preston-Werner
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-06-23 00:00:00 -07:00
|
13
|
+
default_executable: god
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: God is an easy to configure, easy to extend monitoring framework written in Ruby.
|
17
|
+
email: tom@rubyisawesome.com
|
18
|
+
executables:
|
19
|
+
- god
|
20
|
+
extensions:
|
21
|
+
- ext/god/extconf.rb
|
22
|
+
extra_rdoc_files:
|
23
|
+
- History.txt
|
24
|
+
- Manifest.txt
|
25
|
+
- README.txt
|
26
|
+
files:
|
27
|
+
- History.txt
|
28
|
+
- Manifest.txt
|
29
|
+
- README.txt
|
30
|
+
- Rakefile
|
31
|
+
- bin/god
|
32
|
+
- examples/events.god
|
33
|
+
- examples/gravatar.god
|
34
|
+
- examples/single.god
|
35
|
+
- ext/god/extconf.rb
|
36
|
+
- ext/god/kqueue_handler.c
|
37
|
+
- ext/god/netlink_handler.c
|
38
|
+
- init/god
|
39
|
+
- lib/god.rb
|
40
|
+
- lib/god/behavior.rb
|
41
|
+
- lib/god/behaviors/clean_pid_file.rb
|
42
|
+
- lib/god/behaviors/clean_unix_socket.rb
|
43
|
+
- lib/god/behaviors/notify_when_flapping.rb
|
44
|
+
- lib/god/cli/command.rb
|
45
|
+
- lib/god/cli/run.rb
|
46
|
+
- lib/god/cli/version.rb
|
47
|
+
- lib/god/condition.rb
|
48
|
+
- lib/god/conditions/always.rb
|
49
|
+
- lib/god/conditions/complex.rb
|
50
|
+
- lib/god/conditions/cpu_usage.rb
|
51
|
+
- lib/god/conditions/degrading_lambda.rb
|
52
|
+
- lib/god/conditions/disk_usage.rb
|
53
|
+
- lib/god/conditions/flapping.rb
|
54
|
+
- lib/god/conditions/http_response_code.rb
|
55
|
+
- lib/god/conditions/lambda.rb
|
56
|
+
- lib/god/conditions/memory_usage.rb
|
57
|
+
- lib/god/conditions/process_exits.rb
|
58
|
+
- lib/god/conditions/process_running.rb
|
59
|
+
- lib/god/conditions/tries.rb
|
60
|
+
- lib/god/configurable.rb
|
61
|
+
- lib/god/contact.rb
|
62
|
+
- lib/god/contacts/email.rb
|
63
|
+
- lib/god/dependency_graph.rb
|
64
|
+
- lib/god/diagnostics.rb
|
65
|
+
- lib/god/driver.rb
|
66
|
+
- lib/god/errors.rb
|
67
|
+
- lib/god/event_handler.rb
|
68
|
+
- lib/god/event_handlers/dummy_handler.rb
|
69
|
+
- lib/god/event_handlers/kqueue_handler.rb
|
70
|
+
- lib/god/event_handlers/netlink_handler.rb
|
71
|
+
- lib/god/logger.rb
|
72
|
+
- lib/god/metric.rb
|
73
|
+
- lib/god/process.rb
|
74
|
+
- lib/god/registry.rb
|
75
|
+
- lib/god/simple_logger.rb
|
76
|
+
- lib/god/socket.rb
|
77
|
+
- lib/god/sugar.rb
|
78
|
+
- lib/god/system/portable_poller.rb
|
79
|
+
- lib/god/system/process.rb
|
80
|
+
- lib/god/system/slash_proc_poller.rb
|
81
|
+
- lib/god/task.rb
|
82
|
+
- lib/god/timeline.rb
|
83
|
+
- lib/god/trigger.rb
|
84
|
+
- lib/god/watch.rb
|
85
|
+
- test/configs/child_events/child_events.god
|
86
|
+
- test/configs/child_events/simple_server.rb
|
87
|
+
- test/configs/child_polls/child_polls.god
|
88
|
+
- test/configs/child_polls/simple_server.rb
|
89
|
+
- test/configs/complex/complex.god
|
90
|
+
- test/configs/complex/simple_server.rb
|
91
|
+
- test/configs/contact/contact.god
|
92
|
+
- test/configs/contact/simple_server.rb
|
93
|
+
- test/configs/daemon_events/daemon_events.god
|
94
|
+
- test/configs/daemon_events/simple_server.rb
|
95
|
+
- test/configs/daemon_events/simple_server_stop.rb
|
96
|
+
- test/configs/daemon_polls/daemon_polls.god
|
97
|
+
- test/configs/daemon_polls/simple_server.rb
|
98
|
+
- test/configs/degrading_lambda/degrading_lambda.god
|
99
|
+
- test/configs/degrading_lambda/tcp_server.rb
|
100
|
+
- test/configs/matias/matias.god
|
101
|
+
- test/configs/real.rb
|
102
|
+
- test/configs/running_load/running_load.god
|
103
|
+
- test/configs/stress/simple_server.rb
|
104
|
+
- test/configs/stress/stress.god
|
105
|
+
- test/configs/task/logs/.placeholder
|
106
|
+
- test/configs/task/task.god
|
107
|
+
- test/configs/test.rb
|
108
|
+
- test/helper.rb
|
109
|
+
- test/suite.rb
|
110
|
+
- test/test_behavior.rb
|
111
|
+
- test/test_condition.rb
|
112
|
+
- test/test_conditions_disk_usage.rb
|
113
|
+
- test/test_conditions_http_response_code.rb
|
114
|
+
- test/test_conditions_process_running.rb
|
115
|
+
- test/test_conditions_tries.rb
|
116
|
+
- test/test_contact.rb
|
117
|
+
- test/test_dependency_graph.rb
|
118
|
+
- test/test_driver.rb
|
119
|
+
- test/test_event_handler.rb
|
120
|
+
- test/test_god.rb
|
121
|
+
- test/test_handlers_kqueue_handler.rb
|
122
|
+
- test/test_logger.rb
|
123
|
+
- test/test_metric.rb
|
124
|
+
- test/test_process.rb
|
125
|
+
- test/test_registry.rb
|
126
|
+
- test/test_socket.rb
|
127
|
+
- test/test_sugar.rb
|
128
|
+
- test/test_system_portable_poller.rb
|
129
|
+
- test/test_system_process.rb
|
130
|
+
- test/test_task.rb
|
131
|
+
- test/test_timeline.rb
|
132
|
+
- test/test_trigger.rb
|
133
|
+
- test/test_watch.rb
|
134
|
+
has_rdoc: true
|
135
|
+
homepage: http://god.rubyforge.org/
|
136
|
+
post_install_message:
|
137
|
+
rdoc_options:
|
138
|
+
- --main
|
139
|
+
- README.txt
|
140
|
+
require_paths:
|
141
|
+
- lib
|
142
|
+
- ext
|
143
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: "0"
|
148
|
+
version:
|
149
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: "0"
|
154
|
+
version:
|
155
|
+
requirements: []
|
156
|
+
|
157
|
+
rubyforge_project: god
|
158
|
+
rubygems_version: 1.2.0
|
159
|
+
signing_key:
|
160
|
+
specification_version: 2
|
161
|
+
summary: Like monit, only awesome
|
162
|
+
test_files:
|
163
|
+
- test/test_process.rb
|
164
|
+
- test/test_watch.rb
|
165
|
+
- test/test_system_portable_poller.rb
|
166
|
+
- test/test_conditions_tries.rb
|
167
|
+
- test/test_task.rb
|
168
|
+
- test/test_condition.rb
|
169
|
+
- test/test_timeline.rb
|
170
|
+
- test/test_logger.rb
|
171
|
+
- test/test_conditions_process_running.rb
|
172
|
+
- test/test_handlers_kqueue_handler.rb
|
173
|
+
- test/test_conditions_disk_usage.rb
|
174
|
+
- test/test_event_handler.rb
|
175
|
+
- test/test_driver.rb
|
176
|
+
- test/test_dependency_graph.rb
|
177
|
+
- test/test_metric.rb
|
178
|
+
- test/test_registry.rb
|
179
|
+
- test/test_behavior.rb
|
180
|
+
- test/test_socket.rb
|
181
|
+
- test/test_sugar.rb
|
182
|
+
- test/test_trigger.rb
|
183
|
+
- test/test_conditions_http_response_code.rb
|
184
|
+
- test/test_god.rb
|
185
|
+
- test/test_system_process.rb
|
186
|
+
- test/test_contact.rb
|