Sha256: e913d50346489d462ce2b46baf2d6090677b585ba58ccaf21af8b7fdf7b35685

Contents?: true

Size: 726 Bytes

Versions: 1

Compression:

Stored size: 726 Bytes

Contents

require 'logger'
require 'singleton'

module Ara
   def self.logger
      return L.instance.logger
   end

   def self.logger=(l)
      L.instance.logger=l
   end

   def self.method_missing(method_sym, *arguments, &block)
      if self.logger.respond_to?(method_sym)
         self.logger.send(method_sym, *arguments)
      else
         raise NoMethodError, "undefined method `#{method_sym.to_s}' for Ara:Module"
      end
   end

   class L #:nodoc:
      include Singleton

      def initialize
         @mutex = Mutex.new
         @logger = Logger.new STDERR
      end

      def logger
         @mutex.synchronize { @logger }
      end

      def logger=(l)
         @mutex.synchronize { @logger=l }
      end
   end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ara-0.0.3 lib/ara/logger.rb