Froze rails gems
[depot.git] / vendor / rails / railties / lib / rails_generator / simple_logger.rb
1 module Rails
2 module Generator
3 class SimpleLogger # :nodoc:
4 attr_reader :out
5 attr_accessor :quiet
6
7 def initialize(out = $stdout)
8 @out = out
9 @quiet = false
10 @level = 0
11 end
12
13 def log(status, message, &block)
14 @out.print("%12s %s%s\n" % [status, ' ' * @level, message]) unless quiet
15 indent(&block) if block_given?
16 end
17
18 def indent(&block)
19 @level += 1
20 if block_given?
21 begin
22 block.call
23 ensure
24 outdent
25 end
26 end
27 end
28
29 def outdent
30 @level -= 1
31 if block_given?
32 begin
33 block.call
34 ensure
35 indent
36 end
37 end
38 end
39
40 private
41 def method_missing(method, *args, &block)
42 log(method.to_s, args.first, &block)
43 end
44 end
45 end
46 end