Module: TaskTempest::Settings

Included in:
Engine
Defined in:
lib/task_tempest/settings.rb

Defined Under Namespace

Modules: ClassMethods, InstanceMethods

Constant Summary collapse

DEFAULTS =
{
  # Basic settings
  :threads => 10,
  :log_level => Logger::INFO,
  :queue => nil,
  :bookkeeping_interval => 10*60, # 10 minutes
  :log_name => nil,
  
  # Delay settings
  :no_message_sleep => 1,
  :pulse_delay => 0.25,
  
  # Timeout settings
  :timeout_method => Timeout.method(:timeout),
  :task_timeout => nil,
  :shutdown_timeout => 5, # 5 seconds
  
  # Directory settings
  :root_dir => File.expand_path(Dir.pwd),
  :log_dir => File.expand_path(Dir.pwd),
  :task_dir => File.expand_path(Dir.pwd),
  
  # Callback settings
  :before_initialize => Proc.new{ |logger| },
  :after_initialize => Proc.new{ |logger| },
  :on_internal_exception => Proc.new{ |e, logger| },
  :on_task_exception => Proc.new{ |e, logger| },
  :on_require => Proc.new{ |files, logger| },
  :on_bookkeeping => Proc.new{ |book, logger| },
  :on_task_timeout => Proc.new{ |task, logger| }
}

Class Method Summary collapse

Class Method Details

.included(mod) ⇒ Object



39
40
41
42
43
44
# File 'lib/task_tempest/settings.rb', line 39

def self.included(mod)
  mod.metaclass.class_eval{ attr_accessor :settings }
  mod.settings = Struct.new(*DEFAULTS.keys).new(*DEFAULTS.values)
  mod.send(:include, InstanceMethods)
  mod.send(:extend, ClassMethods)
end