legion-logging 1.1.2 → 1.1.3

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
  SHA256:
3
- metadata.gz: 9b1efb3d106b47fa7884d216f0e819c43b34ea467fff711b8bbe36e3f1be4f94
4
- data.tar.gz: 20dbffbebd7804d5ad1e7bd21fbc141fb486d99f1a06973acc1099d1e1e53b3c
3
+ metadata.gz: 2c23b52e80d98a8fe9dd57a6c035ae3a1dbf944c36df1dcb75e4a40579cc6877
4
+ data.tar.gz: f033aaa8333c5b732bf8d7fea044f3b1a763f93e1e6e6f505fd96bbe5c3fa9f3
5
5
  SHA512:
6
- metadata.gz: 5f9bef85e2f2d2dd84989c57f7b210f17cb54d62bc9e82dfd19ac0bc8ab001e15716efd8391c3318b9dffde62c22d4218b454aa5c7024dd97bebaffbd771bece
7
- data.tar.gz: bbb5b895500262914283b570dcd70ecfacb852bf35656e5bdffce7188e902204f3ee0312a19a24c57e38d630a1acda584959b69ad3de48fa9fc9c438236d44cc
6
+ metadata.gz: b41978935615219e45cdf4df3c3c519fd2a5bcce8a56b435f6b582e6d0ae7c54ec76ca31aa1da431f705909572c1afccfd59b91979e9d934559a5ac4180a8b2a
7
+ data.tar.gz: 2ab09da5cb65c19b11ea68501b96bf358ad2d3c1db6fe590460e5cdf242f63b6de0a9987a67c31e9bafbf0e6c9287f9255db273f180d12d8fb8cc7c6fb338db2
@@ -6,6 +6,8 @@ Metrics/ClassLength:
6
6
  Max: 1500
7
7
  Metrics/BlockLength:
8
8
  Max: 75
9
+ Metrics/CyclomaticComplexity:
10
+ Max: 10
9
11
  Layout/SpaceAroundEqualsInParameterDefault:
10
12
  EnforcedStyle: space
11
13
  Style/SymbolArray:
@@ -11,11 +11,7 @@ module Legion
11
11
  class << self
12
12
  include Legion::Logging::Methods
13
13
  include Legion::Logging::Builder
14
- attr_reader :log, :color
15
-
16
- def level
17
- @log.level
18
- end
14
+ attr_reader :color
19
15
 
20
16
  def setup(level: 'info', **options)
21
17
  output(options)
@@ -1,7 +1,7 @@
1
1
  module Legion
2
2
  module Logging
3
3
  module Builder
4
- def log_format(options = {}, log = @log) # rubocop:disable Metrics/AbcSize
4
+ def log_format(options = {}) # rubocop:disable Metrics/AbcSize
5
5
  log.formatter = proc do |severity, datetime, _progname, msg|
6
6
  options[:lex_name] = options.key?(:lex) ? "[lex-#{options[:lex]}]" : nil
7
7
  unless options[:lex_name].nil?
@@ -28,21 +28,41 @@ module Legion
28
28
  @log = ::Logger.new(options[:log_file]) unless options[:log_file].nil?
29
29
  end
30
30
 
31
- def log_level(level = 'info', log = @log)
32
- case level
33
- when 'trace'
34
- log.level = ::Logger::INFO
35
- when 'debug'
36
- log.level = ::Logger::DEBUG
37
- when 'info'
38
- log.level = ::Logger::INFO
39
- when 'warn'
40
- log.level = ::Logger::WARN
41
- when 'error'
42
- log.level = ::Logger::ERROR
43
- when 'fatal'
44
- log.level = ::Logger::FATAL
45
- end
31
+ def log
32
+ @log ||= set_log
33
+ end
34
+
35
+ def set_log(logfile: nil, **)
36
+ @log = logfile.nil? ? ::Logger.new($stdout) : ::Logger.new(logfile)
37
+ end
38
+
39
+ def level
40
+ log.level
41
+ end
42
+
43
+ def log_level(level = 'info')
44
+ log.level = case level
45
+ when 'trace'
46
+ ::Logger::DEBUG
47
+ when 'debug'
48
+ ::Logger::DEBUG
49
+ when 'info'
50
+ ::Logger::INFO
51
+ when 'warn'
52
+ ::Logger::WARN
53
+ when 'error'
54
+ ::Logger::ERROR
55
+ when 'fatal'
56
+ ::Logger::FATAL
57
+ when nil
58
+ 42
59
+ else
60
+ if level.is_a? Integer
61
+ level
62
+ else
63
+ 0
64
+ end
65
+ end
46
66
  @log = log
47
67
  end
48
68
  end
@@ -10,7 +10,7 @@ module Legion
10
10
  include Legion::Logging::Builder
11
11
 
12
12
  def initialize(level: 'info', log_file: nil, lex: nil, trace: false, extended: false, trace_size: 4, **opts) # rubocop:disable Metrics/ParameterLists
13
- output(logfile: log_file)
13
+ set_log(logfile: log_file)
14
14
  log_level(level)
15
15
  log_format(lex: lex, extended: extended, **opts)
16
16
  @color = opts[:color]
@@ -1,7 +1,7 @@
1
1
  module Legion
2
2
  module Logging
3
3
  module Methods
4
- def trace(raw_message = nil, log = @log, size: @trace_size, log_caller: true) # rubocop:disable Metrics/AbcSize
4
+ def trace(raw_message = nil, size: @trace_size, log_caller: true) # rubocop:disable Metrics/AbcSize
5
5
  return unless @trace_enabled
6
6
 
7
7
  raw_message = yield if raw_message.nil? && block_given?
@@ -15,7 +15,7 @@ module Legion
15
15
  log.unknown(message)
16
16
  end
17
17
 
18
- def debug(message = nil, log = @log)
18
+ def debug(message = nil)
19
19
  return unless log.level < 1
20
20
 
21
21
  message = yield if message.nil? && block_given?
@@ -23,7 +23,7 @@ module Legion
23
23
  log.debug(message)
24
24
  end
25
25
 
26
- def info(message = nil, log = @log)
26
+ def info(message = nil)
27
27
  return unless log.level < 2
28
28
 
29
29
  message = yield if message.nil? && block_given?
@@ -31,7 +31,7 @@ module Legion
31
31
  log.info(message)
32
32
  end
33
33
 
34
- def warn(message = nil, log = @log)
34
+ def warn(message = nil)
35
35
  return unless log.level < 3
36
36
 
37
37
  message = yield if message.nil? && block_given?
@@ -39,7 +39,7 @@ module Legion
39
39
  log.warn(message)
40
40
  end
41
41
 
42
- def error(message = nil, log = @log)
42
+ def error(message = nil)
43
43
  return unless log.level < 4
44
44
 
45
45
  message = yield if message.nil? && block_given?
@@ -47,7 +47,7 @@ module Legion
47
47
  log.error(message)
48
48
  end
49
49
 
50
- def fatal(message = nil, log = @log)
50
+ def fatal(message = nil)
51
51
  return unless log.level < 5
52
52
 
53
53
  message = yield if message.nil? && block_given?
@@ -55,7 +55,7 @@ module Legion
55
55
  log.fatal(message)
56
56
  end
57
57
 
58
- def unknown(message = nil, log = @log)
58
+ def unknown(message = nil)
59
59
  message = yield if message.nil? && block_given?
60
60
  message = Rainbow(message).purple if @color
61
61
  log.unknown(message)
@@ -1,5 +1,5 @@
1
1
  module Legion
2
2
  module Logging
3
- VERSION = '1.1.2'.freeze
3
+ VERSION = '1.1.3'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legion-logging
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-15 00:00:00.000000000 Z
11
+ date: 2020-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler