rimless 1.7.7 → 1.8.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
- data/CHANGELOG.md +38 -31
- data/lib/rimless/consumer.rb +13 -2
- data/lib/rimless/kafka_helpers.rb +10 -1
- data/lib/rimless/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a1deea4fa3747418c007acbf6eadb5634b97f3e5fc3ec221a78d6cf4f8c10d42
|
|
4
|
+
data.tar.gz: 939c0455cc813c211a2f934ee0cad879d06bc28faef5d03ab5ca7906bf5c015e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e73bffa03e3c7f5b1635ae1eeb79cc7de8748e841d7d7aa027def3b9ef62b3e068cd04c04349cf498cc55b94d13d5a7538be5c7c599707c72526c72d94a716bd
|
|
7
|
+
data.tar.gz: b33dd85d1d5a915483de9b2836f184ad17e4cfb180902b53e41a14ee1283683d8f7838acd51326a68758663ea27bdfc9e419b5a461d40f75758ef035911da776
|
data/CHANGELOG.md
CHANGED
|
@@ -2,41 +2,48 @@
|
|
|
2
2
|
|
|
3
3
|
* TODO: Replace this bullet point with an actual description of a change.
|
|
4
4
|
|
|
5
|
-
### 1.
|
|
5
|
+
### 1.8.0 (14 November 2024)
|
|
6
|
+
|
|
7
|
+
* Added support for custom topic names via the `full_name:` keyword argument on
|
|
8
|
+
the consumer routing table (#44)
|
|
9
|
+
* Added support to pass a block to the routing table
|
|
10
|
+
(`Rimless.consumer.topics`) to add custom topic configurations (#44)
|
|
11
|
+
|
|
12
|
+
### 1.7.7 (19 September 2024)
|
|
6
13
|
|
|
7
14
|
* Corrected the Sidekiq interchanger decoding, which is caused by an upstream
|
|
8
15
|
update of the karafka-sidekiq-backend gem (#43)
|
|
9
16
|
|
|
10
|
-
### 1.7.6
|
|
17
|
+
### 1.7.6 (19 September 2024)
|
|
11
18
|
|
|
12
19
|
* Added a monkey-patch for the constellation Karafka 1.4 and Thor 1.3,
|
|
13
20
|
on Ruby >=2.7 (#42)
|
|
14
21
|
|
|
15
|
-
### 1.7.5
|
|
22
|
+
### 1.7.5 (15 August 2024)
|
|
16
23
|
|
|
17
24
|
* Just a retag of 1.7.1
|
|
18
25
|
|
|
19
|
-
### 1.7.4
|
|
26
|
+
### 1.7.4 (15 August 2024)
|
|
20
27
|
|
|
21
28
|
* Just a retag of 1.7.1
|
|
22
29
|
|
|
23
|
-
### 1.7.3
|
|
30
|
+
### 1.7.3 (15 August 2024)
|
|
24
31
|
|
|
25
32
|
* Just a retag of 1.7.1
|
|
26
33
|
|
|
27
|
-
### 1.7.2
|
|
34
|
+
### 1.7.2 (9 August 2024)
|
|
28
35
|
|
|
29
36
|
* Just a retag of 1.7.1
|
|
30
37
|
|
|
31
|
-
### 1.7.1
|
|
38
|
+
### 1.7.1 (9 August 2024)
|
|
32
39
|
|
|
33
40
|
* Added API docs building to continuous integration (#41)
|
|
34
41
|
|
|
35
|
-
### 1.7.0
|
|
42
|
+
### 1.7.0 (8 July 2024)
|
|
36
43
|
|
|
37
44
|
* Added CI tests for Rails 6.1 and 7.1 (#39)
|
|
38
45
|
|
|
39
|
-
### 1.6.0
|
|
46
|
+
### 1.6.0 (3 July 2024)
|
|
40
47
|
|
|
41
48
|
* Dropped support for Ruby <2.7 (#38)
|
|
42
49
|
* Moved the schema file validation into the retry block for parallel execution
|
|
@@ -44,34 +51,34 @@
|
|
|
44
51
|
* Updated the [Kafka Playground](./doc/kafka-playground) to the latest
|
|
45
52
|
Apache Kafka (3.7) and Schema Registry (7.6) versions (#35)
|
|
46
53
|
|
|
47
|
-
### 1.5.1
|
|
54
|
+
### 1.5.1 (26 April 2024)
|
|
48
55
|
|
|
49
56
|
* Added a retry to write compiled schema files as this may fail on parallel
|
|
50
57
|
execution (#33)
|
|
51
58
|
|
|
52
|
-
### 1.5.0
|
|
59
|
+
### 1.5.0 (4 December 2023)
|
|
53
60
|
|
|
54
61
|
* Do not extend the `Rimless.logger` to write to stdout by default when running
|
|
55
62
|
in the `development` environment - this generates duplicated messages when
|
|
56
63
|
the configured logger already writes to stdout. A new configuration was added
|
|
57
64
|
`Rimless.configuration.extend_dev_logger = false` was added (#32)
|
|
58
65
|
|
|
59
|
-
### 1.4.2
|
|
66
|
+
### 1.4.2 (12 July 2023)
|
|
60
67
|
|
|
61
68
|
* Reverted to use `yield_self` instead of `then` in order to support Ruby 2.5
|
|
62
69
|
as advertised (broken since #19, 1.3.0) (#31)
|
|
63
70
|
|
|
64
|
-
### 1.4.1
|
|
71
|
+
### 1.4.1 (5 July 2023)
|
|
65
72
|
|
|
66
73
|
* Moved the development dependencies from the gemspec to the Gemfile (#29)
|
|
67
74
|
* Pinned Karafka gem <1.4.15 in order to suppress the
|
|
68
75
|
`I_ACCEPT_CRITICAL_ERRORS_IN_KARAFKA_1_4=true` agony (#30)
|
|
69
76
|
|
|
70
|
-
### 1.4.0
|
|
77
|
+
### 1.4.0 (24 February 2023)
|
|
71
78
|
|
|
72
79
|
* Added support for Gem release automation
|
|
73
80
|
|
|
74
|
-
### 1.3.0
|
|
81
|
+
### 1.3.0 (18 January 2023)
|
|
75
82
|
|
|
76
83
|
* Bundler >= 2.3 is from now on required as minimal version (#19)
|
|
77
84
|
* Dropped support for Ruby < 2.5 (#19)
|
|
@@ -79,49 +86,49 @@
|
|
|
79
86
|
* Updated all development/runtime gems to their latest
|
|
80
87
|
Ruby 2.5 compatible version (#19)
|
|
81
88
|
|
|
82
|
-
### 1.2.0
|
|
89
|
+
### 1.2.0 (4 October 2021)
|
|
83
90
|
|
|
84
91
|
* Added a `capture_kafka_messages` helper for RSpec (#12)
|
|
85
92
|
|
|
86
|
-
### 1.1.1
|
|
93
|
+
### 1.1.1 (12 May 2021)
|
|
87
94
|
|
|
88
95
|
* Corrected the GNU Make release target
|
|
89
96
|
|
|
90
|
-
### 1.1.0
|
|
97
|
+
### 1.1.0 (23 October 2020)
|
|
91
98
|
|
|
92
99
|
* Added support for Karafka `~> 1.4.0` and set is as minimum dependency version
|
|
93
100
|
(#10)
|
|
94
101
|
|
|
95
|
-
### 1.0.4
|
|
102
|
+
### 1.0.4 (14 August 2020)
|
|
96
103
|
|
|
97
104
|
* Mocked WaterDrop producers in the rimless rspec helper so that tests
|
|
98
105
|
won't actually talk to Kafka (#9)
|
|
99
106
|
|
|
100
|
-
### 1.0.3
|
|
107
|
+
### 1.0.3 (14 May 2020)
|
|
101
108
|
|
|
102
109
|
* Corrected broken stats when no consumer is yet defined (#8)
|
|
103
110
|
|
|
104
|
-
### 1.0.2
|
|
111
|
+
### 1.0.2 (11 March 2020)
|
|
105
112
|
|
|
106
113
|
* Only load the statistics rake task when Rails is available and the
|
|
107
114
|
environment is development (instead of not production, this may cause issues
|
|
108
115
|
for +canary+ or +stage+ Rails environments)
|
|
109
116
|
|
|
110
|
-
### 1.0.1
|
|
117
|
+
### 1.0.1 (11 March 2020)
|
|
111
118
|
|
|
112
119
|
* Added the missing +Karafka::Testing::RSpec::Helpers+ include to the
|
|
113
120
|
RSpec configuration
|
|
114
121
|
|
|
115
|
-
### 1.0.0
|
|
122
|
+
### 1.0.0 (11 March 2020)
|
|
116
123
|
|
|
117
124
|
* Dropped support for Ruby 2.3/2.4 and added support for Rails 6.0 (#6)
|
|
118
125
|
* Implemented a simple opinionated Kafka consumer setup (#7)
|
|
119
126
|
|
|
120
|
-
### 0.3.0
|
|
127
|
+
### 0.3.0 (8 November 2019)
|
|
121
128
|
|
|
122
129
|
* Upgraded the avro_turf gem (`~> 0.11.0`) (#5)
|
|
123
130
|
|
|
124
|
-
### 0.2.1
|
|
131
|
+
### 0.2.1 (13 August 2019)
|
|
125
132
|
|
|
126
133
|
* Added support for the
|
|
127
134
|
[parallel_tests](https://github.com/grosser/parallel_tests) gem and
|
|
@@ -129,7 +136,7 @@
|
|
|
129
136
|
thread. This fixes all race conditions which slow down or break user test
|
|
130
137
|
suites.
|
|
131
138
|
|
|
132
|
-
### 0.2.0
|
|
139
|
+
### 0.2.0 (5 June 2019)
|
|
133
140
|
|
|
134
141
|
* Added the `Rimless.encode` (`.avro_encode`) and `Rimless.decode`
|
|
135
142
|
(`.avro_decode`) helpers/shortcuts to simplify the interaction with the
|
|
@@ -148,29 +155,29 @@
|
|
|
148
155
|
of the compiled schema directory caused previously file read errors when a
|
|
149
156
|
parallel process started a recompilation.
|
|
150
157
|
|
|
151
|
-
### 0.1.4
|
|
158
|
+
### 0.1.4 (17 April 2019)
|
|
152
159
|
|
|
153
160
|
* Reconfigure (reset) the AvroTurf instance on tests to avoid caching issues
|
|
154
161
|
(on failed tests the message decoding was not working which results in
|
|
155
162
|
unrelated errors, instead of showing the actual test failure)
|
|
156
163
|
|
|
157
|
-
### 0.1.3
|
|
164
|
+
### 0.1.3 (16 April 2019)
|
|
158
165
|
|
|
159
166
|
* Check for unset and empty values while configuring dependencies
|
|
160
167
|
|
|
161
|
-
### 0.1.2
|
|
168
|
+
### 0.1.2 (16 April 2019)
|
|
162
169
|
|
|
163
170
|
* Skip the configuration of the AvroTurf gem in case no schema registry URL is
|
|
164
171
|
configured, this allows the smooth run of Rails asset precompilations without
|
|
165
172
|
full environment configurations (eg. on CI)
|
|
166
173
|
|
|
167
|
-
### 0.1.1
|
|
174
|
+
### 0.1.1 (16 April 2019)
|
|
168
175
|
|
|
169
176
|
* Skip the configuration of the WaterDrop gem in case no brokers are
|
|
170
177
|
configured, this allows the smooth run of Rails asset precompilations without
|
|
171
178
|
full environment configurations (eg. on CI)
|
|
172
179
|
|
|
173
|
-
### 0.1.0
|
|
180
|
+
### 0.1.0 (16 April 2019)
|
|
174
181
|
|
|
175
182
|
* The first release with support for simple Apache Avro message producing on
|
|
176
183
|
Apache Kafka/Confluent Schema Registry
|
data/lib/rimless/consumer.rb
CHANGED
|
@@ -126,12 +126,23 @@ module Rimless
|
|
|
126
126
|
# topics({ app: :test_app, name: :admins } => YourConsumer)
|
|
127
127
|
# topics({ app: :test_app, names: %i[users admins] } => YourConsumer)
|
|
128
128
|
#
|
|
129
|
+
# Examples:
|
|
130
|
+
#
|
|
131
|
+
# topics do
|
|
132
|
+
# topic('name') do
|
|
133
|
+
# consumer CustomConsumer
|
|
134
|
+
# end
|
|
135
|
+
# end
|
|
136
|
+
#
|
|
129
137
|
# @param topics [Hash{Hash => Class}] the topic to consumer mapping
|
|
138
|
+
# @yield the given block on the routing table
|
|
130
139
|
#
|
|
131
140
|
# rubocop:disable Metrics/MethodLength because of the Karafka DSL
|
|
132
|
-
def topics(topics)
|
|
141
|
+
def topics(topics = [], &block)
|
|
133
142
|
consumer_groups.draw do
|
|
134
|
-
consumer_group
|
|
143
|
+
consumer_group(Rimless.configuration.client_id) do
|
|
144
|
+
instance_exec(&block) if block_given?
|
|
145
|
+
|
|
135
146
|
topics.each do |topic_parts, dest_consumer|
|
|
136
147
|
Rimless.consumer.topic_names(topic_parts).each do |topic_name|
|
|
137
148
|
topic(topic_name) do
|
|
@@ -19,14 +19,21 @@ module Rimless
|
|
|
19
19
|
# Rimless.topic(:users, app: 'test-api')
|
|
20
20
|
# @example Mix and match
|
|
21
21
|
# Rimless.topic(name: 'test', app: :fancy_app)
|
|
22
|
+
# @example Full name - use as is
|
|
23
|
+
# Rimless.topic(full_name: 'my.custom.topic.name')
|
|
22
24
|
#
|
|
23
|
-
# rubocop:disable Metrics/
|
|
25
|
+
# rubocop:disable Metrics/MethodLength because of the usage flexibility
|
|
26
|
+
# rubocop:disable Metrics/AbcSize dito
|
|
24
27
|
# rubocop:disable Metrics/CyclomaticComplexity dito
|
|
28
|
+
# rubocop:disable Metrics/PerceivedComplexity dito
|
|
25
29
|
def topic(*args)
|
|
26
30
|
opts = args.last
|
|
27
31
|
name = args.first if [String, Symbol].member?(args.first.class)
|
|
28
32
|
|
|
29
33
|
if opts.is_a?(Hash)
|
|
34
|
+
# When we got a full name, we use it as is
|
|
35
|
+
return opts[:full_name] if opts.key? :full_name
|
|
36
|
+
|
|
30
37
|
name = opts[:name] if opts.key?(:name)
|
|
31
38
|
app = opts[:app] if opts.key?(:app)
|
|
32
39
|
end
|
|
@@ -38,8 +45,10 @@ module Rimless
|
|
|
38
45
|
|
|
39
46
|
"#{Rimless.topic_prefix(app)}#{name}".tr('_', '-')
|
|
40
47
|
end
|
|
48
|
+
# rubocop:enable Metrics/MethodLength
|
|
41
49
|
# rubocop:enable Metrics/AbcSize
|
|
42
50
|
# rubocop:enable Metrics/CyclomaticComplexity
|
|
51
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
|
43
52
|
|
|
44
53
|
# Send a single message to Apache Kafka. The data is encoded according to
|
|
45
54
|
# the given Apache Avro schema. The destination Kafka topic may be a
|
data/lib/rimless/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rimless
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Hermann Mayer
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-
|
|
11
|
+
date: 2024-11-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|