hoodie 0.4.5 → 0.4.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: af766bd008752adc524f35b7825f9362c8ca9448
4
- data.tar.gz: 72eed86f5428d7c4c8bb46cd4d83125538355df1
3
+ metadata.gz: 62365f7e782e882ae3769a0f11495a15662baffd
4
+ data.tar.gz: 5c174acce11e7d7e22ebbe43533b52f2bc91a6c6
5
5
  SHA512:
6
- metadata.gz: 34784dd09c985771c1f85bc5145d66611a616c2510dc48a6d2242120ed1199017ab5a040a2df8ef36775e7c84064d3dce81a56c5d289142b8aeb2207c9ca3044
7
- data.tar.gz: 86eb36767fb80f2aba7ade48b8bf942012abf45ce368fbdd8cd418a07664f69d4074887d92abf7dde9d007292b2786145810f62610b528f51e7b71f4081113c0
6
+ metadata.gz: 89700fd2bed82cc9abfd889db31551694ac271b49eb3ae5554c1ab3def161948218cd6062ccde5cbd5202634a569458d96ebb51744a68a321f3b74af404c6393
7
+ data.tar.gz: b18ae1e33e1f0b9abaaa2cab448e76411a71c8804c2524d0f2aada6319addd65aa0bd749c6ebd17b3a5b4e906757ab426ecf1b28c78694e4d55878a62ba1b8b9
@@ -1,3 +1,22 @@
1
+ # encoding: UTF-8
2
+ #
3
+ # Author: Tom Santos <santos.tom@gmail.com>
4
+ # Author: Stefano Harding <riddopic@gmail.com>
5
+ #
6
+ # Copyright (C) 2012-2014 Tom Santos, Stefano Harding
7
+ #
8
+ # Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
1
20
 
2
21
  require 'logger'
3
22
  require 'time'
@@ -5,39 +24,70 @@ require 'time'
5
24
  module Hoodie
6
25
  module Logging
7
26
  class << self
8
- def log
27
+
28
+ # The Zero Log for Class
29
+ class NoLogger < Logger
30
+ def initialize(*args); end
31
+ def add(*args, &block); end
32
+ end
33
+
34
+ def no_logger
35
+ @log ||= NoLogger.new
36
+ end
37
+
38
+ def log(log_prefix)
9
39
  @log ||= Logger.new($stdout).tap do |log|
10
- log.progname = 'Hoodie'
11
- log.level = Logger::INFO
40
+ log.progname = self.class == Class ? self.to_s : self.class.to_s
12
41
  log.formatter = Hoodie::Formatter.new
42
+ log.formatter.datetime_format = '%F %T'
43
+ log.level = Logger::DEBUG
13
44
  end
14
45
  end
15
46
 
16
47
  def log=(log)
17
48
  @log = log
18
49
  end
50
+
51
+ def log_prefix
52
+ self.class == Class ? self.to_s : self.class.to_s
53
+ end
54
+
55
+ def level
56
+ "Logger::#{@level.to_s.upcase}"
57
+ end
19
58
  end
20
59
 
21
60
  def self.included(base)
22
61
  class << base
23
62
  def log
24
- Hoodie::Logging.log
63
+ log_prefix = self.class == Class ? self.to_s : self.class.to_s
64
+ Hoodie::Logging.log log_prefix
25
65
  end
26
66
  end
27
67
  end
28
68
 
29
69
  def log
30
- Hoodie::Logging.log
70
+ log_prefix = self.class == Class ? self.to_s : self.class.to_s
71
+ Hoodie::Logging.log log_prefix
31
72
  end
32
73
  end
33
74
 
34
- class Formatter < ::Logger::Formatter
75
+ class Formatter < Logger::Formatter
76
+ attr_accessor :datetime_format
77
+
35
78
  def initialize
79
+ @datetime_format = nil
36
80
  super
37
81
  end
38
82
 
39
83
  def call(severity, time, progname, msg)
40
- format % [time, progname, $$, severity, msg2str(msg).strip]
84
+ format % [
85
+ format_datetime(time).BLUE,
86
+ progname.CYAN,
87
+ $$,
88
+ severity.GREEN,
89
+ msg2str(msg).strip.ORANGE
90
+ ]
41
91
  end
42
92
 
43
93
  private # P R O P R I E T À P R I V A T A Vietato L'accesso
@@ -45,5 +95,62 @@ module Hoodie
45
95
  def format
46
96
  "%s [%s#%d] %5s: %s\n"
47
97
  end
98
+
99
+ def format_datetime(time)
100
+ if @datetime_format.nil?
101
+ time.strftime("%Y-%m-%dT%H:%M:%S.") << "%06d " % time.usec
102
+ else
103
+ time.strftime(@datetime_format)
104
+ end
105
+ end
48
106
  end
49
107
  end
108
+
109
+ class String
110
+ def clear; colorize(self, "\e[0m"); end
111
+ # Erase the current line of terminal output.
112
+ def erase_line; colorize(self, "\e[K"); end
113
+ # Erase the character under the cursor.
114
+ def erase_char; colorize(self, "\e[P"); end
115
+ # The start of an ANSI bold sequence.
116
+ def bold; colorize(self, "\e[1m"); end
117
+ # The start of an ANSI dark sequence.
118
+ def dark; colorize(self, "\e[2m"); end
119
+ # The start of an ANSI underline sequence.
120
+ def underline; colorize(self, "\e[4m"); end
121
+ # The start of an ANSI blink sequence.
122
+ def blink; colorize(self, "\e[5m"); end
123
+ # The start of an ANSI reverse sequence.
124
+ def reverse; colorize(self, "\e[7m"); end
125
+ # The start of an ANSI concealed sequence.
126
+ def concealed; colorize(self, "\e[8m"); end
127
+
128
+ # Set the terminal's foreground ANSI color to
129
+ def BLACK; colorize(self, "\e[0;30m"); end
130
+ def GRAY; colorize(self, "\e[1;30m"); end
131
+ def RED; colorize(self, "\e[0;31m"); end
132
+ def MAGENTA; colorize(self, "\e[1;31m"); end
133
+ def GREEN; colorize(self, "\e[0;32m"); end
134
+ def OLIVE; colorize(self, "\e[1;32m"); end
135
+ def YELLOW; colorize(self, "\e[0;33m"); end
136
+ def CREAM; colorize(self, "\e[1;33m"); end
137
+ def BLUE; colorize(self, "\e[0;34m"); end
138
+ def PURPLE; colorize(self, "\e[1;34m"); end
139
+ def ORANGE; colorize(self, "\e[0;35m"); end
140
+ def MUSTARD; colorize(self, "\e[1;35m"); end
141
+ def CYAN; colorize(self, "\e[0;36m"); end
142
+ def CYAN2; colorize(self, "\e[1;36m"); end
143
+ def WHITE; colorize(self, "\e[0;97m"); end
144
+
145
+ # Set the terminal's background ANSI color to
146
+ def on_black; colorize(self, "\e[40m"); end
147
+ def on_red; colorize(self, "\e[41m"); end
148
+ def on_green; colorize(self, "\e[42m"); end
149
+ def on_yellow; colorize(self, "\e[43m"); end
150
+ def on_blue; colorize(self, "\e[44m"); end
151
+ def on_magenta; colorize(self, "\e[45m"); end
152
+ def on_cyan; colorize(self, "\e[46m"); end
153
+ def on_white; colorize(self, "\e[47m"); end
154
+
155
+ def colorize(text, color_code) "#{color_code}#{text}\e[0m" end
156
+ end
@@ -18,5 +18,5 @@
18
18
  #
19
19
 
20
20
  module Hoodie
21
- VERSION = '0.4.5'
21
+ VERSION = '0.4.6'
22
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hoodie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefano Harding
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-25 00:00:00.000000000 Z
11
+ date: 2014-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hitimes