Class: DaemonKit::Configuration

Inherits:
Object
  • Object
show all
Includes:
Configurable
Defined in:
lib/daemon_kit/initializer.rb

Overview

Holds our various configuration values

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Configurable

included

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
# File 'lib/daemon_kit/initializer.rb', line 274

def initialize
  parse_arguments!

  set_root_path!
  set_daemon_defaults!

  self.load_paths = default_load_paths
  self.log_level  ||= default_log_level
  self.log_path   ||= default_log_path

  self.force_kill_wait = false

  @signal_traps = {}
  @shutdown_hooks = []
end

Instance Attribute Details

#instanceObject

Process instance number, defaults to 1



245
246
247
# File 'lib/daemon_kit/initializer.rb', line 245

def instance
  @instance
end

#load_pathsObject

List of load paths



230
231
232
# File 'lib/daemon_kit/initializer.rb', line 230

def load_paths
  @load_paths
end

#log_levelObject

The log level to use, defaults to DEBUG



236
237
238
# File 'lib/daemon_kit/initializer.rb', line 236

def log_level
  @log_level
end

#log_stdoutObject

Duplicate log data to stdout



242
243
244
# File 'lib/daemon_kit/initializer.rb', line 242

def log_stdout
  @log_stdout
end

#loggerObject

Custom logger instance to use



233
234
235
# File 'lib/daemon_kit/initializer.rb', line 233

def logger
  @logger
end

#pid_file(instance = nil) ⇒ Object



328
329
330
# File 'lib/daemon_kit/initializer.rb', line 328

def pid_file( instance = nil )
  @pid_file ||= "#{File.dirname(self.log_path)}/#{self.daemon_name}.#{instance}.pid"
end

#root_pathObject (readonly)

Root to the daemon



227
228
229
# File 'lib/daemon_kit/initializer.rb', line 227

def root_path
  @root_path
end

#shutdown_hooksObject (readonly)

:nodoc: Shutdown hooks



272
273
274
# File 'lib/daemon_kit/initializer.rb', line 272

def shutdown_hooks
  @shutdown_hooks
end

#signal_trapsObject (readonly)

Collection of signal traps



269
270
271
# File 'lib/daemon_kit/initializer.rb', line 269

def signal_traps
  @signal_traps
end

Instance Method Details

#at_shutdown(proc = nil, &block) ⇒ Object

Add a block or proc to be called during shutdown



322
323
324
325
326
# File 'lib/daemon_kit/initializer.rb', line 322

def at_shutdown( proc = nil, &block )
  return if proc.nil? && !block_given?

  @shutdown_hooks << ( proc || block )
end

#daemon_initializerObject



300
301
302
# File 'lib/daemon_kit/initializer.rb', line 300

def daemon_initializer
  "#{root_path}/config/initializers/#{self.daemon_name}.rb"
end

#environmentObject



290
291
292
# File 'lib/daemon_kit/initializer.rb', line 290

def environment
  ::DAEMON_ENV
end

#environment_pathObject

The path to the current environment’s file (development.rb, etc.). By default the file is at config/environments/#{environment}.rb.



296
297
298
# File 'lib/daemon_kit/initializer.rb', line 296

def environment_path
  "#{root_path}/config/environments/#{environment}.rb"
end

#trap(signal, proc = nil, &block) ⇒ Object

Add a trap for the specified signal, can be code block or a proc



305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
# File 'lib/daemon_kit/initializer.rb', line 305

def trap( signal, proc = nil, &block )
  return if proc.nil? && !block_given?

  # One step towards running on windows, not enough though
  unless Signal.list.include?( signal )
    DaemonKit.logger.warn( "Trapping #{signal} signals not supported on this platform" )
    return
  end

  unless @signal_traps.has_key?( signal )
    set_trap( signal )
  end

  @signal_traps[signal].unshift( proc || block )
end