Sha256: ec830e85f431adef479746b7911191b0b7c254d11506a8154eaeaaf719297ca8

Contents?: true

Size: 742 Bytes

Versions: 23

Compression:

Stored size: 742 Bytes

Contents

require 'logger'

class PSD
  module Logger
    def self.included(base)
      base.extend(ClassMethods)
    end

    module ClassMethods
      attr_reader :debug
      attr_writer :logger

      def debug=(enabled)
        @debug = enabled
        @logger = nil
      end

      def logger
        return @logger if @logger

        if debug || ENV['PSD_DEBUG']
          @logger = ::Logger.new(STDOUT)
          @logger.formatter = proc do |severity, datetime, progname, msg|
            "#{severity}: #{msg}\n"
          end
        else
          @logger = DisabledLogger.new
        end

        return @logger
      end
    end
  end

  class DisabledLogger
    def method_missing(method, *args, &block)
      # silence
    end
  end
end

Version data entries

23 entries across 23 versions & 2 rubygems

Version Path
psd-3.9.0 lib/psd/logger.rb
psd-3.8.0 lib/psd/logger.rb
psd-3.7.0 lib/psd/logger.rb
psd-3.6.0 lib/psd/logger.rb
bench9000-0.1 vendor/psd.rb/lib/psd/logger.rb
psd-3.5.0 lib/psd/logger.rb
psd-3.4.0 lib/psd/logger.rb
psd-3.3.3 lib/psd/logger.rb
psd-3.3.2 lib/psd/logger.rb
psd-3.3.1 lib/psd/logger.rb
psd-3.2.4 lib/psd/logger.rb
psd-3.2.3 lib/psd/logger.rb
psd-3.2.2 lib/psd/logger.rb
psd-3.2.1 lib/psd/logger.rb
psd-3.2.0 lib/psd/logger.rb
psd-3.1.5 lib/psd/logger.rb
psd-3.1.4 lib/psd/logger.rb
psd-3.1.3 lib/psd/logger.rb
psd-3.1.2 lib/psd/logger.rb
psd-2.1.2 lib/psd/logger.rb