swak 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/swak/logger.rb +47 -8
  2. metadata +2 -2
data/lib/swak/logger.rb CHANGED
@@ -2,33 +2,72 @@ require 'logger'
2
2
 
3
3
  module Swak
4
4
  class Logger
5
- attr_accessor :num_indents, :progname, :logger, :indent_str
5
+ attr_accessor :num_indents, :progname, :logger, :indent_str, :do_datetime
6
6
 
7
7
  def initialize(progname=nil, fout=STDERR)
8
- @num_indents = 1
8
+ @num_indents = 0
9
+ @do_datetime = true
9
10
  @indent_str = " "
10
11
  @progname = progname
11
12
  @logger = ::Logger.new(fout)
12
13
 
13
14
  @logger.datetime_format = "%m-%d %H:%M:%S"
14
15
  @logger.formatter = proc { |severity, datetime, progname, msg|
15
- prog_str = progname ? "[#{progname}] " : ""
16
- "#{prog_str}#{datetime.strftime(@logger.datetime_format)}#{@indent_str * @num_indents}#{msg}\n"
16
+ prog_str = progname && progname.length > 0 ? "[#{progname}]" : ""
17
+ has_prog = prog_str.length > 0
18
+
19
+ date_str = @do_datetime ? datetime.strftime(@logger.datetime_format) : ""
20
+ date_str = "#{indent_str}#{date_str}" if date_str.length > 0 && has_prog
21
+ has_date = date_str.length > 0
22
+
23
+ has_prefix = has_prog || has_date
24
+
25
+ indent_str = @indent_str * (@num_indents + (has_prefix ? 1 : 0))
26
+
27
+ "#{prog_str}#{date_str}#{indent_str}#{msg}\n"
17
28
  }
18
29
  end
19
30
 
20
31
  def indent(levels=1)
21
32
  @num_indents += levels
22
- @num_indents = [@num_indents, 1].max
33
+ @num_indents = [@num_indents, 0].max
34
+ nil
23
35
  end
24
36
 
25
37
  def unindent(levels=1)
26
38
  @num_indents -= levels
27
- @num_indents = [@num_indents, 1].max
39
+ @num_indents = [@num_indents, 0].max
40
+ nil
41
+ end
42
+
43
+ def puts(*messages)
44
+ messages = [""] if messages.nil? || messages.size == 0
45
+
46
+ for msg in messages
47
+ @logger.info(@progname) {msg}
48
+ end
49
+
50
+ nil
51
+ end
52
+
53
+ # Usage:
54
+ # section("== My Section ==") { some_code }
55
+ # or
56
+ # section("== My Section ==")
57
+ # endsect
58
+ def section(msg)
59
+ puts(msg)
60
+ indent
61
+ if block_given?
62
+ yield
63
+ unindent
64
+ end
65
+ nil
28
66
  end
29
67
 
30
- def puts(msg)
31
- @logger.info(@progname) {msg}
68
+ def endsect
69
+ unindent
70
+ nil
32
71
  end
33
72
  end
34
73
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: swak
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.7
5
+ version: 0.0.8
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jesse Rodriguez
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-04-27 00:00:00 Z
13
+ date: 2012-04-28 00:00:00 Z
14
14
  dependencies: []
15
15
 
16
16
  description: Random tools and mixins