cogger 0.15.0 → 0.17.0

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
  SHA256:
3
- metadata.gz: 06b02f31842765991c8645f435efe1ac2c8d2ad54ec52e04cbfe6fc64096dd6d
4
- data.tar.gz: 819a9aa91290741d08ea935c8ae9046676a6255c940759d6b4dd0eca5820f0f5
3
+ metadata.gz: b221cf4d73cdaad56b4914d0f7a5e615d2fc630a7d7d6345cbefc69719d85dea
4
+ data.tar.gz: 41d5485a4772aa581b156bad52b7ea05f7eff9e9382606bb526b86ee69601a79
5
5
  SHA512:
6
- metadata.gz: 2a6973639d6f83b05959cfc596d0940ed80e733c24df781a973b479a9bc406d8ab5fee499cc24dd6c9eaf9aabef59a6b2f7474eeab7012ceeb96390b518c1ad7
7
- data.tar.gz: 9209e5c53220d33beb9f72c56c22b8bbbe5b731dc0ea25b6fdbca1955f7317619bfa35bf8a00a5e8eca178e9c95b770ce948d83392df43e7f5d60f23f1b4413a
6
+ metadata.gz: d23c8e4316051e496a35a0b6b7bf43687b9e9a7321375db01085102957cc3bba23b24dd31d182624f47111ac41af38e7337c0042b3db222968ef9c73f14ed17d
7
+ data.tar.gz: f6fc3c0c4733914b60125945f1a0b5a844fe134c8b8e9dd7d824a0257f9e95133e6d5164ed36791e53ff224e185b92e9d4582519daa2273b03ccb3300676435c
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.15.0"
5
+ spec.version = "0.17.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/cogger"
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.required_ruby_version = "~> 3.3"
26
26
  spec.add_dependency "core", "~> 1.0"
27
- spec.add_dependency "refinements", "~> 12.0"
27
+ spec.add_dependency "refinements", "~> 12.1"
28
28
  spec.add_dependency "tone", "~> 1.0"
29
29
  spec.add_dependency "zeitwerk", "~> 2.6"
30
30
 
data/lib/cogger/hub.rb CHANGED
@@ -8,6 +8,7 @@ require "refinements/logger"
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
 
@@ -49,20 +50,25 @@ module Cogger
49
50
  self
50
51
  end
51
52
 
52
- def debug(message = nil, **payload, &) = log(__method__, message, **payload, &)
53
+ def debug(message = nil, **, &) = log(__method__, message, **, &)
53
54
 
54
- def info(message = nil, **payload, &) = log(__method__, message, **payload, &)
55
+ def info(message = nil, **, &) = log(__method__, message, **, &)
55
56
 
56
- def warn(message = nil, **payload, &) = log(__method__, message, **payload, &)
57
+ def warn(message = nil, **, &) = log(__method__, message, **, &)
57
58
 
58
- def error(message = nil, **payload, &) = log(__method__, message, **payload, &)
59
+ def error(message = nil, **, &) = log(__method__, message, **, &)
59
60
 
60
- def fatal(message = nil, **payload, &) = log(__method__, message, **payload, &)
61
+ def fatal(message = nil, **, &) = log(__method__, message, **, &)
61
62
 
62
- def any(message = nil, **payload, &) = log(__method__, message, **payload, &)
63
+ def any(message = nil, **, &) = log(__method__, message, **, &)
63
64
 
64
- def add(severity, message = nil, **payload, &)
65
- log(Logger::SEV_LABEL.fetch(severity, "ANY").downcase, message, **payload, &)
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, **payload, &)
92
- dispatch(severity, message, **payload, &)
97
+ def log(severity, message = nil, **, &)
98
+ dispatch(severity, message, **, &)
93
99
  rescue StandardError => error
94
100
  crash message, error
95
101
  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.15.0
4
+ version: 0.17.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: 2024-01-01 00:00:00.000000000 Z
38
+ date: 2024-03-03 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: core
@@ -57,14 +57,14 @@ dependencies:
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '12.0'
60
+ version: '12.1'
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: '12.0'
67
+ version: '12.1'
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: tone
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -155,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
155
  - !ruby/object:Gem::Version
156
156
  version: '0'
157
157
  requirements: []
158
- rubygems_version: 3.5.3
158
+ rubygems_version: 3.5.6
159
159
  signing_key:
160
160
  specification_version: 4
161
161
  summary: A customizable and feature rich logger.
metadata.gz.sig CHANGED
Binary file