tiny_bus 3.6.0 → 3.7.1
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
- data/lib/tiny_bus.rb +14 -6
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69976083efa62900031ef18daf5d222157fa8c2e1250a4fac06c8068a98631db
|
4
|
+
data.tar.gz: 3f428977292bfdbe108d859406b3f2359646a1e28e716779ce5b6c828a2a5e6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df717813c4b3b516c6a2f16fdf539e2a8636a67a89a5c9b273640b721feaa37c16c69d9cd66198e8c36fbf322904384eac39987db3ae43d288e99da43c4b8b9b
|
7
|
+
data.tar.gz: d95a5ad0da6d327bd4c4586e4ee7ec9a9859a1c540a34a5f87ba9a9301280ff58822a9f805c54f499eb7d4ea18a18e7e309f30c67acb5c9a6c614caf79555a68
|
data/lib/tiny_bus.rb
CHANGED
@@ -57,6 +57,7 @@ class TinyBus
|
|
57
57
|
@subs = {}
|
58
58
|
@translator = translator
|
59
59
|
|
60
|
+
@total_key = "#{annotation_prefix}total"
|
60
61
|
@dead_key = "#{annotation_prefix}dead"
|
61
62
|
@topic_key = "#{annotation_prefix}topic"
|
62
63
|
@time_key = "#{annotation_prefix}time"
|
@@ -69,9 +70,9 @@ class TinyBus
|
|
69
70
|
->(m){ m[@trace_key] ||= SecureRandom.uuid; m }
|
70
71
|
])
|
71
72
|
|
72
|
-
@stats = {
|
73
|
-
@log = log || TinyLog.new($stdout)
|
74
|
-
@dead = dead || TinyLog.new($stderr)
|
73
|
+
@stats = { @total_key => 0, @dead_key => 0 }
|
74
|
+
@log = log || TinyLog.new(filename: $stdout)
|
75
|
+
@dead = dead || TinyLog.new(filename: $stderr)
|
75
76
|
@raise_on_dead = raise_on_dead
|
76
77
|
end
|
77
78
|
|
@@ -114,11 +115,12 @@ class TinyBus
|
|
114
115
|
msg = @translator&.pipe(msg) || msg
|
115
116
|
|
116
117
|
topic = msg[@topic_key]
|
117
|
-
|
118
118
|
subbers = @subs[topic]
|
119
119
|
|
120
|
+
@stats[topic] ||= 0
|
121
|
+
@stats[topic] += 1
|
122
|
+
@stats[@total_key] += 1
|
120
123
|
if (subbers&.length || 0) > 0
|
121
|
-
@stats[topic] += 1
|
122
124
|
subbers.each{|s| s.msg(msg) }
|
123
125
|
@log.send(lvl, "S #{msg}")
|
124
126
|
else
|
@@ -131,12 +133,18 @@ class TinyBus
|
|
131
133
|
end
|
132
134
|
end
|
133
135
|
|
136
|
+
# returns a #dup of the internal statistics which track the number of
|
137
|
+
# messages sent to each topic, the dead queue, and total messages
|
138
|
+
def stats
|
139
|
+
@stats.dup
|
140
|
+
end
|
141
|
+
|
134
142
|
# helpful for debugging, gives you a count of the number of messages sent to
|
135
143
|
# each topic, including the .dead topic, which is where messages go where
|
136
144
|
# there are no subscribes for a given topic
|
137
145
|
def to_s
|
138
146
|
<<~DEBUG
|
139
|
-
TinyBus stats: #{@
|
147
|
+
TinyBus stats: #{@stats.keys.length > 0 ? "\n " + @stats.keys.sort.map{|t| "#{t.rjust(12)}: #{@stats[t]}" }.join("\n ") : '<NONE>'}
|
140
148
|
Topics & Subscribers:
|
141
149
|
#{@subs.map{|topic, subbers| "#{topic}\n #{subbers.map(&:to_s).join("\n ")}" }.join("\n ") }
|
142
150
|
DEBUG
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tiny_bus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Lunt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tiny_log
|
@@ -64,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
64
64
|
- !ruby/object:Gem::Version
|
65
65
|
version: '0'
|
66
66
|
requirements: []
|
67
|
-
rubygems_version: 3.
|
67
|
+
rubygems_version: 3.4.1
|
68
68
|
signing_key:
|
69
69
|
specification_version: 4
|
70
70
|
summary: want to have an in-memory message bus that takes hash-like objects and distributes
|