swak 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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