Sha256: 089205e7eac260addd0efd895e2784019d8f3ee1221f029fbfc76bd0850452d4

Contents?: true

Size: 796 Bytes

Versions: 31

Compression:

Stored size: 796 Bytes

Contents

module RubiGen
  class SimpleLogger # :nodoc:
    attr_reader :out
    attr_accessor :quiet

    def initialize(out = $stdout)
      @out = out
      @quiet = false
      @level = 0
    end

    def log(status, message, &block)
      @out.print("%12s  %s%s\n" % [status, '  ' * @level, message]) unless quiet
      indent(&block) if block_given?
    end

    def indent(&block)
      @level += 1
      if block_given?
        begin
          block.call
        ensure
          outdent
        end
      end
    end

    def outdent
      @level -= 1
      if block_given?
        begin
          block.call
        ensure
          indent
        end
      end
    end

    private
      def method_missing(method, *args, &block)
        log(method.to_s, args.first, &block)
      end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
rubigen-1.5.8 lib/rubigen/simple_logger.rb
rubigen-1.5.7 lib/rubigen/simple_logger.rb
rubigen-1.5.6 lib/rubigen/simple_logger.rb
rubigen-1.5.5 lib/rubigen/simple_logger.rb
rubigen-1.5.4 lib/rubigen/simple_logger.rb
rubigen-1.5.3 lib/rubigen/simple_logger.rb
rubigen-1.0.1 lib/rubigen/simple_logger.rb
rubigen-1.0.0 lib/rubigen/simple_logger.rb
rubigen-1.0.3 lib/rubigen/simple_logger.rb
rubigen-1.0.2 lib/rubigen/simple_logger.rb
rubigen-1.0.4 lib/rubigen/simple_logger.rb
rubigen-1.0.5 lib/rubigen/simple_logger.rb
rubigen-1.2.0 lib/rubigen/simple_logger.rb
rubigen-1.3.0 lib/rubigen/simple_logger.rb
rubigen-1.1.1 lib/rubigen/simple_logger.rb
rubigen-1.0.7 lib/rubigen/simple_logger.rb
rubigen-1.0.6 lib/rubigen/simple_logger.rb
rubigen-1.0.8 lib/rubigen/simple_logger.rb
rubigen-1.2.4 lib/rubigen/simple_logger.rb
rubigen-1.3.1 lib/rubigen/simple_logger.rb