first stab at event integration and some new ideas about lifecycle
[god.git] / lib / god.rb
blobd264eaa4202eb770c1ee9545ddf2efc0f18c475e
1 $:.unshift File.dirname(__FILE__)     # For use/testing when no gem is installed
2 $:.unshift File.join(File.dirname(__FILE__), *%w[.. ext kqueue_handler])
4 # internal requires
5 require 'god/base'
6 require 'god/errors'
8 require 'god/system/process'
10 require 'god/behavior'
11 require 'god/behaviors/clean_pid_file'
13 require 'god/condition'
14 require 'god/conditions/timeline'
15 require 'god/conditions/process_not_running'
16 require 'god/conditions/process_exits'
17 require 'god/conditions/memory_usage'
18 require 'god/conditions/cpu_usage'
19 require 'god/conditions/always'
21 require 'god/reporter'
22 require 'god/server'
23 require 'god/timer'
25 require 'god/watch'
26 require 'god/meddle'
28 require 'god/event_handler'
30 module God
31   VERSION = '0.1.0'
32   
33   case RUBY_PLATFORM
34   when /darwin/i, /bsd/i
35     require 'kqueue_handler'
36     EventHandler.handler = KQueueHandler
37   else
38     raise NotImplementedError, "Platform not supported for EventHandler"
39   end
40   
41   def self.meddle(options = {})
42     m = Meddle.new(options)
43     yield m
44     m.monitor
45     m.timer.join
46   end  
47 end