Sha256: e2d5d59464ae355050fadd93057b93bc676fe476362d351133b04140c323cf79

Contents?: true

Size: 1.91 KB

Versions: 126

Compression:

Stored size: 1.91 KB

Contents

# :include: rdoc/NDC
#
# == Other Info
# 
# Version:: $Id$
# Author:: Colby Gutierrez-Kraybill <colby(at)astro.berkeley.edu>

module Log4r
  NDCNAME = "log4rNDC"
  NDCNAMEMAXDEPTH = "log4rNDCMAXDEPTH"
  NDCDEFAULTMAXDEPTH = 256

  # See log4r/NDC.rb
  class NDC
    private_class_method :new

    def self.check_thread_instance()
      if ( Thread.current[NDCNAME] == nil ) then
	Thread.current[NDCNAME] = Array.new
	Thread.current[NDCNAMEMAXDEPTH] = NDCDEFAULTMAXDEPTH
      end
    end

    def self.clear()
      self.check_thread_instance()
      Thread.current[NDCNAME].clear
    end

    def self.clone_stack()
      self.check_thread_instance()
      return Thread.current[NDCNAME].clone
    end

    def self.get_depth()
      self.check_thread_instance()
      return Thread.current[NDCNAME].length
    end

    def self.inherit( a_stack )
      if ( a_stack.class == Array ) then
	if ( Thread.current[NDCNAME] != nil ) then
	  Thread.current[NDCNAME].clear
	  Thread.current[NDCNAME] = nil
	end
	Thread.current[NDCNAME] = a_stack
      else
	raise "Expecting Array in NDC.inherit"
      end
    end

    def self.get()
      self.check_thread_instance
      return Thread.current[NDCNAME] * " "
    end

    def self.peek()
      self.check_thread_instance()
      return Thread.current[NDCNAME].last
    end

    def self.pop()
      self.check_thread_instance()
      return Thread.current[NDCNAME].pop
    end

    def self.push( value )
      self.check_thread_instance()
      if ( Thread.current[NDCNAME].length < Thread.current[NDCNAMEMAXDEPTH] ) then
	Thread.current[NDCNAME].push( value )
      end
    end

    def self.remove()
      self.check_thread_instance()
      Thread.current[NDCNAME].clear
      Thread.current[NDCNAMEMAXDEPTH] = nil
      Thread.current[NDCNAME] = nil
    end

    def self.set_max_depth( max_depth )
      self.check_thread_instance()
      Thread.current[NDCNAMEMAXDEPTH] = max_depth
    end
  end
end

Version data entries

126 entries across 88 versions & 16 rubygems

Version Path
vagrant-unbundled-2.2.19.0 vendor/bundle/ruby/3.0.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.18.0 vendor/bundle/ruby/3.0.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.16.0 vendor/bundle/ruby/3.0.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.16.0 vendor/bundle/ruby/2.7.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.14.0 vendor/bundle/ruby/2.7.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.10.0 vendor/bundle/ruby/2.7.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.9.0 vendor/bundle/ruby/2.7.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.8.0 vendor/bundle/ruby/2.7.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.7.0 vendor/bundle/ruby/2.4.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.7.0 vendor/bundle/ruby/2.7.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.7.0 vendor/bundle/ruby/2.6.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.6.2 vendor/bundle/ruby/2.6.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.6.1 vendor/bundle/ruby/2.6.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.6.0 vendor/bundle/ruby/2.6.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.5.0 vendor/bundle/ruby/2.5.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.5.0 vendor/bundle/ruby/2.6.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.4.0 vendor/bundle/ruby/2.5.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.4.0 vendor/bundle/ruby/2.6.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.3.0 vendor/bundle/ruby/2.5.0/gems/log4r-1.1.10/lib/log4r/NDC.rb
vagrant-unbundled-2.2.2.0 vendor/bundle/ruby/2.5.0/gems/log4r-1.1.10/lib/log4r/NDC.rb