Move event handler detection into EventHandler
[god.git] / lib / god.rb
blob8598024b059984b6eae7b70fcb0368f3c7faba80
1 $:.unshift File.dirname(__FILE__)     # For use/testing when no gem is installed
3 # internal requires
4 require 'god/base'
5 require 'god/errors'
7 require 'god/system/process'
9 require 'god/behavior'
10 require 'god/behaviors/clean_pid_file'
12 require 'god/condition'
13 require 'god/conditions/timeline'
14 require 'god/conditions/process_running'
15 require 'god/conditions/process_exits'
16 require 'god/conditions/memory_usage'
17 require 'god/conditions/cpu_usage'
18 require 'god/conditions/always'
20 require 'god/reporter'
21 require 'god/server'
22 require 'god/timer'
23 require 'god/hub'
25 require 'god/metric'
27 require 'god/watch'
28 require 'god/meddle'
30 require 'god/event_handler'
32 Thread.abort_on_exception = true
34 $:.unshift File.join(File.dirname(__FILE__), *%w[.. ext god])
36 God::EventHandler.load
38 module God
39   VERSION = '0.2.1'
40     
41   def self.meddle(options = {})  
42     m = Meddle.new(options)
43     
44     # yeild to the config file
45     yield m
46     
47     # start event handler system
48     EventHandler.start if EventHandler.loaded?
49     
50     # start the timer system
51     Timer.get
53     # start monitoring each watch
54     m.monitor
55     
56     # join the timer thread to we don't exit
57     Timer.get.join
58   end  
59 end