cogger 0.14.0 → 0.16.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.adoc +25 -0
- data/cogger.gemspec +5 -5
- data/lib/cogger/formatters/parsers/individual.rb +4 -4
- data/lib/cogger/hub.rb +20 -14
- data/lib/cogger/level.rb +2 -2
- data/lib/cogger/tag.rb +2 -2
- data/lib/cogger/time/unit.rb +0 -2
- data.tar.gz.sig +0 -0
- metadata +10 -13
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6cc72e287de4da7142df1dc928db707a3f80f2d9f149319b6c56fef0ba18abe4
|
4
|
+
data.tar.gz: 7740a2b7996fe62802224f027bcd046ec2a678631f8c4c50a614d3544e00fa75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: deb27d680a13bea905d22973a05349ff4e96d79d8e9c705d5e6af5d9604ed392ce2a08587cb1a401b6e9714f257e45ba1ff1c64d432e61cd893ce143eb3ddc3f
|
7
|
+
data.tar.gz: c0d52748459efb13ac0a0ec7d9b1fb52acf1d4eb63bc8f35ffafe8c542e7eace0e64f852c324dfcf8f9b83a8eba8a228504ac9c7672426b9f0f5377e5023d14a
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.adoc
CHANGED
@@ -755,6 +755,31 @@ logger.info "Demo"
|
|
755
755
|
# Demo
|
756
756
|
----
|
757
757
|
|
758
|
+
=== Abort
|
759
|
+
|
760
|
+
Aborting a program is mostly syntax sugar for Command Line Interfaces (CLIs) which aids in situations where you need to log an error message _and_ exit the program at the same time with an exit code of `1` (similar to how `Kernel#abort` behaves). This allows your CLI to log an error and ensure the exit status is correct when displaying status, piping commands together, etc. All of the arguments, when messaging `#error` directly, are the same. Here's how it works:
|
761
|
+
|
762
|
+
[source,ruby]
|
763
|
+
----
|
764
|
+
logger = Cogger.new
|
765
|
+
|
766
|
+
# Not recommended since `Kernel#exit false` is faster.
|
767
|
+
logger.abort
|
768
|
+
# Logs no message and exits with status code: 1.
|
769
|
+
|
770
|
+
logger.abort "Danger!"
|
771
|
+
# 🛑 Danger!
|
772
|
+
# Exits with status code: 1.
|
773
|
+
|
774
|
+
logger.abort { "Danger!" }
|
775
|
+
# 🛑 Danger!
|
776
|
+
# Exits with status code: 1.
|
777
|
+
|
778
|
+
logger.abort message: "Danger!"
|
779
|
+
# 🛑 Danger!
|
780
|
+
# Exits with status code: 1.
|
781
|
+
----
|
782
|
+
|
758
783
|
=== Rack
|
759
784
|
|
760
785
|
{rack_link} is _implicitly_ supported which means your middleware _must be_ Rack-based and _must require_ the Rack gem since `Cogger::Rack::Logger` doesn't _explicitly_ require Rack by default. If these requirements are met then, to add HTTP request logging, you only need to use it. Example:
|
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 = "0.
|
5
|
+
spec.version = "0.16.0"
|
6
6
|
spec.authors = ["Brooke Kuhlmann"]
|
7
7
|
spec.email = ["brooke@alchemists.io"]
|
8
8
|
spec.homepage = "https://alchemists.io/projects/cogger"
|
@@ -22,10 +22,10 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.signing_key = Gem.default_key_path
|
23
23
|
spec.cert_chain = [Gem.default_cert_path]
|
24
24
|
|
25
|
-
spec.required_ruby_version =
|
26
|
-
spec.add_dependency "core", "~> 0
|
27
|
-
spec.add_dependency "refinements", "~>
|
28
|
-
spec.add_dependency "tone", "~> 0
|
25
|
+
spec.required_ruby_version = "~> 3.3"
|
26
|
+
spec.add_dependency "core", "~> 1.0"
|
27
|
+
spec.add_dependency "refinements", "~> 12.0"
|
28
|
+
spec.add_dependency "tone", "~> 1.0"
|
29
29
|
spec.add_dependency "zeitwerk", "~> 2.6"
|
30
30
|
|
31
31
|
spec.extra_rdoc_files = Dir["README*", "LICENSE*"]
|
@@ -46,13 +46,13 @@ module Cogger
|
|
46
46
|
# :reek:TooManyStatements
|
47
47
|
def sanitize_and_extract template, attributes
|
48
48
|
template.gsub pattern do
|
49
|
-
captures = Regexp.last_match.named_captures
|
50
|
-
attributes[captures[
|
49
|
+
captures = Regexp.last_match.named_captures symbolize_names: true
|
50
|
+
attributes[captures[:key].to_sym] = captures[:directive]
|
51
51
|
|
52
52
|
captures.reduce(+"%") do |body, (key, value)|
|
53
|
-
next body if key ==
|
53
|
+
next body if key == :directive
|
54
54
|
|
55
|
-
body.concat key ==
|
55
|
+
body.concat key == :key ? "<#{value}>" : value.to_s
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|
data/lib/cogger/hub.rb
CHANGED
@@ -2,17 +2,18 @@
|
|
2
2
|
|
3
3
|
require "forwardable"
|
4
4
|
require "logger"
|
5
|
-
require "refinements/
|
6
|
-
require "refinements/
|
5
|
+
require "refinements/hash"
|
6
|
+
require "refinements/logger"
|
7
7
|
|
8
8
|
module Cogger
|
9
9
|
# Loads configuration and simultaneously sends messages to multiple streams.
|
10
10
|
# :reek:TooManyInstanceVariables
|
11
|
+
# :reek:TooManyMethods
|
11
12
|
class Hub
|
12
13
|
extend Forwardable
|
13
14
|
|
14
|
-
using Refinements::
|
15
|
-
using Refinements::
|
15
|
+
using Refinements::Logger
|
16
|
+
using Refinements::Hash
|
16
17
|
|
17
18
|
delegate %i[
|
18
19
|
close
|
@@ -49,20 +50,25 @@ module Cogger
|
|
49
50
|
self
|
50
51
|
end
|
51
52
|
|
52
|
-
def debug(message = nil,
|
53
|
+
def debug(message = nil, **, &) = log(__method__, message, **, &)
|
53
54
|
|
54
|
-
def info(message = nil,
|
55
|
+
def info(message = nil, **, &) = log(__method__, message, **, &)
|
55
56
|
|
56
|
-
def warn(message = nil,
|
57
|
+
def warn(message = nil, **, &) = log(__method__, message, **, &)
|
57
58
|
|
58
|
-
def error(message = nil,
|
59
|
+
def error(message = nil, **, &) = log(__method__, message, **, &)
|
59
60
|
|
60
|
-
def fatal(message = nil,
|
61
|
+
def fatal(message = nil, **, &) = log(__method__, message, **, &)
|
61
62
|
|
62
|
-
def any(message = nil,
|
63
|
+
def any(message = nil, **, &) = log(__method__, message, **, &)
|
63
64
|
|
64
|
-
def
|
65
|
-
|
65
|
+
def abort(message = nil, **payload, &block)
|
66
|
+
error(message, **payload, &block) if message || !payload.empty? || block
|
67
|
+
exit false
|
68
|
+
end
|
69
|
+
|
70
|
+
def add(severity, message = nil, **, &)
|
71
|
+
log(Logger::SEV_LABEL.fetch(severity, "ANY").downcase, message, **, &)
|
66
72
|
end
|
67
73
|
|
68
74
|
alias unknown any
|
@@ -88,8 +94,8 @@ module Cogger
|
|
88
94
|
)
|
89
95
|
end
|
90
96
|
|
91
|
-
def log(severity, message = nil,
|
92
|
-
dispatch(severity, message,
|
97
|
+
def log(severity, message = nil, **, &)
|
98
|
+
dispatch(severity, message, **, &)
|
93
99
|
rescue StandardError => error
|
94
100
|
crash message, error
|
95
101
|
end
|
data/lib/cogger/level.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "logger"
|
4
|
-
require "refinements/
|
4
|
+
require "refinements/array"
|
5
5
|
|
6
6
|
# Loads log level from environment.
|
7
7
|
module Cogger
|
8
|
-
using Refinements::
|
8
|
+
using Refinements::Array
|
9
9
|
|
10
10
|
Level = lambda do |logger = Logger, environment: ENV, allowed: LEVELS|
|
11
11
|
value = String environment.fetch("LOG_LEVEL", "INFO")
|
data/lib/cogger/tag.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "core"
|
4
|
-
require "refinements/
|
4
|
+
require "refinements/hash"
|
5
5
|
|
6
6
|
module Cogger
|
7
7
|
# Models a tag which may consist of an array and/or hash.
|
8
8
|
Tag = Data.define :singles, :pairs do
|
9
|
-
using Refinements::
|
9
|
+
using Refinements::Hash
|
10
10
|
|
11
11
|
def self.for(*bag)
|
12
12
|
bag.each.with_object new do |item, tag|
|
data/lib/cogger/time/unit.rb
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
module Cogger
|
4
4
|
module Time
|
5
5
|
# Provides unit of measure for duration.
|
6
|
-
# rubocop:disable Style/MethodCallWithArgsParentheses
|
7
6
|
Unit = lambda do |duration, range: RANGE|
|
8
7
|
case duration
|
9
8
|
when range.fetch(:nanoseconds) then "ns"
|
@@ -13,6 +12,5 @@ module Cogger
|
|
13
12
|
else "m"
|
14
13
|
end
|
15
14
|
end
|
16
|
-
# rubocop:enable Style/MethodCallWithArgsParentheses
|
17
15
|
end
|
18
16
|
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: 0.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
|
36
36
|
gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
38
|
+
date: 2024-01-13 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: core
|
@@ -43,42 +43,42 @@ dependencies:
|
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '0
|
46
|
+
version: '1.0'
|
47
47
|
type: :runtime
|
48
48
|
prerelease: false
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '0
|
53
|
+
version: '1.0'
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: refinements
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
60
|
+
version: '12.0'
|
61
61
|
type: :runtime
|
62
62
|
prerelease: false
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
67
|
+
version: '12.0'
|
68
68
|
- !ruby/object:Gem::Dependency
|
69
69
|
name: tone
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '0
|
74
|
+
version: '1.0'
|
75
75
|
type: :runtime
|
76
76
|
prerelease: false
|
77
77
|
version_requirements: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: '0
|
81
|
+
version: '1.0'
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
83
|
name: zeitwerk
|
84
84
|
requirement: !ruby/object:Gem::Requirement
|
@@ -146,10 +146,7 @@ require_paths:
|
|
146
146
|
- lib
|
147
147
|
required_ruby_version: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
|
-
- - "
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version: '3.2'
|
152
|
-
- - "<="
|
149
|
+
- - "~>"
|
153
150
|
- !ruby/object:Gem::Version
|
154
151
|
version: '3.3'
|
155
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
@@ -158,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
155
|
- !ruby/object:Gem::Version
|
159
156
|
version: '0'
|
160
157
|
requirements: []
|
161
|
-
rubygems_version: 3.4
|
158
|
+
rubygems_version: 3.5.4
|
162
159
|
signing_key:
|
163
160
|
specification_version: 4
|
164
161
|
summary: A customizable and feature rich logger.
|
metadata.gz.sig
CHANGED
Binary file
|