sbmt-kafka_producer 2.2.3 → 3.0.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/Appraisals +2 -2
- data/CHANGELOG.md +14 -0
- data/Gemfile +0 -3
- data/LICENSE +1 -1
- data/README.md +10 -10
- data/dip.yml +3 -3
- data/lib/generators/kafka_producer/install/templates/kafka_producer.yml +5 -5
- data/lib/sbmt/kafka_producer/config/kafka.rb +20 -11
- data/lib/sbmt/kafka_producer/config/producer.rb +2 -2
- data/lib/sbmt/kafka_producer/kafka_client_factory.rb +10 -16
- data/lib/sbmt/kafka_producer/version.rb +1 -1
- data/sbmt-kafka_producer.gemspec +8 -8
- metadata +25 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '01390ee8af51126fefcebfc7a1cdebc8c61cff6660d064568b01e1508f1bc616'
|
4
|
+
data.tar.gz: 1402bc1e9e5b51ff2998411b6154711b9af3f583c539cab01deae04c9d8e29fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db848372986b9b6107b3911dad1f36c62f6532cc25d22d573bd2c1ab4afb37e4e3c27616a2ad70611c8f5006e00bf0dd6e36821cdc91acf96d010f3f22a741fe
|
7
|
+
data.tar.gz: 55082c9462c97377276ebc9c1b3406a409993b737828a0a13e72bd1c7eb09263ad68f61678b59b21178c6ada97665116b27d6fd09094b5e570f3546ac8ed9855
|
data/Appraisals
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
# See compatibility table at https://www.fastruby.io/blog/ruby/rails/versions/compatibility-table.html
|
4
4
|
|
5
5
|
versions_map = {
|
6
|
-
"6.0" => %w[2.7],
|
7
6
|
"6.1" => %w[2.7 3.0],
|
8
7
|
"7.0" => %w[3.1],
|
9
|
-
"7.1" => %w[3.2,
|
8
|
+
"7.1" => %w[3.2],
|
9
|
+
"7.2" => %w[3.3]
|
10
10
|
}
|
11
11
|
|
12
12
|
current_ruby_version = RUBY_VERSION.split(".").first(2).join(".")
|
data/CHANGELOG.md
CHANGED
@@ -13,6 +13,20 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
|
13
13
|
|
14
14
|
### Fixed
|
15
15
|
|
16
|
+
## [3.0.0] - 2024-08-27
|
17
|
+
|
18
|
+
## BREAKING
|
19
|
+
|
20
|
+
- Drop support for Ruby 2.7
|
21
|
+
- Drop support for Rails 6.0
|
22
|
+
- Add support for Waterdrop 2.7
|
23
|
+
- `wait_timeout` configuration no longer deeded
|
24
|
+
- All time-related values are now configured in milliseconds: `connect_timeout`, `ack_timeout`, `retry_backoff`, `max_wait_timeout`, `wait_on_queue_full_timeout`
|
25
|
+
|
26
|
+
## Added
|
27
|
+
|
28
|
+
- Add `message_timeout` configuration
|
29
|
+
|
16
30
|
## [2.2.3] - 2024-06-20
|
17
31
|
|
18
32
|
### Fixed
|
data/Gemfile
CHANGED
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
[](https://badge.fury.io/rb/sbmt-kafka_producer)
|
2
|
-
[](https://github.com/Kuper-Tech/sbmt-kafka_producer/actions?query=branch%3Amaster)
|
3
3
|
|
4
4
|
# Sbmt-KafkaProducer
|
5
5
|
|
6
|
-
This gem is used to produce Kafka messages. It is a wrapper over the [waterdrop](https://github.com/karafka/waterdrop) gem, and it is recommended for use as a transport with the [sbmt-outbox](https://github.com/
|
6
|
+
This gem is used to produce Kafka messages. It is a wrapper over the [waterdrop](https://github.com/karafka/waterdrop) gem, and it is recommended for use as a transport with the [sbmt-outbox](https://github.com/Kuper-Tech/sbmt-outbox) gem.
|
7
7
|
|
8
8
|
## Installation
|
9
9
|
|
@@ -21,7 +21,7 @@ bundle install
|
|
21
21
|
|
22
22
|
## Demo
|
23
23
|
|
24
|
-
Learn how to use this gem and how it works with Ruby on Rails at here https://github.com/
|
24
|
+
Learn how to use this gem and how it works with Ruby on Rails at here https://github.com/Kuper-Tech/outbox-example-apps
|
25
25
|
|
26
26
|
## Auto configuration
|
27
27
|
|
@@ -49,7 +49,7 @@ As the result, a sync producer will be created.
|
|
49
49
|
|
50
50
|
### Outbox producer
|
51
51
|
|
52
|
-
To generate an Outbox producer for use with Gem [sbmt-Outbox](https://github.com/
|
52
|
+
To generate an Outbox producer for use with Gem [sbmt-Outbox](https://github.com/Kuper-Tech/sbmt-outbox), run the following command:
|
53
53
|
|
54
54
|
```shell
|
55
55
|
rails g kafka_producer:outbox_producer SomeOutboxItem
|
@@ -66,20 +66,20 @@ default: &default
|
|
66
66
|
# see more options at https://github.com/karafka/waterdrop/blob/master/lib/waterdrop/config.rb
|
67
67
|
wait_on_queue_full: true
|
68
68
|
max_payload_size: 1000012
|
69
|
-
|
70
|
-
wait_timeout: 0.005
|
69
|
+
max_wait_timeout_ms: 60000
|
71
70
|
auth:
|
72
71
|
kind: plaintext
|
73
72
|
kafka:
|
74
73
|
servers: "kafka:9092" # required
|
75
74
|
max_retries: 2 # optional, default: 2
|
76
75
|
required_acks: -1 # optional, default: -1
|
77
|
-
ack_timeout:
|
78
|
-
retry_backoff:
|
79
|
-
connect_timeout:
|
76
|
+
ack_timeout: 1000 # in milliseconds, optional, default: 1000
|
77
|
+
retry_backoff: 1000 # in milliseconds, optional, default: 1000
|
78
|
+
connect_timeout: 2000 # in milliseconds, optional, default: 2000
|
79
|
+
message_timeout: 55000 # in milliseconds, optional, default: 55000
|
80
80
|
kafka_config: # low-level custom Kafka options
|
81
81
|
queue.buffering.max.messages: 1
|
82
|
-
queue.buffering.max.ms:
|
82
|
+
queue.buffering.max.ms: 10000
|
83
83
|
|
84
84
|
development:
|
85
85
|
<<: *default
|
data/dip.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
version: '7'
|
2
2
|
|
3
3
|
environment:
|
4
|
-
RUBY_VERSION: '3.
|
4
|
+
RUBY_VERSION: '3.3'
|
5
5
|
|
6
6
|
compose:
|
7
7
|
files:
|
@@ -35,14 +35,14 @@ interaction:
|
|
35
35
|
subcommands:
|
36
36
|
all:
|
37
37
|
command: bundle exec appraisal rspec
|
38
|
-
rails-6.0:
|
39
|
-
command: bundle exec appraisal rails-6.0 rspec
|
40
38
|
rails-6.1:
|
41
39
|
command: bundle exec appraisal rails-6.1 rspec
|
42
40
|
rails-7.0:
|
43
41
|
command: bundle exec appraisal rails-7.0 rspec
|
44
42
|
rails-7.1:
|
45
43
|
command: bundle exec appraisal rails-7.1 rspec
|
44
|
+
rails-7.2:
|
45
|
+
command: bundle exec appraisal rails-7.2 rspec
|
46
46
|
|
47
47
|
rubocop:
|
48
48
|
description: Run Ruby linter
|
@@ -2,8 +2,7 @@ default: &default
|
|
2
2
|
deliver: true
|
3
3
|
wait_on_queue_full: true
|
4
4
|
max_payload_size: 1000012
|
5
|
-
max_wait_timeout:
|
6
|
-
wait_timeout: 0.005
|
5
|
+
max_wait_timeout: 60000
|
7
6
|
ignore_kafka_error: true
|
8
7
|
|
9
8
|
auth:
|
@@ -14,11 +13,12 @@ default: &default
|
|
14
13
|
|
15
14
|
kafka:
|
16
15
|
servers: "kafka:9092"
|
16
|
+
connect_timeout: 2000
|
17
|
+
message_timeout: 55000
|
18
|
+
ack_timeout: 10000
|
19
|
+
retry_backoff: 10000
|
17
20
|
max_retries: 2
|
18
21
|
required_acks: -1
|
19
|
-
ack_timeout: 1
|
20
|
-
retry_backoff: 1
|
21
|
-
connect_timeout: 1
|
22
22
|
|
23
23
|
development:
|
24
24
|
<<: *default
|
@@ -9,27 +9,36 @@ module Sbmt
|
|
9
9
|
# srv1:port1,srv2:port2,...
|
10
10
|
SERVERS_REGEXP = /^[a-z\d.\-:]+(,[a-z\d.\-:]+)*$/.freeze
|
11
11
|
|
12
|
+
# https://github.com/karafka/waterdrop/blob/master/lib/waterdrop/config.rb
|
13
|
+
KAFKA_CONFIG_KEYS_REMAP = {
|
14
|
+
servers: :"bootstrap.servers",
|
15
|
+
connect_timeout: :"socket.connection.setup.timeout.ms",
|
16
|
+
message_timeout: :"message.timeout.ms",
|
17
|
+
ack_timeout: :"request.timeout.ms",
|
18
|
+
retry_backoff: :"retry.backoff.ms",
|
19
|
+
max_retries: :"message.send.max.retries",
|
20
|
+
required_acks: :"request.required.acks"
|
21
|
+
}
|
22
|
+
|
12
23
|
attribute :servers, Sbmt::KafkaProducer::Types::String.constrained(format: SERVERS_REGEXP)
|
13
24
|
|
14
25
|
# defaults are rdkafka's
|
15
26
|
# see https://github.com/confluentinc/librdkafka/blob/master/CONFIGURATION.md
|
16
|
-
attribute :connect_timeout, Sbmt::KafkaProducer::Types::Coercible::Integer.optional.default(
|
17
|
-
attribute :ack_timeout, Sbmt::KafkaProducer::Types::Coercible::Integer.optional.default(
|
27
|
+
attribute :connect_timeout, Sbmt::KafkaProducer::Types::Coercible::Integer.optional.default(2000)
|
28
|
+
attribute :ack_timeout, Sbmt::KafkaProducer::Types::Coercible::Integer.optional.default(1000)
|
29
|
+
attribute :retry_backoff, Sbmt::KafkaProducer::Types::Coercible::Integer.optional.default(1000)
|
30
|
+
attribute :message_timeout, Sbmt::KafkaProducer::Types::Coercible::Integer.optional.default(55000)
|
18
31
|
attribute :required_acks, Sbmt::KafkaProducer::Types::Coercible::Integer.optional.default(-1)
|
19
32
|
attribute :max_retries, Sbmt::KafkaProducer::Types::Coercible::Integer.optional.default(2)
|
20
|
-
attribute :retry_backoff, Sbmt::KafkaProducer::Types::Coercible::Integer.optional.default(1)
|
21
33
|
|
22
34
|
attribute :kafka_config, Sbmt::KafkaProducer::Types::ConfigAttrs.optional.default({}.freeze)
|
23
35
|
|
24
36
|
def to_kafka_options
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
"message.send.max.retries": max_retries,
|
31
|
-
"retry.backoff.ms": retry_backoff.to_f * 1000
|
32
|
-
).symbolize_keys
|
37
|
+
cfg = KAFKA_CONFIG_KEYS_REMAP.each_with_object({}) do |(key, kafka_key), hash|
|
38
|
+
hash[kafka_key] = self[key]
|
39
|
+
end
|
40
|
+
|
41
|
+
kafka_config.symbolize_keys.merge(cfg)
|
33
42
|
end
|
34
43
|
end
|
35
44
|
end
|
@@ -28,7 +28,7 @@ module Sbmt
|
|
28
28
|
config_name :kafka_producer
|
29
29
|
|
30
30
|
attr_config :ignore_kafka_error, :deliver, :wait_on_queue_full,
|
31
|
-
:max_payload_size, :max_wait_timeout,
|
31
|
+
:max_payload_size, :max_wait_timeout,
|
32
32
|
:wait_on_queue_full_timeout,
|
33
33
|
auth: {}, kafka: {},
|
34
34
|
logger_class: "::Sbmt::KafkaProducer::Logger",
|
@@ -37,7 +37,7 @@ module Sbmt
|
|
37
37
|
coerce_types ignore_kafka_error: :boolean,
|
38
38
|
deliver: :boolean, wait_on_queue_full: :boolean,
|
39
39
|
max_payload_size: :integer, max_wait_timeout: :integer,
|
40
|
-
|
40
|
+
wait_on_queue_full_timeout: :integer
|
41
41
|
coerce_types kafka: coerce_to(Kafka)
|
42
42
|
coerce_types auth: coerce_to(Auth)
|
43
43
|
|
@@ -15,13 +15,13 @@ module Sbmt
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
def build(
|
19
|
-
return default_client if
|
18
|
+
def build(kafka_options = {})
|
19
|
+
return default_client if kafka_options.empty?
|
20
20
|
|
21
|
-
fetch_client(
|
21
|
+
fetch_client(kafka_options) do
|
22
22
|
ConnectionPool::Wrapper.new do
|
23
23
|
WaterDrop::Producer.new do |config|
|
24
|
-
configure_client(config,
|
24
|
+
configure_client(config, kafka_options)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
@@ -29,8 +29,8 @@ module Sbmt
|
|
29
29
|
|
30
30
|
private
|
31
31
|
|
32
|
-
def fetch_client(
|
33
|
-
key = Digest::SHA1.hexdigest(Marshal.dump(
|
32
|
+
def fetch_client(kafka_options)
|
33
|
+
key = Digest::SHA1.hexdigest(Marshal.dump(kafka_options))
|
34
34
|
return CLIENTS_REGISTRY[key] if CLIENTS_REGISTRY.key?(key)
|
35
35
|
|
36
36
|
CLIENTS_REGISTRY_MUTEX.synchronize do
|
@@ -49,22 +49,16 @@ module Sbmt
|
|
49
49
|
kafka_config.wait_on_queue_full = config.wait_on_queue_full if config.wait_on_queue_full.present?
|
50
50
|
kafka_config.max_payload_size = config.max_payload_size if config.max_payload_size.present?
|
51
51
|
kafka_config.max_wait_timeout = config.max_wait_timeout if config.max_wait_timeout.present?
|
52
|
-
kafka_config.wait_timeout = config.wait_timeout if config.wait_timeout.present?
|
53
52
|
kafka_config.wait_on_queue_full_timeout = config.wait_on_queue_full_timeout if config.wait_on_queue_full_timeout.present?
|
54
53
|
|
55
54
|
kafka_config.monitor.subscribe(config.metrics_listener_class.classify.constantize.new)
|
56
55
|
end
|
57
56
|
|
58
57
|
def custom_kafka_config(kafka_options)
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
result["request.required.acks"] = kafka_options["required_acks"] if kafka_options.key?("required_acks")
|
64
|
-
result["message.send.max.retries"] = kafka_options["max_retries"] if kafka_options.key?("max_retries")
|
65
|
-
result["retry.backoff.ms"] = kafka_options["retry_backoff"].to_f * 1000 if kafka_options.key?("retry_backoff")
|
66
|
-
|
67
|
-
result
|
58
|
+
kafka_options = kafka_options.symbolize_keys
|
59
|
+
short_options = kafka_options.extract!(*Config::Kafka::KAFKA_CONFIG_KEYS_REMAP.keys)
|
60
|
+
cfg = short_options.transform_keys(Config::Kafka::KAFKA_CONFIG_KEYS_REMAP)
|
61
|
+
kafka_options.merge!(cfg)
|
68
62
|
end
|
69
63
|
|
70
64
|
def config
|
data/sbmt-kafka_producer.gemspec
CHANGED
@@ -6,12 +6,12 @@ Gem::Specification.new do |spec|
|
|
6
6
|
spec.name = "sbmt-kafka_producer"
|
7
7
|
spec.license = "MIT"
|
8
8
|
spec.version = Sbmt::KafkaProducer::VERSION
|
9
|
-
spec.authors = ["
|
9
|
+
spec.authors = ["Kuper Ruby-Platform Team"]
|
10
10
|
|
11
11
|
spec.summary = "Ruby gem for producing Kafka messages"
|
12
12
|
spec.description = "This gem is used for producing Kafka messages. It represents a wrapper over Waterdrop gem and is recommended for using as a transport with sbmt-outbox"
|
13
|
-
spec.homepage = "https://github.com/
|
14
|
-
spec.required_ruby_version = ">=
|
13
|
+
spec.homepage = "https://github.com/Kuper-Tech/sbmt-kafka_producer"
|
14
|
+
spec.required_ruby_version = ">= 3.0.0"
|
15
15
|
|
16
16
|
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
17
17
|
|
@@ -32,12 +32,12 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.require_paths = ["lib"]
|
33
33
|
|
34
34
|
spec.add_dependency "anyway_config", "~> 2.4"
|
35
|
-
spec.add_dependency "connection_pool"
|
35
|
+
spec.add_dependency "connection_pool", "~> 2.0"
|
36
36
|
spec.add_dependency "dry-initializer", "~> 3.0"
|
37
|
-
spec.add_dependency "dry-struct"
|
38
|
-
spec.add_dependency "waterdrop", "~> 2.
|
37
|
+
spec.add_dependency "dry-struct", "~> 1.5"
|
38
|
+
spec.add_dependency "waterdrop", "~> 2.7", "< 2.8"
|
39
39
|
spec.add_dependency "zeitwerk", "~> 2.6"
|
40
|
-
spec.add_dependency "yabeda", "
|
40
|
+
spec.add_dependency "yabeda", "~> 0.11"
|
41
41
|
|
42
42
|
spec.add_development_dependency "appraisal", ">= 2.4"
|
43
43
|
spec.add_development_dependency "bundler", ">= 2.1"
|
@@ -47,7 +47,7 @@ Gem::Specification.new do |spec|
|
|
47
47
|
spec.add_development_dependency "opentelemetry-common", ">= 0.17.0"
|
48
48
|
spec.add_development_dependency "opentelemetry-instrumentation-base", ">= 0.17.0"
|
49
49
|
spec.add_development_dependency "rake", ">= 13.0"
|
50
|
-
spec.add_development_dependency "rails", ">= 6.
|
50
|
+
spec.add_development_dependency "rails", ">= 6.1"
|
51
51
|
spec.add_development_dependency "rspec", ">= 3.0"
|
52
52
|
spec.add_development_dependency "rspec_junit_formatter", ">= 0.6"
|
53
53
|
spec.add_development_dependency "rspec-rails", ">= 4.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sbmt-kafka_producer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Kuper Ruby-Platform Team
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: anyway_config
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: connection_pool
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
33
|
+
version: '2.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
40
|
+
version: '2.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: dry-initializer
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,36 +56,36 @@ dependencies:
|
|
56
56
|
name: dry-struct
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '1.5'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '1.5'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: waterdrop
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '2.
|
75
|
+
version: '2.7'
|
76
76
|
- - "<"
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version: '2.
|
78
|
+
version: '2.8'
|
79
79
|
type: :runtime
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
83
|
- - "~>"
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version: '2.
|
85
|
+
version: '2.7'
|
86
86
|
- - "<"
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: '2.
|
88
|
+
version: '2.8'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: zeitwerk
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -104,14 +104,14 @@ dependencies:
|
|
104
104
|
name: yabeda
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
|
-
- - "
|
107
|
+
- - "~>"
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0.11'
|
110
110
|
type: :runtime
|
111
111
|
prerelease: false
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
|
-
- - "
|
114
|
+
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0.11'
|
117
117
|
- !ruby/object:Gem::Dependency
|
@@ -232,14 +232,14 @@ dependencies:
|
|
232
232
|
requirements:
|
233
233
|
- - ">="
|
234
234
|
- !ruby/object:Gem::Version
|
235
|
-
version: '6.
|
235
|
+
version: '6.1'
|
236
236
|
type: :development
|
237
237
|
prerelease: false
|
238
238
|
version_requirements: !ruby/object:Gem::Requirement
|
239
239
|
requirements:
|
240
240
|
- - ">="
|
241
241
|
- !ruby/object:Gem::Version
|
242
|
-
version: '6.
|
242
|
+
version: '6.1'
|
243
243
|
- !ruby/object:Gem::Dependency
|
244
244
|
name: rspec
|
245
245
|
requirement: !ruby/object:Gem::Requirement
|
@@ -402,14 +402,14 @@ files:
|
|
402
402
|
- lib/sbmt/kafka_producer/yabeda_configurer.rb
|
403
403
|
- rubocop/rspec.yml
|
404
404
|
- sbmt-kafka_producer.gemspec
|
405
|
-
homepage: https://github.com/
|
405
|
+
homepage: https://github.com/Kuper-Tech/sbmt-kafka_producer
|
406
406
|
licenses:
|
407
407
|
- MIT
|
408
408
|
metadata:
|
409
409
|
allowed_push_host: https://rubygems.org
|
410
|
-
homepage_uri: https://github.com/
|
411
|
-
source_code_uri: https://github.com/
|
412
|
-
changelog_uri: https://github.com/
|
410
|
+
homepage_uri: https://github.com/Kuper-Tech/sbmt-kafka_producer
|
411
|
+
source_code_uri: https://github.com/Kuper-Tech/sbmt-kafka_producer
|
412
|
+
changelog_uri: https://github.com/Kuper-Tech/sbmt-kafka_producer/blob/master/CHANGELOG.md
|
413
413
|
rubygems_mfa_required: 'false'
|
414
414
|
post_install_message:
|
415
415
|
rdoc_options: []
|
@@ -419,14 +419,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
419
419
|
requirements:
|
420
420
|
- - ">="
|
421
421
|
- !ruby/object:Gem::Version
|
422
|
-
version:
|
422
|
+
version: 3.0.0
|
423
423
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
424
424
|
requirements:
|
425
425
|
- - ">="
|
426
426
|
- !ruby/object:Gem::Version
|
427
427
|
version: '0'
|
428
428
|
requirements: []
|
429
|
-
rubygems_version: 3.5.
|
429
|
+
rubygems_version: 3.5.11
|
430
430
|
signing_key:
|
431
431
|
specification_version: 4
|
432
432
|
summary: Ruby gem for producing Kafka messages
|