Sha256: dcbb127148ed7e1636dfa531e422ceeeb344d251b089319f5405dc4e9427e8d5

Contents?: true

Size: 893 Bytes

Versions: 222

Compression:

Stored size: 893 Bytes

Contents

module Rails
  module Generator
    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
end

Version data entries

222 entries across 221 versions & 25 rubygems

Version Path
tap-0.9.0 vendor/rails_generator/simple_logger.rb
tap-0.9.1 vendor/rails_generator/simple_logger.rb