logification 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2481cd03cc8ad1ed7e938be6ffc7a2afdc0f0ded
4
- data.tar.gz: 5f4fd772e9eaf73c9b29780b7f3fd179da9928ae
3
+ metadata.gz: 9eaf81012ec4bac898fa9957e685d80c3a37658f
4
+ data.tar.gz: f0d6ac4419f5e9d3cf147265d90daddf61852efc
5
5
  SHA512:
6
- metadata.gz: 3429471d1a9711d8a35cee58e373ec9d1c1843281cb80a5da1f97e2dd30e14f7ee0f8a9d54ff43b5d6381f508e6c0a1d73135b2866196ccffce9a172966f190f
7
- data.tar.gz: 6b185f9bea0655740f5ca5bbc8cc7dc8c3586673dcd0db3e5afa21b47079bb15849e17ce6d78a0371de218a4638ca2e939cb09f511942842686b8c572d53b3b0
6
+ metadata.gz: 337c009571bfbf13301e954dfda57e52a0184888fa0ff103cae8d30e6faba40818a78681f75a2ef719e694a3e479e1f7a396395f0d8724b5c67791f99094c23d
7
+ data.tar.gz: 9277194d9342db421da99c96f6cd8038511244538a051cdc86fcbc38c19b249dbb8f7bbf448ebc4cd1f97f9d573408a838ec44b5aa15903dc5288da4f7c650ed
data/README.md CHANGED
@@ -7,7 +7,6 @@ Logification is an abstracted logging gem library. Its purpose is to simplyify a
7
7
 
8
8
  Logification's purpose is to enhance existing libraries by providing features on top of their general output. It currently makes an assumption that the base logging library supports the following levels debug, info, warn, error, fatal.
9
9
 
10
- Logification has been integrated with the already very powerful Log4r. But future goals are to make it even less dependent on any specific logging library.
11
10
 
12
11
  ## Installation
13
12
 
@@ -23,7 +22,7 @@ Or install it yourself as:
23
22
 
24
23
  $ gem install logification
25
24
 
26
- ## Sample Usage
25
+ ## Usage
27
26
 
28
27
  ```ruby
29
28
  require "logification"
@@ -93,7 +92,6 @@ end
93
92
 
94
93
  - Update README
95
94
  - Add error handling, logging should be conspicuous.
96
- - Remove dependency on log4r
97
95
  - Think up more TODO items
98
96
  - Make log level colors configurable
99
97
  - Improve testing by writing more micro functional tests
@@ -0,0 +1,18 @@
1
+ require 'colorize'
2
+
3
+ module Logification
4
+ module Formatters
5
+ class Colorized
6
+ def call(severity, datetime, progname, msg)
7
+ formatted_msg = "#{datetime.strftime('%FT%T%:z')} #{severity.ljust(5)} - #{progname} - #{msg}"
8
+ case severity
9
+ when "DEBUG" then formatted_msg.green
10
+ when "INFO" then formatted_msg.cyan
11
+ when "WARN" then formatted_msg.yellow
12
+ when "ERROR" then formatted_msg.red
13
+ when "FATAL" then formatted_msg.magenta
14
+ end + "\n"
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1 @@
1
+ require "logification/formatters/colorized"
@@ -33,9 +33,14 @@ module Logification
33
33
 
34
34
  private
35
35
 
36
+ def is_disabled?
37
+ self.level == :disabled
38
+ end
39
+
36
40
  def log_message(type, msg, color)
37
41
  msg = messagify(msg)
38
- base_logger.send(type, msg.to_s.send(color))
42
+ return msg if is_disabled?
43
+ self.base_logger.send(type, msg.to_s.send(color))
39
44
  msg
40
45
  end
41
46
 
@@ -1,2 +1,2 @@
1
- require_relative "helpers/logging_methods"
2
- require_relative "helpers/wrapper"
1
+ require "logification/helpers/logging_methods"
2
+ require "logification/helpers/wrapper"
@@ -1,8 +1,4 @@
1
- require "colorize"
2
- require "log4r"
3
-
4
- # http://stackoverflow.com/questions/5799823/ruby-uninitialized-constant-log4rdebug-nameerror-problem/5800326#5800326
5
- Log4r.define_levels(*Log4r::Log4rConfig::LogLevels)
1
+ require "logger"
6
2
 
7
3
  module Logification
8
4
 
@@ -21,11 +17,10 @@ module Logification
21
17
  end
22
18
 
23
19
  def default_logger(name)
24
- Log4r::Logger.new(name).tap do |l|
25
- l.outputters = Log4r::Outputter.stdout.tap do |o|
26
- o.formatter = Log4r::PatternFormatter.new(pattern: "%d %.04l [%C] - %M")
27
- end
28
- l.level = translate_level(:debug)
20
+ ::Logger.new(STDOUT).tap do |l|
21
+ l.level = translate_level_in(:debug)
22
+ l.formatter = Logification::Formatters::Colorized.new
23
+ l.progname = self.name
29
24
  end
30
25
  end
31
26
 
@@ -34,12 +29,11 @@ module Logification
34
29
  end
35
30
 
36
31
  def level
37
- LOG4R_LEVEL_TRANSLATION.key(base_logger.level)
32
+ translate_level_out(base_logger.level)
38
33
  end
39
34
 
40
35
  def level=(value)
41
- base_logger.level = translate_level(value)
42
- @level = value
36
+ base_logger.level = translate_level_in(value)
43
37
  end
44
38
 
45
39
  def duplicate(name, options={})
@@ -47,6 +41,26 @@ module Logification
47
41
  self.class.new(settings.merge(name: name))
48
42
  end
49
43
 
44
+ def method_missing(meth, *args, &block)
45
+ begin
46
+ if block_given?
47
+ if args.empty?
48
+ base_logger.send(meth) { block }
49
+ else
50
+ base_logger.send(meth, *args, &block)
51
+ end
52
+ else
53
+ if args.empty?
54
+ base_logger.send(meth)
55
+ else
56
+ base_logger.send(meth, *args)
57
+ end
58
+ end
59
+ rescue NoMethodError => ex
60
+ super
61
+ end
62
+ end
63
+
50
64
  private
51
65
 
52
66
  def current_settings
@@ -57,7 +71,17 @@ module Logification
57
71
  }
58
72
  end
59
73
 
74
+ LOGGER_LEVEL_TRANSLATION = {
75
+ :disabled => -1,
76
+ :debug => 0,
77
+ :info => 1,
78
+ :warn => 2,
79
+ :error => 3,
80
+ :fatal => 4
81
+ }
82
+
60
83
  LOG4R_LEVEL_TRANSLATION = {
84
+ :disabled => -1,
61
85
  :debug => 1,
62
86
  :info => 2,
63
87
  :warn => 3,
@@ -65,8 +89,20 @@ module Logification
65
89
  :fatal => 5
66
90
  }
67
91
 
68
- def translate_level(lvl)
69
- LOG4R_LEVEL_TRANSLATION[lvl.to_s.to_sym]
92
+ def translate_level_in(lvl)
93
+ if self.class.to_s =~ /Log4r/
94
+ LOG4R_LEVEL_TRANSLATION[lvl.to_s.to_sym]
95
+ else
96
+ LOGGER_LEVEL_TRANSLATION[lvl.to_s.to_sym]
97
+ end
98
+ end
99
+
100
+ def translate_level_out(lvl)
101
+ if self.base_logger.class.to_s =~ /Log4r/
102
+ LOG4R_LEVEL_TRANSLATION.key(lvl)
103
+ else
104
+ LOGGER_LEVEL_TRANSLATION.key(lvl)
105
+ end
70
106
  end
71
107
 
72
108
  end
@@ -1,3 +1,3 @@
1
1
  module Logification
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/logification.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "logification/version"
2
2
  require "logification/helpers"
3
3
  require "logification/logger"
4
+ require "logification/formatters"
4
5
 
5
6
  module Logification
6
7
 
data/logification.gemspec CHANGED
@@ -25,6 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "simplecov", "~> 0.7"
26
26
  spec.add_development_dependency "codeclimate-test-reporter", "~> 0.4"
27
27
 
28
- spec.add_dependency "log4r", "~> 1.1"
29
28
  spec.add_dependency "colorize", "~> 0.7"
30
29
  end
@@ -49,7 +49,7 @@ describe Logification::Helpers::LoggingMethods do
49
49
 
50
50
  subject {
51
51
  Logification::Logger.new(name: "test").tap do |l|
52
- l.base_logger.outputters = []
52
+ l.level = :disabled
53
53
  end
54
54
  }
55
55
 
@@ -2,17 +2,17 @@ describe Logification::Helpers::Wrapper do
2
2
 
3
3
  let(:klass) {
4
4
  class LoggingKlass
5
- attr_accessor :base_logger, :nested_count
5
+ attr_accessor :base_logger, :nested_count, :level
6
6
  include Logification::Helpers::Wrapper
7
7
  def initialize
8
- @base_logger = Log4r::Logger.new(self.class.to_s)
8
+ @base_logger = ::Logger.new(STDERR)
9
9
  @nested_count = 0
10
10
  end
11
11
  end
12
12
  LoggingKlass
13
13
  }
14
14
 
15
- subject(:instance) { klass.new }
15
+ subject(:instance) { klass.new.tap do |l| l.level = :disabled end }
16
16
 
17
17
  it "#wrap" do
18
18
  expect(instance.public_methods.include?(:wrap)).to eql(true)
@@ -2,7 +2,7 @@ describe Logification::Logger do
2
2
 
3
3
  subject {
4
4
  Logification::Logger.new(name: "test").tap do |l|
5
- l.base_logger.outputters = []
5
+ l.level = :disabled
6
6
  end
7
7
  }
8
8
 
@@ -28,6 +28,36 @@ describe Logification::Logger do
28
28
 
29
29
  end
30
30
 
31
+ describe "inspect level state" do
32
+
33
+ it "#debug?" do
34
+ subject.level = :debug
35
+ expect(subject.debug?).to eql(true)
36
+ end
37
+
38
+
39
+ it "#info?" do
40
+ subject.level = :info
41
+ expect(subject.info?).to eql(true)
42
+ end
43
+
44
+ it "#warn?" do
45
+ subject.level = :warn
46
+ expect(subject.warn?).to eql(true)
47
+ end
48
+
49
+ it "#error?" do
50
+ subject.level = :error
51
+ expect(subject.error?).to eql(true)
52
+ end
53
+
54
+ it "#fatal?" do
55
+ subject.level = :fatal
56
+ expect(subject.fatal?).to eql(true)
57
+ end
58
+
59
+ end
60
+
31
61
  describe "with message paramater" do
32
62
 
33
63
  let(:message) { "Test message" }
@@ -9,9 +9,10 @@ describe Logification do
9
9
  end
10
10
 
11
11
  it ".logger=" do
12
+ class LoggingKlass; end
12
13
  saved_logger = subject.logger
13
- subject.logger = Log4r::Logger.new("test")
14
- expect(subject.logger.class).to eql(Log4r::Logger)
14
+ subject.logger = LoggingKlass.new
15
+ expect(subject.logger.class).to eql(LoggingKlass)
15
16
  subject.logger = saved_logger
16
17
  end
17
18
 
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.4
4
+ version: 0.0.5
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-10 00:00:00.000000000 Z
11
+ date: 2014-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -94,20 +94,6 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0.4'
97
- - !ruby/object:Gem::Dependency
98
- name: log4r
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '1.1'
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '1.1'
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: colorize
113
99
  requirement: !ruby/object:Gem::Requirement
@@ -137,6 +123,8 @@ files:
137
123
  - README.md
138
124
  - Rakefile
139
125
  - lib/logification.rb
126
+ - lib/logification/formatters.rb
127
+ - lib/logification/formatters/colorized.rb
140
128
  - lib/logification/helpers.rb
141
129
  - lib/logification/helpers/logging_methods.rb
142
130
  - lib/logification/helpers/wrapper.rb