Class: DaemonKit::Initializer
- Inherits:
-
Object
- Object
- DaemonKit::Initializer
- Defined in:
- lib/daemon_kit/initializer.rb
Overview
This class does all the nightmare work of setting up a working environment for your daemon.
Instance Attribute Summary collapse
-
#configuration ⇒ Object
readonly
Returns the value of attribute configuration.
Class Method Summary collapse
- .continue! ⇒ Object
- .run(configuration = Configuration.new) {|configuration| ... } ⇒ Object
- .shutdown ⇒ Object
Instance Method Summary collapse
- #after_daemonize ⇒ Object
- #before_daemonize ⇒ Object
-
#initialize(configuration) ⇒ Initializer
constructor
A new instance of Initializer.
- #initialize_logger ⇒ Object
- #initialize_signal_traps ⇒ Object
- #load_environment ⇒ Object
- #load_gems ⇒ Object
- #load_patches ⇒ Object
- #set_load_path ⇒ Object
Constructor Details
#initialize(configuration) ⇒ Initializer
Returns a new instance of Initializer.
59 60 61 |
# File 'lib/daemon_kit/initializer.rb', line 59 def initialize( configuration ) @configuration = configuration end |
Instance Attribute Details
#configuration ⇒ Object (readonly)
Returns the value of attribute configuration.
40 41 42 |
# File 'lib/daemon_kit/initializer.rb', line 40 def configuration @configuration end |
Class Method Details
.continue! ⇒ Object
49 50 51 52 |
# File 'lib/daemon_kit/initializer.rb', line 49 def self.continue! initializer = new DaemonKit.configuration initializer.after_daemonize end |
.run(configuration = Configuration.new) {|configuration| ... } ⇒ Object
42 43 44 45 46 47 |
# File 'lib/daemon_kit/initializer.rb', line 42 def self.run( configuration = Configuration.new ) yield configuration if block_given? initializer = new configuration initializer.before_daemonize initializer end |
.shutdown ⇒ Object
54 55 56 57 |
# File 'lib/daemon_kit/initializer.rb', line 54 def self.shutdown DaemonKit.logger.warn "Shutting down" exit end |
Instance Method Details
#after_daemonize ⇒ Object
72 73 74 75 |
# File 'lib/daemon_kit/initializer.rb', line 72 def after_daemonize initialize_logger initialize_signal_traps end |
#before_daemonize ⇒ Object
63 64 65 66 67 68 69 70 |
# File 'lib/daemon_kit/initializer.rb', line 63 def before_daemonize DaemonKit.configuration = @configuration set_load_path load_gems load_patches load_environment end |
#initialize_logger ⇒ Object
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/daemon_kit/initializer.rb', line 104 def initialize_logger return if DaemonKit.logger unless logger = configuration.logger logger = Logger.new( configuration.log_path ) logger.level = configuration.log_level end DaemonKit.logger = logger configuration.trap("USR1") { DaemonKit.logger.level = DaemonKit.logger.debug? ? Logger::INFO : Logger::DEBUG DaemonKit.logger.info "Log level changed to #{DaemonKit.logger.debug? ? 'DEBUG' : 'INFO' }" } configuration.trap("USR2") { DaemonKit.logger.level = Logger::DEBUG DaemonKit.logger.info "Log level changed to DEBUG" } DaemonKit.logger.info "DaemonKit up and running in #{DAEMON_ENV} mode" end |
#initialize_signal_traps ⇒ Object
126 127 128 129 130 |
# File 'lib/daemon_kit/initializer.rb', line 126 def initialize_signal_traps term_proc = Proc.new { DaemonKit::Initializer.shutdown } configuration.trap( 'INT', term_proc ) configuration.trap( 'TERM', term_proc ) end |
#load_environment ⇒ Object
93 94 95 96 97 98 99 100 101 102 |
# File 'lib/daemon_kit/initializer.rb', line 93 def load_environment return if @environment_loaded @environment_loaded = true config = configuration eval(IO.read(configuration.environment_path), binding, configuration.environment_path) eval(IO.read(configuration.daemon_initializer), binding, configuration.daemon_initializer) if File.exist?( configuration.daemon_initializer ) end |
#load_gems ⇒ Object
83 84 85 |
# File 'lib/daemon_kit/initializer.rb', line 83 def load_gems end |
#load_patches ⇒ Object
87 88 89 90 91 |
# File 'lib/daemon_kit/initializer.rb', line 87 def load_patches if !!configuration.force_kill_wait require 'daemon_kit/patches/force_kill_wait' end end |
#set_load_path ⇒ Object
77 78 79 80 81 |
# File 'lib/daemon_kit/initializer.rb', line 77 def set_load_path configuration.load_paths.each do |d| $:.unshift( "#{DAEMON_ROOT}/#{d}" ) if File.directory?( "#{DAEMON_ROOT}/#{d}" ) end end |