Sha256: 85d194d00e5554147e584ac72b8eb6b371744453f75e0318413186841d5167e2

Contents?: true

Size: 1.81 KB

Versions: 6

Compression:

Stored size: 1.81 KB

Contents

require 'rubygems'
require 'yaml'
require 'erb'
require 'pathname'
require 'logger'

module Daemonizer
  
  def self.root=(value)
    @@root = value
  end

  def self.root
    if defined?(@@root)
      @@root
    else
      File.dirname(daemonfile)
    end
  end
  
  def self.daemonfile=(daemonfile_name)
    @@daemonfile = File.expand_path(daemonfile_name)
    @@daemonfile
  end
  
  def self.daemonfile
    if defined?(@@daemonfile)
      @@daemonfile
    else
      "Demfile"
    end
  end
  
  def self.logger_context=(str)
    @@logger_context = str
  end
  
  def self.logger_context
    @@logger_context
  end
  
  def self.init_logger(name, log_file)
    @@logger_file = File.open(log_file, File::WRONLY | File::APPEND)
    @@logger_file.sync = true
    @@logger = Logger.new(@@logger_file)
    set_logger_common_options
  end
  
  def self.set_logger_common_options
    @@logger.sev_threshold = Logger::INFO
    @@logger.formatter = Proc.new do |severity, datetime, progname, msg|
      "%s %s -- %s -- %s\n" % [ datetime.strftime("%Y-%m-%d %H:%M:%S"), severity, Daemonizer.logger_context, msg ]
    end
  end
  
  def self.reopen_log_file
    true #do not need it in append-only mode
  end
  
  def self.flush_logger
    @@logger_file.flush
  end
  
  def self.init_console_logger(name)
    @@logger_file = STDOUT
    @@logger = Logger.new(@@logger_file)
    set_logger_common_options
  end
  
  def self.logger
    @@logger
  end

  def self.[](pool)
    find_pools(pool).first or nil
  end
  
  def self.find_pools(pool_name = nil)    
    pools = Dsl.evaluate(daemonfile)

    if pool_name
      if pool = pools[pool_name.to_sym]
        [pool]
      else
        puts "#{pool_name} is not configured"
        []
      end
    else
      pools.values
    end
  end
  
end

require File.dirname(__FILE__) + '/../lib/daemonizer/autoload'

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
daemonizer-0.4.11 lib/daemonizer.rb
daemonizer-0.4.10 lib/daemonizer.rb
daemonizer-0.4.9 lib/daemonizer.rb
daemonizer-0.4.8 lib/daemonizer.rb
daemonizer-0.4.7 lib/daemonizer.rb
daemonizer-0.4.6 lib/daemonizer.rb