console 1.23.1 → 1.23.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: f053978f1ebc28b2973844d0ef018eeb200651ffb9bf00702a09ca3b04614fce
4
- data.tar.gz: 4f8177c79c3e0d4f9b43e0e4b2c3f02e72837ca7d31e76a6eff308b41848e064
3
+ metadata.gz: dd6108c241ee21f1f785bd0686d958e586d647c0320b0edfcbae7fdaff275155
4
+ data.tar.gz: eac618496cbeedb26503082d99a1e34904229b00bd213e38acaf2d5044af7a2c
5
5
  SHA512:
6
- metadata.gz: 01bed9d6648e51ca76c7af4944f640eff416510bd7160ce9e9fd54c6c6397a213b45cfe8b4628d0e2071716b2651362e187f119d82053b85a7c4e5bb06d66fed
7
- data.tar.gz: 80de59979995f867f791052666b20d5d1f50ed01a74af4529797b604934b3f18e064f113963b55014c5f90497b40be82ba124443036f8cb34414b48e6c6bc50b
6
+ metadata.gz: 3b0335cc888c818b29cc1f12fbb62228107b7838e526481110383abb896c7f46bd006e324781a08a872bf90f047bcbf3507a6c638f4bda2b32008b1e10765315
7
+ data.tar.gz: 3e7db728a24bc033c6e2c8338996efc19d8cfdecc8f3d9f22857112500c99f00633483f2ec5ebd6a935aaece3f02ca1d7033a3e7c9c3987de60b81517bae5777
checksums.yaml.gz.sig CHANGED
Binary file
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Released under the MIT License.
4
- # Copyright, 2019-2022, by Samuel Williams.
4
+ # Copyright, 2019-2023, by Samuel Williams.
5
5
 
6
6
  require_relative 'filter'
7
7
 
@@ -55,6 +55,10 @@ module Console
55
55
  message[:arguments] = arguments
56
56
  end
57
57
 
58
+ if annotation = Fiber.current.annotation
59
+ message[:annotation] = annotation
60
+ end
61
+
58
62
  if block_given?
59
63
  if block.arity.zero?
60
64
  message[:message] = yield
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Released under the MIT License.
4
- # Copyright, 2022, by Samuel Williams.
4
+ # Copyright, 2022-2023, by Samuel Williams.
5
5
 
6
6
  require 'logger'
7
7
 
@@ -24,22 +24,38 @@ module Console
24
24
 
25
25
  private
26
26
 
27
- def default_objects
28
- Hash.new.compare_by_identity
29
- end
30
-
31
- # The first N frames, noting that the last frame is a placeholder for all the skipped frames:
32
- FIRST_N_FRAMES = 10 + 1
33
- LAST_N_FRAMES = 20
34
- MAXIMUM_FRAMES = FIRST_N_FRAMES + LAST_N_FRAMES
35
-
36
27
  def filter_backtrace(error)
37
28
  frames = error.backtrace
29
+ filtered = {}
30
+ filtered_count = nil
31
+ skipped = nil
32
+
33
+ frames = frames.filter_map do |frame|
34
+ if filtered[frame]
35
+ if filtered_count == nil
36
+ filtered_count = 1
37
+ skipped = frame.dup
38
+ else
39
+ filtered_count += 1
40
+ nil
41
+ end
42
+ else
43
+ if skipped
44
+ if filtered_count > 1
45
+ skipped.replace("[... #{filtered_count} frames skipped ...]")
46
+ end
47
+
48
+ filtered_count = nil
49
+ skipped = nil
50
+ end
51
+
52
+ filtered[frame] = true
53
+ frame
54
+ end
55
+ end
38
56
 
39
- # Select only the first and last few frames:
40
- if frames.size > MAXIMUM_FRAMES
41
- frames[FIRST_N_FRAMES-1] = "[... #{frames.size - (MAXIMUM_FRAMES-1)} frames ...]"
42
- frames.slice!(FIRST_N_FRAMES...-LAST_N_FRAMES)
57
+ if skipped && filtered_count > 1
58
+ skipped.replace("[... #{filtered_count} frames skipped ...]")
43
59
  end
44
60
 
45
61
  return frames
@@ -69,6 +85,10 @@ module Console
69
85
  end
70
86
  end
71
87
 
88
+ def default_objects
89
+ Hash.new.compare_by_identity
90
+ end
91
+
72
92
  # This will recursively generate a safe version of the object.
73
93
  # Nested hashes and arrays will be transformed recursively.
74
94
  # Strings will be encoded with the given encoding.
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Released under the MIT License.
4
- # Copyright, 2021-2022, by Samuel Williams.
4
+ # Copyright, 2021-2023, by Samuel Williams.
5
5
 
6
6
  require_relative '../serialized/logger'
7
7
 
@@ -149,8 +149,14 @@ module Console
149
149
  buffer = +""
150
150
 
151
151
  if @verbose
152
- if annotation = Fiber.current.annotation and annotation.size > 0
153
- buffer << ": #{@terminal[:annotation]}#{annotation}#{@terminal.reset}"
152
+ if annotation = Fiber.current.annotation
153
+ # While typically annotations should be strings, that is not always the case.
154
+ annotation = annotation.to_s
155
+
156
+ # If the annotation is empty, we don't want to print it, as it will look like a formatting bug.
157
+ if annotation.size > 0
158
+ buffer << ": #{@terminal[:annotation]}#{annotation}#{@terminal.reset}"
159
+ end
154
160
  end
155
161
  end
156
162
 
@@ -4,5 +4,5 @@
4
4
  # Copyright, 2019-2023, by Samuel Williams.
5
5
 
6
6
  module Console
7
- VERSION = "1.23.1"
7
+ VERSION = "1.23.3"
8
8
  end
data/readme.md CHANGED
@@ -18,7 +18,13 @@ When Ruby decided to reverse the order of exception backtraces, I finally gave u
18
18
 
19
19
  ## Usage
20
20
 
21
- Please see the [project documentation](https://socketry.github.io/console).
21
+ Please see the [project documentation](https://socketry.github.io/console/) for more details.
22
+
23
+ - [Getting Started](https://socketry.github.io/console/guides/getting-started/index) - This guide explains how to use `console` for logging.
24
+
25
+ - [Command Line](https://socketry.github.io/console/guides/command-line/index) - This guide explains how the `console` gem can be controlled using environment variables.
26
+
27
+ - [Integration](https://socketry.github.io/console/guides/integration/index) - This guide explains how to integrate the `console` output into different systems.
22
28
 
23
29
  ## Contributing
24
30
 
@@ -37,3 +43,9 @@ This project uses the [Developer Certificate of Origin](https://developercertifi
37
43
  ### Contributor Covenant
38
44
 
39
45
  This project is governed by [Contributor Covenant](https://www.contributor-covenant.org/). All contributors and participants agree to abide by its terms.
46
+
47
+ ## See Also
48
+
49
+ - [console-adapter-rails](https://github.com/socketry/console-adapter-rails)
50
+ - [console-adapter-sidekiq](https://github.com/socketry/console-adapter-sidekiq)
51
+ - [console-output-datadog](https://github.com/socketry/console-output-datadog)
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: console
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.23.1
4
+ version: 1.23.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -46,7 +46,7 @@ cert_chain:
46
46
  Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
47
47
  voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
48
48
  -----END CERTIFICATE-----
49
- date: 2023-08-11 00:00:00.000000000 Z
49
+ date: 2023-12-03 00:00:00.000000000 Z
50
50
  dependencies:
51
51
  - !ruby/object:Gem::Dependency
52
52
  name: fiber-annotation
@@ -117,7 +117,7 @@ files:
117
117
  - lib/console/version.rb
118
118
  - license.md
119
119
  - readme.md
120
- homepage: https://github.com/socketry/console
120
+ homepage: https://socketry.github.io/console/
121
121
  licenses:
122
122
  - MIT
123
123
  metadata: {}
@@ -136,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
136
  - !ruby/object:Gem::Version
137
137
  version: '0'
138
138
  requirements: []
139
- rubygems_version: 3.4.10
139
+ rubygems_version: 3.4.22
140
140
  signing_key:
141
141
  specification_version: 4
142
142
  summary: Beautiful logging for Ruby.
metadata.gz.sig CHANGED
Binary file