swak 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/swak.rb +8 -0
  2. data/lib/swak/logger.rb +34 -0
  3. metadata +3 -2
data/lib/swak.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require File.join(File.dirname(__FILE__), 'swak', 'logger')
2
+
1
3
  class String
2
4
  AnsiMap = {"k" => 0,
3
5
  "r" => 1,
@@ -55,6 +57,12 @@ class NilClass
55
57
  undef_method(:to_i)
56
58
  end
57
59
 
60
+ class Float
61
+ def is_i?
62
+ return self == self.to_i
63
+ end
64
+ end
65
+
58
66
 
59
67
  #######################################################
60
68
  #######################################################
@@ -0,0 +1,34 @@
1
+ require 'logger'
2
+
3
+ module Swak
4
+ class Logger
5
+ attr_accessor :num_indents, :progname, :logger, :indent_str
6
+
7
+ def initialize(progname=nil, fout=STDERR)
8
+ @num_indents = 1
9
+ @indent_str = " "
10
+ @progname = progname
11
+ @logger = ::Logger.new(fout)
12
+
13
+ @logger.datetime_format = "%m-%d %H:%M:%S"
14
+ @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"
17
+ }
18
+ end
19
+
20
+ def indent(levels=1)
21
+ @num_indents += levels
22
+ @num_indents = [@num_indents, 1].max
23
+ end
24
+
25
+ def unindent(levels=1)
26
+ @num_indents -= levels
27
+ @num_indents = [@num_indents, 1].max
28
+ end
29
+
30
+ def puts(msg)
31
+ @logger.info(@progname) {msg}
32
+ end
33
+ end
34
+ 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.6
5
+ version: 0.0.7
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-01-19 00:00:00 Z
13
+ date: 2012-04-27 00:00:00 Z
14
14
  dependencies: []
15
15
 
16
16
  description: Random tools and mixins
@@ -23,6 +23,7 @@ extra_rdoc_files: []
23
23
 
24
24
  files:
25
25
  - lib/swak.rb
26
+ - lib/swak/logger.rb
26
27
  homepage: http://rubygems.org/gems/swak
27
28
  licenses: []
28
29