cogger 2.4.0 → 2.5.0

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: d3dd4c51c4410b817ca889b3c06abf51fcab7e6e91f5746caed31d1bf45f3eb7
4
- data.tar.gz: aa1f55995d710f2147071f4eaf9709e625c1fdd809d255860a3113ea6d742064
3
+ metadata.gz: 394c25bd5359cd226784df811d32eca048dbef8aac78e886009259c3ceb5ab7c
4
+ data.tar.gz: 6f803583d161c300ac94ab8ca9b2d8187d17b2e389c23a9883cf3fe827cd5bbc
5
5
  SHA512:
6
- metadata.gz: 61b318f30b68581323296d09159df52721d5a4e7554ada7d7d6ac09416016d26dee20b83630aa708ddc1b02e43966ab0e1e98b3fb08c2243a769a840a7853f04
7
- data.tar.gz: 4731b4c644c505603098c41b0f0ca5a3aa81b0d81c175dfe37c914cdbb5b06fb57619f4f1f154007dfafb331263262646ae50338db9eff930084b78072697209
6
+ metadata.gz: cab259078b7c9e07de8091cbe94a1f890a704dda85dedda0201293b9e2c3d50c357ceafb6d1d6723aae56e1923088fc1be7ae81ae5304f13d6723c6ffb5a8420
7
+ data.tar.gz: 1ecb68b40b4daa2e56ed50b43f1952cdcb5b4d99ffc7b3990809be0e86321baffb7cc30119afef60bcc373c9df086fc71e035a9bbeba598d0feb864d98c620ce
checksums.yaml.gz.sig CHANGED
Binary file
data/README.adoc CHANGED
@@ -239,18 +239,25 @@ Each instance can be mutated using the following messages:
239
239
  ----
240
240
  logger = Cogger.new io: StringIO.new
241
241
 
242
- logger.close # nil
243
- logger.reopen # Logger
244
- logger.debug! # 0
245
- logger.info! # 1
246
- logger.warn! # 2
247
- logger.error! # 3
248
- logger.fatal! # 4
249
- logger.formatter = Cogger::Formatters::Simple.new # Cogger::Formatters::Simple
250
- logger.level = Logger::WARN # 2
251
- ----
252
-
253
- Please see the {logger_link} documentation for more information.
242
+ logger.close # nil
243
+ logger.reopen # Logger
244
+ logger.debug! # 0
245
+ logger.info! # 1
246
+ logger.warn! # 2
247
+ logger.error! # 3
248
+ logger.fatal! # 4
249
+ logger.formatter = :simple # :simple
250
+ logger.level = Logger::WARN # 2
251
+ ----
252
+
253
+ When setting the formatter, you can use a string, symbol, or instance. For example, the following are identical:
254
+
255
+ [source,ruby]
256
+ ----
257
+ logger.formatter = "simple"
258
+ logger.formatter = :simple
259
+ logger.formatter = Cogger::Formatters::Simple.new
260
+ ----
254
261
 
255
262
  === Emojis
256
263
 
data/cogger.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "cogger"
5
- spec.version = "2.4.0"
5
+ spec.version = "2.5.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/cogger"
@@ -12,7 +12,7 @@ module Cogger
12
12
  @parser = parser
13
13
  end
14
14
 
15
- def call(*input)
15
+ def call *input
16
16
  *, entry = input
17
17
  attributes = sanitize entry, :tagged
18
18
 
@@ -17,7 +17,7 @@ module Cogger
17
17
  @parser = parser
18
18
  end
19
19
 
20
- def call(*input)
20
+ def call *input
21
21
  *, entry = input
22
22
  attributes = sanitize entry, :tagged
23
23
  attributes[:backtrace] = %( #{attributes[:backtrace].join "\n "})
@@ -15,7 +15,7 @@ module Cogger
15
15
  @parser = parser
16
16
  end
17
17
 
18
- def call(*input)
18
+ def call *input
19
19
  *, entry = input
20
20
  attributes = sanitize entry, :tagged_attributes
21
21
  attributes.delete :message unless attributes[:message]
@@ -14,7 +14,7 @@ module Cogger
14
14
  @parser = parser
15
15
  end
16
16
 
17
- def call(*input)
17
+ def call *input
18
18
  *, entry = input
19
19
  attributes = sanitize entry, :tagged_attributes
20
20
  attributes.delete :message unless attributes[:message]
@@ -11,7 +11,7 @@ module Cogger
11
11
  @template = template
12
12
  end
13
13
 
14
- def call(*input)
14
+ def call *input
15
15
  *, entry = input
16
16
  attributes = sanitize entry, :tagged
17
17
 
data/lib/cogger/hub.rb CHANGED
@@ -6,7 +6,6 @@ require "refinements/hash"
6
6
 
7
7
  module Cogger
8
8
  # Loads configuration and simultaneously sends messages to multiple streams.
9
- # :reek:TooManyMethods
10
9
  class Hub
11
10
  extend Forwardable
12
11
 
@@ -27,23 +26,22 @@ module Cogger
27
26
  fatal!
28
27
  fatal?
29
28
  formatter
30
- formatter=
31
29
  level
32
30
  level=
33
31
  ] => :primary
34
32
 
35
33
  delegate %i[id io tags mode age size suffix] => :configuration
36
34
 
37
- def initialize(registry: Cogger, model: Configuration, **attributes)
35
+ def initialize registry: Cogger, model: Configuration, **attributes
38
36
  @registry = registry
39
- @configuration = model[**find_formatter(attributes)]
37
+ @configuration = model[**resolve_formatter(attributes)]
40
38
  @primary = configuration.to_logger
41
39
  @streams = [@primary]
42
40
  end
43
41
 
44
42
  def add_stream **attributes
45
43
  attributes[:id] = configuration.id
46
- streams.append configuration.with(**find_formatter(attributes)).to_logger
44
+ streams.append configuration.with(**resolve_formatter(attributes)).to_logger
47
45
  self
48
46
  end
49
47
 
@@ -59,16 +57,20 @@ module Cogger
59
57
 
60
58
  def any(message = nil, **, &) = log(__method__, message, **, &)
61
59
 
62
- def abort(message = nil, **payload, &block)
60
+ def abort message = nil, **payload, &block
63
61
  error(message, **payload, &block) if message || !payload.empty? || block
64
62
  exit false
65
63
  end
66
64
 
67
- def panic(message = nil, **payload, &block)
65
+ def panic message = nil, **payload, &block
68
66
  fatal(message, **payload, &block) if message || !payload.empty? || block
69
67
  exit false
70
68
  end
71
69
 
70
+ def formatter= value
71
+ primary.formatter = find_or_use_formatter value
72
+ end
73
+
72
74
  def add(level, message = nil, **, &)
73
75
  log(Logger::SEV_LABEL.fetch(level, "ANY").downcase, message, **, &)
74
76
  end
@@ -85,13 +87,19 @@ module Cogger
85
87
 
86
88
  attr_reader :registry, :configuration, :primary, :streams
87
89
 
88
- # :reek:FeatureEnvy
89
- def find_formatter attributes
90
- attributes.transform_value! :formatter do |value|
91
- next value unless value.is_a?(Symbol) || value.is_a?(String)
90
+ def resolve_formatter attributes
91
+ attributes.transform_value!(:formatter) { |value| find_or_use_formatter value }
92
+ end
92
93
 
93
- formatter, template = registry.get_formatter value
94
- template ? formatter.new(template) : formatter.new
94
+ def find_or_use_formatter value
95
+ case value
96
+ when String, Symbol
97
+ formatter, template = registry.get_formatter value
98
+ template ? formatter.new(template) : formatter.new
99
+ when Formatters::Abstract then value
100
+ else fail TypeError,
101
+ "Invalid formatter. Must be a string, symbol, or " \
102
+ "subclass of Cogger::Formatters::Abstract."
95
103
  end
96
104
  end
97
105
 
@@ -39,14 +39,14 @@ module Cogger
39
39
  "%<duration>s %<ip>s %<path>s %<length>s %<params>s"
40
40
  end
41
41
 
42
- def add_alias(key, *styles)
42
+ def add_alias key, *styles
43
43
  color.add_alias(key, *styles)
44
44
  self
45
45
  end
46
46
 
47
47
  def aliases = color.aliases
48
48
 
49
- def add_emojis(**attributes)
49
+ def add_emojis **attributes
50
50
  emojis.merge! attributes.symbolize_keys!
51
51
  self
52
52
  end
@@ -57,7 +57,7 @@ module Cogger
57
57
 
58
58
  def emojis = @emojis ||= {}
59
59
 
60
- def add_filters(*keys)
60
+ def add_filters *keys
61
61
  filters.merge(keys.map(&:to_sym))
62
62
  self
63
63
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cogger
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
metadata.gz.sig CHANGED
Binary file