console 1.25.1 → 1.26.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: 4e757a90ed9500d5af00cd1719bfe6d56aea8e304ec5b04495e687f5555befe9
4
- data.tar.gz: 9c3c3e74775bc4946c771f824414112227825376849d5f14515374d41c9b1ff1
3
+ metadata.gz: ea53f121a472d6011335a91ac4a96f4f3630c4524b1158166be906a51e4dd186
4
+ data.tar.gz: 20cdb45a16606315c9a0e054fb9e3460698e6fcccd190bd7668902f179c7b5fa
5
5
  SHA512:
6
- metadata.gz: 8cc0e4c8ec5458bb65c77fee9a0e1299665e33d771298919aa3a722f97f5e3c7f1ce541fb7d73d0970cc7a885d10dbde2a6967fe7ff5e06c390e64a4c9467de8
7
- data.tar.gz: b5a1cf780444bb8cd7bd566a3188f05befdf903b9612d53eae5434413fccd691491d4726aae77a2a053220d5b2b31add23c219d6ef4b482b29a910ad76456051
6
+ metadata.gz: 42748b35f41a887222716d8bd0b9e55f92a5506f31fa7cb0a3e5ac5155341c55d6ca2849745b77d568b7b11e3d79faf0193377b9547fce98c5c16ca1043f9222
7
+ data.tar.gz: de9535e3fb41fcce945512f9d482329cfc695888c43da753d1f7c392e074e4b4b1e6584fbfd1c39b4851c25f00563b1e0ee3efbd5240294649ff4dc68519483d
checksums.yaml.gz.sig CHANGED
Binary file
@@ -9,27 +9,45 @@ module Console
9
9
  # A general sink which captures all events into a buffer.
10
10
  class Capture
11
11
  def initialize
12
- @buffer = []
12
+ @records = []
13
13
  @verbose = false
14
14
  end
15
15
 
16
- attr :buffer
16
+ attr :records
17
+
18
+ # @deprecated Use {#records} instead of {#buffer}.
19
+ alias buffer records
20
+
21
+ alias to_a records
22
+
17
23
  attr :verbose
18
24
 
19
- def last
20
- @buffer.last
25
+ def include?(pattern)
26
+ @records.any? do |record|
27
+ record[:subject].to_s&.match?(pattern) or record[:message].to_s&.match?(pattern)
28
+ end
21
29
  end
22
30
 
23
- def include?(pattern)
24
- JSON.dump(@buffer).include?(pattern)
31
+ def each(&block)
32
+ @records.each(&block)
33
+ end
34
+
35
+ include Enumerable
36
+
37
+ def first
38
+ @records.first
39
+ end
40
+
41
+ def last
42
+ @records.last
25
43
  end
26
44
 
27
45
  def clear
28
- @buffer.clear
46
+ @records.clear
29
47
  end
30
48
 
31
49
  def empty?
32
- @buffer.empty?
50
+ @records.empty?
33
51
  end
34
52
 
35
53
  def verbose!(value = true)
@@ -41,39 +59,41 @@ module Console
41
59
  end
42
60
 
43
61
  def call(subject = nil, *arguments, severity: UNKNOWN, event: nil, **options, &block)
44
- message = {
62
+ record = {
45
63
  time: ::Time.now.iso8601,
46
64
  severity: severity,
47
65
  **options,
48
66
  }
49
67
 
50
68
  if subject
51
- message[:subject] = subject
69
+ record[:subject] = subject
52
70
  end
53
71
 
54
72
  if event
55
- message[:event] = event.to_hash
73
+ record[:event] = event.to_hash
56
74
  end
57
75
 
58
76
  if arguments.any?
59
- message[:arguments] = arguments
77
+ record[:arguments] = arguments
60
78
  end
61
79
 
62
80
  if annotation = Fiber.current.annotation
63
- message[:annotation] = annotation
81
+ record[:annotation] = annotation
64
82
  end
65
83
 
66
84
  if block_given?
67
85
  if block.arity.zero?
68
- message[:message] = yield
86
+ record[:message] = yield
69
87
  else
70
88
  buffer = StringIO.new
71
89
  yield buffer
72
- message[:message] = buffer.string
90
+ record[:message] = buffer.string
73
91
  end
92
+ else
93
+ record[:message] = arguments.join(" ")
74
94
  end
75
95
 
76
- @buffer << message
96
+ @records << record
77
97
  end
78
98
  end
79
99
  end
@@ -7,7 +7,7 @@
7
7
  # Copyright, 2021, by Robert Schulze.
8
8
 
9
9
  module Console
10
- UNKNOWN = 'unknown'
10
+ UNKNOWN = :unknown
11
11
 
12
12
  class Filter
13
13
  if Object.const_defined?(:Ractor) and RUBY_VERSION >= '3.1'
@@ -35,7 +35,7 @@ module Console
35
35
 
36
36
  define_immutable_method(name) do |subject = nil, *arguments, **options, &block|
37
37
  if self.enabled?(subject, level)
38
- self.call(subject, *arguments, severity: name, **@options, **options, &block)
38
+ @output.call(subject, *arguments, severity: name, **@options, **options, &block)
39
39
  end
40
40
  end
41
41
 
@@ -143,8 +143,13 @@ module Console
143
143
  @subjects.delete(subject)
144
144
  end
145
145
 
146
- def call(*arguments, **options, &block)
147
- @output.call(*arguments, **options, &block)
146
+ def call(subject, *arguments, **options, &block)
147
+ severity = options[:severity] || UNKNOWN
148
+ level = self.class::LEVELS[severity]
149
+
150
+ if self.enabled?(subject, level)
151
+ @output.call(subject, *arguments, **options, &block)
152
+ end
148
153
  end
149
154
  end
150
155
  end
@@ -4,5 +4,5 @@
4
4
  # Copyright, 2019-2024, by Samuel Williams.
5
5
 
6
6
  module Console
7
- VERSION = "1.25.1"
7
+ VERSION = "1.26.0"
8
8
  end
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.25.1
4
+ version: 1.26.0
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: 2024-05-03 00:00:00.000000000 Z
49
+ date: 2024-07-17 00:00:00.000000000 Z
50
50
  dependencies:
51
51
  - !ruby/object:Gem::Dependency
52
52
  name: fiber-annotation
@@ -149,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  - !ruby/object:Gem::Version
150
150
  version: '0'
151
151
  requirements: []
152
- rubygems_version: 3.5.3
152
+ rubygems_version: 3.5.11
153
153
  signing_key:
154
154
  specification_version: 4
155
155
  summary: Beautiful logging for Ruby.
metadata.gz.sig CHANGED
Binary file