logification 0.0.3 → 0.0.4

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: 7b78a70684aff415b31da4088bf37a56020a7ff4
4
- data.tar.gz: 3e8d963b90d1e4893c6c6bedee305a8ef3d08d27
3
+ metadata.gz: 2481cd03cc8ad1ed7e938be6ffc7a2afdc0f0ded
4
+ data.tar.gz: 5f4fd772e9eaf73c9b29780b7f3fd179da9928ae
5
5
  SHA512:
6
- metadata.gz: 915f983fd6f3d53d159818904fdd6dc2a71f623385cd3150a4bec04c2a5cd27910acf83e0ca9b8010963f14e645069f2648772f509df555c57f86cde3010cba6
7
- data.tar.gz: 5107610bbb880daf11809e0724ffcd82b8bb0da2aaa61b8da2403c505b44ae042e9ed723b60c68aba6589e75efa86643eb2fde67e7d852cdf87ebc03fe5a9c56
6
+ metadata.gz: 3429471d1a9711d8a35cee58e373ec9d1c1843281cb80a5da1f97e2dd30e14f7ee0f8a9d54ff43b5d6381f508e6c0a1d73135b2866196ccffce9a172966f190f
7
+ data.tar.gz: 6b185f9bea0655740f5ca5bbc8cc7dc8c3586673dcd0db3e5afa21b47079bb15849e17ce6d78a0371de218a4638ca2e939cb09f511942842686b8c572d53b3b0
data/lib/logification.rb CHANGED
@@ -2,9 +2,6 @@ require "logification/version"
2
2
  require "logification/helpers"
3
3
  require "logification/logger"
4
4
 
5
- # http://stackoverflow.com/questions/5799823/ruby-uninitialized-constant-log4rdebug-nameerror-problem/5800326#5800326
6
- Log4r.define_levels(*Log4r::Log4rConfig::LogLevels)
7
-
8
5
  module Logification
9
6
 
10
7
  class << self
@@ -14,39 +11,17 @@ module Logification
14
11
  def logger
15
12
  @logger ||= begin
16
13
  Logification::Logger.new.tap do |l|
17
- l.base_logger.level = translate_level(:debug)
14
+ l.level = :debug
18
15
  end
19
16
  end
20
17
  end
21
18
 
22
19
  def level=(lvl)
23
- logger.base_logger.level = @level = translate_level(lvl)
20
+ logger.level = lvl
24
21
  end
25
22
 
26
23
  def level
27
- LOG4R_LEVEL_TRANSLATION_REVERSE[logger.base_logger.level]
28
- end
29
-
30
- private
31
-
32
- LOG4R_LEVEL_TRANSLATION = {
33
- :debug => Log4r::DEBUG,
34
- :info => Log4r::INFO,
35
- :warn => Log4r::WARN,
36
- :error => Log4r::ERROR,
37
- :fatal => Log4r::FATAL
38
- }
39
-
40
- LOG4R_LEVEL_TRANSLATION_REVERSE = {
41
- 1 => :debug,
42
- 2 => :info,
43
- 3 => :warn,
44
- 4 => :error,
45
- 5 => :fatal
46
- }
47
-
48
- def translate_level(lvl)
49
- LOG4R_LEVEL_TRANSLATION[lvl]
24
+ logger.level
50
25
  end
51
26
 
52
27
  end
@@ -31,10 +31,6 @@ module Logification
31
31
  log_message(:fatal, msg, :magenta)
32
32
  end
33
33
 
34
- def is_nested?
35
- not nested_count.nil? and nested_count > 0
36
- end
37
-
38
34
  private
39
35
 
40
36
  def log_message(type, msg, color)
@@ -44,15 +40,24 @@ module Logification
44
40
  end
45
41
 
46
42
  def messagify(msg)
43
+ if msg.is_a?(Exception)
44
+ exception = msg
45
+ error_message = "Caught #{exception.class}: #{exception.message}"
46
+ msg = [error_message, exception.backtrace].join("\n")
47
+ end
47
48
  tabify(msg)
48
49
  end
49
50
 
50
51
  def tabify(msg)
51
52
  return msg unless is_nested?
52
- tab = TAB * nested_count # tab = 4 spaces
53
+ tab = TAB * self.nested_count # tab = 4 spaces
53
54
  tab + msg
54
55
  end
55
56
 
57
+ def is_nested?
58
+ not self.nested_count.nil? and self.nested_count > 0
59
+ end
60
+
56
61
  end
57
62
 
58
63
  end
@@ -8,7 +8,7 @@ module Logification
8
8
  settings = base_options.merge!(options)
9
9
  settings.merge!(name: name)
10
10
  self.send(settings[:wrap_level], start_message(settings))
11
- nested_logger = self.dup
11
+ nested_logger = self.clone
12
12
  nested_logger.nested_count = self.nested_count+1 if settings[:nested_tabbing]
13
13
  block_response = yield(nested_logger) if block_given?
14
14
  self.send(settings[:wrap_level], end_message(settings))
@@ -1,19 +1,23 @@
1
1
  require "colorize"
2
2
  require "log4r"
3
3
 
4
+ # http://stackoverflow.com/questions/5799823/ruby-uninitialized-constant-log4rdebug-nameerror-problem/5800326#5800326
5
+ Log4r.define_levels(*Log4r::Log4rConfig::LogLevels)
6
+
4
7
  module Logification
5
8
 
6
9
  class Logger
7
10
 
8
- attr_accessor :base_logger
9
- attr_accessor :nested_count
11
+ attr_accessor :name, :base_logger, :nested_count
10
12
 
11
13
  include Helpers::LoggingMethods
12
14
  include Helpers::Wrapper
13
15
 
14
16
  def initialize(options={})
15
- name = options[:name] || "logification"
16
- @base_logger = options[:base_logger] || default_logger(name)
17
+ self.name = options[:name] || "logification"
18
+ self.base_logger = options[:base_logger] || default_logger(@name)
19
+ self.nested_count = options[:nested_count] || 0
20
+ self.level = options[:level] || :debug
17
21
  end
18
22
 
19
23
  def default_logger(name)
@@ -21,7 +25,7 @@ module Logification
21
25
  l.outputters = Log4r::Outputter.stdout.tap do |o|
22
26
  o.formatter = Log4r::PatternFormatter.new(pattern: "%d %.04l [%C] - %M")
23
27
  end
24
- l.level = Log4r::DEBUG
28
+ l.level = translate_level(:debug)
25
29
  end
26
30
  end
27
31
 
@@ -29,5 +33,41 @@ module Logification
29
33
  @nested_count ||= 0
30
34
  end
31
35
 
36
+ def level
37
+ LOG4R_LEVEL_TRANSLATION.key(base_logger.level)
38
+ end
39
+
40
+ def level=(value)
41
+ base_logger.level = translate_level(value)
42
+ @level = value
43
+ end
44
+
45
+ def duplicate(name, options={})
46
+ settings = current_settings.merge(options)
47
+ self.class.new(settings.merge(name: name))
48
+ end
49
+
50
+ private
51
+
52
+ def current_settings
53
+ {
54
+ name: self.name,
55
+ level: self.level,
56
+ nested_count: self.nested_count
57
+ }
58
+ end
59
+
60
+ LOG4R_LEVEL_TRANSLATION = {
61
+ :debug => 1,
62
+ :info => 2,
63
+ :warn => 3,
64
+ :error => 4,
65
+ :fatal => 5
66
+ }
67
+
68
+ def translate_level(lvl)
69
+ LOG4R_LEVEL_TRANSLATION[lvl.to_s.to_sym]
70
+ end
71
+
32
72
  end
33
73
  end
@@ -1,3 +1,3 @@
1
1
  module Logification
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -7,42 +7,56 @@ describe Logification::Helpers::LoggingMethods do
7
7
  LoggingKlass
8
8
  }
9
9
 
10
- subject(:instance) { klass.new }
10
+ subject(:subject) { klass.new }
11
11
 
12
12
  it "#debug" do
13
- expect(instance.public_methods.include?(:debug)).to eql(true)
13
+ expect(subject.public_methods.include?(:debug)).to eql(true)
14
14
  end
15
15
 
16
16
  it "#info" do
17
- expect(instance.public_methods.include?(:info)).to eql(true)
17
+ expect(subject.public_methods.include?(:info)).to eql(true)
18
18
  end
19
19
 
20
20
  it "#warn" do
21
- expect(instance.public_methods.include?(:warn)).to eql(true)
21
+ expect(subject.public_methods.include?(:warn)).to eql(true)
22
22
  end
23
23
 
24
24
  it "#error" do
25
- expect(instance.public_methods.include?(:error)).to eql(true)
25
+ expect(subject.public_methods.include?(:error)).to eql(true)
26
26
  end
27
27
 
28
28
  it "#fatal" do
29
- expect(instance.public_methods.include?(:fatal)).to eql(true)
29
+ expect(subject.public_methods.include?(:fatal)).to eql(true)
30
30
  end
31
31
 
32
32
  it "#is_nested?" do
33
- expect(instance.public_methods.include?(:is_nested?)).to eql(true)
33
+ expect(subject.private_methods.include?(:is_nested?)).to eql(true)
34
34
  end
35
35
 
36
36
  it "#log_message (private)" do
37
- expect(instance.private_methods.include?(:log_message)).to eql(true)
37
+ expect(subject.private_methods.include?(:log_message)).to eql(true)
38
38
  end
39
39
 
40
40
  it "#messagify (private)" do
41
- expect(instance.private_methods.include?(:messagify)).to eql(true)
41
+ expect(subject.private_methods.include?(:messagify)).to eql(true)
42
42
  end
43
43
 
44
44
  it "#tabify (private)" do
45
- expect(instance.private_methods.include?(:tabify)).to eql(true)
45
+ expect(subject.private_methods.include?(:tabify)).to eql(true)
46
+ end
47
+
48
+ describe "exception logging" do
49
+
50
+ subject {
51
+ Logification::Logger.new(name: "test").tap do |l|
52
+ l.base_logger.outputters = []
53
+ end
54
+ }
55
+
56
+ it "should log exceptions" do
57
+ expect{subject.error StandardError.new("expected")}.not_to raise_error
58
+ end
59
+
46
60
  end
47
61
 
48
62
  end
@@ -1,11 +1,33 @@
1
1
  describe Logification::Logger do
2
2
 
3
3
  subject {
4
- l = Logification::Logger.new(name: "test")
5
- l.base_logger.outputters = []
6
- l
4
+ Logification::Logger.new(name: "test").tap do |l|
5
+ l.base_logger.outputters = []
6
+ end
7
7
  }
8
8
 
9
+ describe "settings" do
10
+
11
+ it "#level" do
12
+ expect{subject.level}.not_to raise_error
13
+ end
14
+
15
+ it "#level=" do
16
+ subject.level = :debug
17
+ expect(subject.level).to eql(:debug)
18
+ end
19
+
20
+ it "#nested_count" do
21
+ expect(subject.nested_count).to eql(0)
22
+ end
23
+
24
+ it "#nested_count incremented" do
25
+ expect(subject.nested_count+=1).to eql(1)
26
+ subject.nested_count = 0
27
+ end
28
+
29
+ end
30
+
9
31
  describe "with message paramater" do
10
32
 
11
33
  let(:message) { "Test message" }
@@ -90,4 +112,16 @@ describe Logification::Logger do
90
112
 
91
113
  end
92
114
 
115
+ describe "helper methods" do
116
+
117
+ it "#duplicate value" do
118
+ expect(subject.duplicate("duplicated")).not_to be_nil
119
+ end
120
+
121
+ it "#duplicate class" do
122
+ expect(subject.duplicate("duplicated").class).to eql(Logification::Logger)
123
+ end
124
+
125
+ end
126
+
93
127
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logification
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nirmit Patel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-09 00:00:00.000000000 Z
11
+ date: 2014-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler