waterdrop 1.3.4 → 1.4.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be82179c0912125f1c5e03255a9990f6f6de8e11af94b84f9c7d57f1a07c8b82
4
- data.tar.gz: 422b73c67f3166130b24839f773b0f6ab8e3349225a0cb75b1c1551fe70cab4b
3
+ metadata.gz: d805514cfb3af2c6b95b391eb5a04380146e820ac58d6feb917c3f05de38e880
4
+ data.tar.gz: 87812de0c350f9dccd07e7547a8a894fca18b406b18fff29531155c8cbdbba67
5
5
  SHA512:
6
- metadata.gz: 19563b33071dbcca24d81454f5b838dcf1e2d973a4e464a1f28aecec814bc3bc6f24d2df685aacef5ab76b52247ba157e35687cff970008ab70f9ac66eba0847
7
- data.tar.gz: 3d671e633fe1f9647cb55688943749e896dfd6b5cb015a70d735d10bace38daf30d66d0ae1d628368efeaae59c3074a4059d9e06eb5e040af09bf2a9c0d82534
6
+ metadata.gz: fa11c319429bdf23ba21ee9b75f15741f58eec5bb957cc02ee4fc01e99d77c3fdf10a14d10740311cc3e612d3a00072406e1bab1d196266764cf5459d1985ef0
7
+ data.tar.gz: d0ef1f7f6fc8f71fa913755bc766b29c41f246cbacbb2946fec646eaa7003865b2be0a2d0b03a64ec9bb9b5e1d9709203ffad03e3f430408199ae8b1610d7db2
checksums.yaml.gz.sig CHANGED
Binary file
data/.diffend.yml ADDED
@@ -0,0 +1,3 @@
1
+ project_id: 'ee590bc9-f375-4832-ac8e-beb174b49aa5'
2
+ shareable_id: '1325b111-b957-4fd8-bd6f-fead41e06034'
3
+ shareable_key: 'd29c6230-8bf6-479b-83ff-98f374d3466e'
@@ -0,0 +1,75 @@
1
+ name: ci
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ schedule:
7
+ - cron: '0 1 * * *'
8
+
9
+ jobs:
10
+ specs:
11
+ runs-on: ubuntu-latest
12
+ needs: diffend
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ ruby:
17
+ - '3.0'
18
+ - '2.7'
19
+ - '2.6'
20
+ - 'jruby-head'
21
+ include:
22
+ - ruby: '3.0'
23
+ coverage: 'true'
24
+ steps:
25
+ - uses: actions/checkout@v2
26
+ - name: Install package dependencies
27
+ run: "[ -e $APT_DEPS ] || sudo apt-get install -y --no-install-recommends $APT_DEPS"
28
+ - name: Set up Ruby
29
+ uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: ${{matrix.ruby}}
32
+ - name: Install latest bundler
33
+ run: |
34
+ gem install bundler --no-document
35
+ bundle config set without 'tools benchmarks docs'
36
+ - name: Bundle install
37
+ run: |
38
+ bundle config set without development
39
+ bundle install --jobs 4 --retry 3
40
+ - name: Run Kafka with docker-compose
41
+ run: docker-compose up -d
42
+ - name: Run all tests
43
+ env:
44
+ GITHUB_COVERAGE: ${{matrix.coverage}}
45
+ run: bundle exec rspec
46
+
47
+ diffend:
48
+ runs-on: ubuntu-latest
49
+ strategy:
50
+ fail-fast: false
51
+ steps:
52
+ - uses: actions/checkout@v2
53
+ with:
54
+ fetch-depth: 0
55
+ - name: Set up Ruby
56
+ uses: ruby/setup-ruby@v1
57
+ with:
58
+ ruby-version: 3.0
59
+ - name: Install latest bundler
60
+ run: gem install bundler --no-document
61
+ - name: Install Diffend plugin
62
+ run: bundle plugin install diffend
63
+ - name: Bundle Secure
64
+ run: bundle secure
65
+
66
+ coditsu:
67
+ runs-on: ubuntu-latest
68
+ strategy:
69
+ fail-fast: false
70
+ steps:
71
+ - uses: actions/checkout@v2
72
+ with:
73
+ fetch-depth: 0
74
+ - name: Run Coditsu
75
+ run: \curl -sSL https://api.coditsu.io/run/ci | bash
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.7.0
1
+ 3.0.2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # WaterDrop changelog
2
2
 
3
+ ## 1.4.4 (2021-10-30)
4
+ - minimum version of ruby-kafka is now 1.3
5
+ - update gems requirements in the gemspec (nijikon)
6
+
7
+ ## 1.4.3 (2021-09-29)
8
+ - Remove Ruby 2.5 support and update minimum Ruby requirement to 2.6
9
+ - fix `dry-configurable` deprecation warnings for default value as positional argument
10
+
11
+ ## 1.4.2 (2021-03-30)
12
+ - Additional 3.0 fixes (ojab)
13
+
14
+ ## 1.4.1 (2021-03-23)
15
+ - Support for Ruby 3.0
16
+
17
+ ## 1.4.0 (2020-08-25)
18
+ - Release to match Karafka 1.4 versioning.
19
+
3
20
  ## 1.3.4 (2020-02-17)
4
21
  - Support for new `dry-configurable`
5
22
 
data/Gemfile.lock CHANGED
@@ -1,95 +1,92 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- waterdrop (1.3.4)
4
+ waterdrop (1.4.4)
5
5
  delivery_boy (>= 0.2, < 2.x)
6
- dry-configurable (~> 0.8)
7
- dry-monitor (~> 0.3)
8
- dry-validation (~> 1.2)
9
- ruby-kafka (>= 0.7.8)
10
- zeitwerk (~> 2.1)
6
+ dry-configurable (~> 0.13)
7
+ dry-monitor (~> 0.5)
8
+ dry-validation (~> 1.7)
9
+ ruby-kafka (>= 1.3.0)
10
+ zeitwerk (~> 2.4)
11
11
 
12
12
  GEM
13
13
  remote: https://rubygems.org/
14
14
  specs:
15
- concurrent-ruby (1.1.6)
16
- delivery_boy (1.0.0)
17
- king_konf (~> 0.3)
18
- ruby-kafka (~> 0.7.8)
19
- diff-lcs (1.3)
20
- digest-crc (0.4.1)
21
- docile (1.3.2)
22
- dry-configurable (0.11.0)
15
+ concurrent-ruby (1.1.9)
16
+ delivery_boy (1.1.0)
17
+ king_konf (~> 1.0)
18
+ ruby-kafka (~> 1.0)
19
+ diff-lcs (1.4.4)
20
+ digest-crc (0.6.4)
21
+ rake (>= 12.0.0, < 14.0.0)
22
+ docile (1.4.0)
23
+ dry-configurable (0.13.0)
23
24
  concurrent-ruby (~> 1.0)
24
- dry-core (~> 0.4, >= 0.4.7)
25
- dry-equalizer (~> 0.2)
26
- dry-container (0.7.2)
25
+ dry-core (~> 0.6)
26
+ dry-container (0.9.0)
27
27
  concurrent-ruby (~> 1.0)
28
- dry-configurable (~> 0.1, >= 0.1.3)
29
- dry-core (0.4.9)
28
+ dry-configurable (~> 0.13, >= 0.13.0)
29
+ dry-core (0.7.1)
30
30
  concurrent-ruby (~> 1.0)
31
- dry-equalizer (0.3.0)
32
- dry-events (0.2.0)
31
+ dry-events (0.3.0)
33
32
  concurrent-ruby (~> 1.0)
34
- dry-core (~> 0.4)
35
- dry-equalizer (~> 0.2)
36
- dry-inflector (0.2.0)
37
- dry-initializer (3.0.3)
38
- dry-logic (1.0.6)
33
+ dry-core (~> 0.5, >= 0.5)
34
+ dry-inflector (0.2.1)
35
+ dry-initializer (3.0.4)
36
+ dry-logic (1.2.0)
39
37
  concurrent-ruby (~> 1.0)
40
- dry-core (~> 0.2)
41
- dry-equalizer (~> 0.2)
42
- dry-monitor (0.3.1)
43
- dry-configurable (~> 0.5)
44
- dry-core (~> 0.4)
45
- dry-equalizer (~> 0.2)
46
- dry-events (~> 0.1)
47
- dry-schema (1.4.3)
38
+ dry-core (~> 0.5, >= 0.5)
39
+ dry-monitor (0.5.0)
40
+ dry-configurable (~> 0.13, >= 0.13.0)
41
+ dry-core (~> 0.5, >= 0.5)
42
+ dry-events (~> 0.2)
43
+ dry-schema (1.8.0)
48
44
  concurrent-ruby (~> 1.0)
49
- dry-configurable (~> 0.8, >= 0.8.3)
50
- dry-core (~> 0.4)
51
- dry-equalizer (~> 0.2)
45
+ dry-configurable (~> 0.13, >= 0.13.0)
46
+ dry-core (~> 0.5, >= 0.5)
52
47
  dry-initializer (~> 3.0)
53
48
  dry-logic (~> 1.0)
54
- dry-types (~> 1.2)
55
- dry-types (1.3.1)
49
+ dry-types (~> 1.5)
50
+ dry-types (1.5.1)
56
51
  concurrent-ruby (~> 1.0)
57
52
  dry-container (~> 0.3)
58
- dry-core (~> 0.4, >= 0.4.4)
59
- dry-equalizer (~> 0.3)
53
+ dry-core (~> 0.5, >= 0.5)
60
54
  dry-inflector (~> 0.1, >= 0.1.2)
61
55
  dry-logic (~> 1.0, >= 1.0.2)
62
- dry-validation (1.4.2)
56
+ dry-validation (1.7.0)
63
57
  concurrent-ruby (~> 1.0)
64
58
  dry-container (~> 0.7, >= 0.7.1)
65
- dry-core (~> 0.4)
66
- dry-equalizer (~> 0.2)
59
+ dry-core (~> 0.5, >= 0.5)
67
60
  dry-initializer (~> 3.0)
68
- dry-schema (~> 1.4, >= 1.4.3)
69
- king_konf (0.3.7)
70
- rspec (3.9.0)
71
- rspec-core (~> 3.9.0)
72
- rspec-expectations (~> 3.9.0)
73
- rspec-mocks (~> 3.9.0)
74
- rspec-core (3.9.1)
75
- rspec-support (~> 3.9.1)
76
- rspec-expectations (3.9.0)
61
+ dry-schema (~> 1.8, >= 1.8.0)
62
+ king_konf (1.0.0)
63
+ rake (13.0.6)
64
+ rspec (3.10.0)
65
+ rspec-core (~> 3.10.0)
66
+ rspec-expectations (~> 3.10.0)
67
+ rspec-mocks (~> 3.10.0)
68
+ rspec-core (3.10.1)
69
+ rspec-support (~> 3.10.0)
70
+ rspec-expectations (3.10.1)
77
71
  diff-lcs (>= 1.2.0, < 2.0)
78
- rspec-support (~> 3.9.0)
79
- rspec-mocks (3.9.1)
72
+ rspec-support (~> 3.10.0)
73
+ rspec-mocks (3.10.2)
80
74
  diff-lcs (>= 1.2.0, < 2.0)
81
- rspec-support (~> 3.9.0)
82
- rspec-support (3.9.2)
83
- ruby-kafka (0.7.10)
75
+ rspec-support (~> 3.10.0)
76
+ rspec-support (3.10.2)
77
+ ruby-kafka (1.4.0)
84
78
  digest-crc
85
- simplecov (0.18.2)
79
+ simplecov (0.21.2)
86
80
  docile (~> 1.1)
87
81
  simplecov-html (~> 0.11)
88
- simplecov-html (0.12.0)
89
- zeitwerk (2.2.2)
82
+ simplecov_json_formatter (~> 0.1)
83
+ simplecov-html (0.12.3)
84
+ simplecov_json_formatter (0.1.3)
85
+ zeitwerk (2.5.1)
90
86
 
91
87
  PLATFORMS
92
- ruby
88
+ x86_64-darwin
89
+ x86_64-linux
93
90
 
94
91
  DEPENDENCIES
95
92
  rspec
@@ -97,4 +94,4 @@ DEPENDENCIES
97
94
  waterdrop!
98
95
 
99
96
  BUNDLED WITH
100
- 2.1.4
97
+ 2.2.29
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # WaterDrop
2
2
 
3
3
  [![Build Status](https://travis-ci.org/karafka/waterdrop.svg)](https://travis-ci.org/karafka/waterdrop)
4
- [![Join the chat at https://gitter.im/karafka/karafka](https://badges.gitter.im/karafka/karafka.svg)](https://gitter.im/karafka/karafka?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4
+ [![Join the chat at https://slack.karafka.io](https://raw.githubusercontent.com/karafka/misc/master/slack.svg)](https://slack.karafka.io)
5
5
 
6
6
  Gem used to send messages to Kafka in an easy way with an extra validation layer. It is a part of the [Karafka](https://github.com/karafka/karafka) ecosystem.
7
7
 
@@ -116,12 +116,8 @@ Keep in mind, that message you want to send should be either binary or stringifi
116
116
 
117
117
  ## Note on contributions
118
118
 
119
- First, thank you for considering contributing to WaterDrop! It's people like you that make the open source community such a great community!
119
+ First, thank you for considering contributing to the Karafka ecosystem! It's people like you that make the open source community such a great community!
120
120
 
121
- Each pull request must pass all the RSpec specs and meet our quality requirements.
121
+ Each pull request must pass all the RSpec specs, integration tests and meet our quality requirements.
122
122
 
123
- To check if everything is as it should be, we use [Coditsu](https://coditsu.io) that combines multiple linters and code analyzers for both code and documentation. Once you're done with your changes, submit a pull request.
124
-
125
- Coditsu will automatically check your work against our quality standards. You can find your commit check results on the [builds page](https://app.coditsu.io/karafka/repositories/waterdrop/builds/commit_builds) of WaterDrop repository.
126
-
127
- [![coditsu](https://coditsu.io/assets/quality_bar.svg)](https://app.coditsu.io/karafka/repositories/waterdrop/builds/commit_builds)
123
+ Fork it, update and wait for the Github Actions results.
data/certs/mensfeld.pem CHANGED
@@ -1,25 +1,25 @@
1
1
  -----BEGIN CERTIFICATE-----
2
2
  MIIEODCCAqCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhtYWNp
3
- ZWovREM9bWVuc2ZlbGQvREM9cGwwHhcNMTkwNzMwMTQ1NDU0WhcNMjAwNzI5MTQ1
4
- NDU0WjAjMSEwHwYDVQQDDBhtYWNpZWovREM9bWVuc2ZlbGQvREM9cGwwggGiMA0G
5
- CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC9fCwtaHZG2SyyNXiH8r0QbJQx/xxl
6
- dkvwWz9QGJO+O8rEx20FB1Ab+MVkfOscwIv5jWpmk1U9whzDPl1uFtIbgu+sk+Zb
7
- uQlZyK/DPN6c+/BbBL+RryTBRyvkPLoCVwm7uxc/JZ1n4AI6eF4cCZ2ieZ9QgQbU
8
- MQs2QPqs9hT50Ez/40GnOdadVfiDDGz+NME2C4ms0BriXwZ1tcRTfJIHe2xjIbbb
9
- y5qRGfsLKcgMzvLQR24olixyX1MR0s4+Wveq3QL/gBhL4veUcv+UABJA8IJR0kyB
10
- seHHutusiwZ1v3SjjjW1xLLrc2ARV0mgCb0WaK2T4iA3oFTGLh6Ydz8LNl31KQFv
11
- 94nRd8IhmJxrhQ6dQ/WT9IXoa5S9lfT5lPJeINemH4/6QPABzf9W2IZlCdI9wCdB
12
- TBaw57MKneGAYZiKjw6OALSy2ltQUCl3RqFl3VP7n8uFy1U987Q5VIIQ3O1UUsQD
13
- Oe/h+r7GUU4RSPKgPlrwvW9bD/UQ+zF51v8CAwEAAaN3MHUwCQYDVR0TBAIwADAL
14
- BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFJNIBHdfEUD7TqHqIer2YhWaWhwcMB0GA1Ud
3
+ ZWovREM9bWVuc2ZlbGQvREM9cGwwHhcNMjEwODExMTQxNTEzWhcNMjIwODExMTQx
4
+ NTEzWjAjMSEwHwYDVQQDDBhtYWNpZWovREM9bWVuc2ZlbGQvREM9cGwwggGiMA0G
5
+ CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDV2jKH4Ti87GM6nyT6D+ESzTI0MZDj
6
+ ak2/TEwnxvijMJyCCPKT/qIkbW4/f0VHM4rhPr1nW73sb5SZBVFCLlJcOSKOBdUY
7
+ TMY+SIXN2EtUaZuhAOe8LxtxjHTgRHvHcqUQMBENXTISNzCo32LnUxweu66ia4Pd
8
+ 1mNRhzOqNv9YiBZvtBf7IMQ+sYdOCjboq2dlsWmJiwiDpY9lQBTnWORnT3mQxU5x
9
+ vPSwnLB854cHdCS8fQo4DjeJBRZHhEbcE5sqhEMB3RZA3EtFVEXOxlNxVTS3tncI
10
+ qyNXiWDaxcipaens4ObSY1C2HTV7OWb7OMqSCIybeYTSfkaSdqmcl4S6zxXkjH1J
11
+ tnjayAVzD+QVXGijsPLE2PFnJAh9iDET2cMsjabO1f6l1OQNyAtqpcyQcgfnyW0z
12
+ g7tGxTYD+6wJHffM9d9txOUw6djkF6bDxyqB8lo4Z3IObCx18AZjI9XPS9QG7w6q
13
+ LCWuMG2lkCcRgASqaVk9fEf9yMc2xxz5o3kCAwEAAaN3MHUwCQYDVR0TBAIwADAL
14
+ BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFBqUFCKCOe5IuueUVqOB991jyCLLMB0GA1Ud
15
15
  EQQWMBSBEm1hY2llakBtZW5zZmVsZC5wbDAdBgNVHRIEFjAUgRJtYWNpZWpAbWVu
16
- c2ZlbGQucGwwDQYJKoZIhvcNAQELBQADggGBAKA4eqko6BTNhlysip6rfBkVTGri
17
- ZXsL+kRb2hLvsQJS/kLyM21oMlu+LN0aPj3qEFR8mE/YeDD8rLAfruBRTltPNbR7
18
- xA5eE1gkxY5LfExUtK3b2wPqfmo7mZgfcsMwfYg/tUXw1WpBCnrhAJodpGH6SXmp
19
- A40qFUZst0vjiOoO+aTblIHPmMJXoZ3K42dTlNKlEiDKUWMRKSgpjjYGEYalFNWI
20
- hHfCz2r8L2t+dYdMZg1JGbEkq4ADGsAA8ioZIpJd7V4hI17u5TCdi7X5wh/0gN0E
21
- CgP+nLox3D+l2q0QuQEkayr+auFYkzTCkF+BmEk1D0Ru4mcf3F4CJvEmW4Pzbjqt
22
- i1tsCWPtJ4E/UUKnKaWKqGbjrjHJ0MuShYzHkodox5IOiCXIQg+1+YSzfXUV6WEK
23
- KJG/fhg1JV5vVDdVy6x+tv5SQ5ctU0feCsVfESi3rE3zRd+nvzE9HcZ5aXeL1UtJ
24
- nT5Xrioegu2w1jPyVEgyZgTZC5rvD0nNS5sFNQ==
16
+ c2ZlbGQucGwwDQYJKoZIhvcNAQELBQADggGBADD0/UuTTFgW+CGk2U0RDw2RBOca
17
+ W2LTF/G7AOzuzD0Tc4voc7WXyrgKwJREv8rgBimLnNlgmFJLmtUCh2U/MgxvcilH
18
+ yshYcbseNvjkrtYnLRlWZR4SSB6Zei5AlyGVQLPkvdsBpNegcG6w075YEwzX/38a
19
+ 8V9B/Yri2OGELBz8ykl7BsXUgNoUPA/4pHF6YRLz+VirOaUIQ4JfY7xGj6fSOWWz
20
+ /rQ/d77r6o1mfJYM/3BRVg73a3b7DmRnE5qjwmSaSQ7u802pJnLesmArch0xGCT/
21
+ fMmRli1Qb+6qOTl9mzD6UDMAyFR4t6MStLm0mIEqM0nBO5nUdUWbC7l9qXEf8XBE
22
+ 2DP28p3EqSuS+lKbAWKcqv7t0iRhhmaod+Yn9mcrLN1sa3q3KSQ9BCyxezCD4Mk2
23
+ R2P11bWoCtr70BsccVrN8jEhzwXngMyI2gVt750Y+dbTu1KgRqZKp/ECe7ZzPzXj
24
+ pIy9vHxTANKYVyI4qj8OrFdEM5BQNu8oQpL0iQ==
25
25
  -----END CERTIFICATE-----
@@ -0,0 +1,17 @@
1
+ version: '2'
2
+ services:
3
+ zookeeper:
4
+ image: wurstmeister/zookeeper
5
+ ports:
6
+ - "2181:2181"
7
+ kafka:
8
+ image: wurstmeister/kafka:1.0.1
9
+ ports:
10
+ - "9092:9092"
11
+ environment:
12
+ KAFKA_ADVERTISED_HOST_NAME: localhost
13
+ KAFKA_ADVERTISED_PORT: 9092
14
+ KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
15
+ KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
16
+ volumes:
17
+ - /var/run/docker.sock:/var/run/docker.sock
@@ -15,20 +15,20 @@ module WaterDrop
15
15
 
16
16
  # WaterDrop options
17
17
  # option client_id [String] identifier of this producer
18
- setting :client_id, 'waterdrop'
18
+ setting :client_id, default: 'waterdrop'
19
19
  # option [Instance, nil] logger that we want to use or nil to fallback to ruby-kafka logger
20
- setting :logger, Logger.new($stdout, level: Logger::WARN)
20
+ setting :logger, default: Logger.new($stdout, level: Logger::WARN)
21
21
  # option [Instance] monitor that we want to use. See instrumentation part of the README for
22
22
  # more details
23
- setting :monitor, WaterDrop::Instrumentation::Monitor.new
23
+ setting :monitor, default: WaterDrop::Instrumentation::Monitor.new
24
24
  # option [Boolean] should we send messages. Setting this to false can be really useful when
25
25
  # testing and or developing because when set to false, won't actually ping Kafka
26
- setting :deliver, true
26
+ setting :deliver, default: true
27
27
  # option [Boolean] if you're producing messages faster than the framework or the network can
28
28
  # send them off, ruby-kafka might reject them. If that happens, WaterDrop will either raise
29
29
  # or ignore - this setting manages that behavior. This only applies to async producer as
30
30
  # sync producer will always raise upon problems
31
- setting :raise_on_buffer_overflow, true
31
+ setting :raise_on_buffer_overflow, default: true
32
32
 
33
33
  # Settings directly related to the Kafka driver
34
34
  setting :kafka do
@@ -39,99 +39,99 @@ module WaterDrop
39
39
  # option connect_timeout [Integer] Sets the number of seconds to wait while connecting to
40
40
  # a broker for the first time. When ruby-kafka initializes, it needs to connect to at
41
41
  # least one host.
42
- setting :connect_timeout, 10
42
+ setting :connect_timeout, default: 10
43
43
  # option socket_timeout [Integer] Sets the number of seconds to wait when reading from or
44
44
  # writing to a socket connection to a broker. After this timeout expires the connection
45
45
  # will be killed. Note that some Kafka operations are by definition long-running, such as
46
46
  # waiting for new messages to arrive in a partition, so don't set this value too low
47
- setting :socket_timeout, 30
47
+ setting :socket_timeout, default: 30
48
48
 
49
49
  # Buffering for async producer
50
50
  # @option [Integer] The maximum number of bytes allowed in the buffer before new messages
51
51
  # are rejected.
52
- setting :max_buffer_bytesize, 10_000_000
52
+ setting :max_buffer_bytesize, default: 10_000_000
53
53
  # @option [Integer] The maximum number of messages allowed in the buffer before new messages
54
54
  # are rejected.
55
- setting :max_buffer_size, 1000
55
+ setting :max_buffer_size, default: 1000
56
56
  # @option [Integer] The maximum number of messages allowed in the queue before new messages
57
57
  # are rejected. The queue is used to ferry messages from the foreground threads of your
58
58
  # application to the background thread that buffers and delivers messages.
59
- setting :max_queue_size, 1000
59
+ setting :max_queue_size, default: 1000
60
60
 
61
61
  # option [Integer] A timeout executed by a broker when the client is sending messages to it.
62
62
  # It defines the number of seconds the broker should wait for replicas to acknowledge the
63
63
  # write before responding to the client with an error. As such, it relates to the
64
64
  # required_acks setting. It should be set lower than socket_timeout.
65
- setting :ack_timeout, 5
65
+ setting :ack_timeout, default: 5
66
66
  # option [Integer] The number of seconds between background message
67
67
  # deliveries. Default is 10 seconds. Disable timer-based background deliveries by
68
68
  # setting this to 0.
69
- setting :delivery_interval, 10
69
+ setting :delivery_interval, default: 10
70
70
  # option [Integer] The number of buffered messages that will trigger a background message
71
71
  # delivery. Default is 100 messages. Disable buffer size based background deliveries by
72
72
  # setting this to 0.
73
- setting :delivery_threshold, 100
73
+ setting :delivery_threshold, default: 100
74
74
  # option [Boolean]
75
- setting :idempotent, false
75
+ setting :idempotent, default: false
76
76
  # option [Boolean]
77
- setting :transactional, false
77
+ setting :transactional, default: false
78
78
  # option [Integer]
79
- setting :transactional_timeout, 60
79
+ setting :transactional_timeout, default: 60
80
80
 
81
81
  # option [Integer] The number of retries when attempting to deliver messages.
82
- setting :max_retries, 2
82
+ setting :max_retries, default: 2
83
83
  # option [Integer]
84
- setting :required_acks, -1
84
+ setting :required_acks, default: -1
85
85
  # option [Integer]
86
- setting :retry_backoff, 1
86
+ setting :retry_backoff, default: 1
87
87
 
88
88
  # option [Integer] The minimum number of messages that must be buffered before compression is
89
89
  # attempted. By default only one message is required. Only relevant if compression_codec
90
90
  # is set.
91
- setting :compression_threshold, 1
91
+ setting :compression_threshold, default: 1
92
92
  # option [Symbol] The codec used to compress messages. Must be either snappy or gzip.
93
- setting :compression_codec, nil
93
+ setting :compression_codec, default: nil
94
94
 
95
95
  # SSL authentication related settings
96
96
  # option ca_cert [String, nil] SSL CA certificate
97
- setting :ssl_ca_cert, nil
97
+ setting :ssl_ca_cert, default: nil
98
98
  # option ssl_ca_cert_file_path [String, nil] SSL CA certificate file path
99
- setting :ssl_ca_cert_file_path, nil
99
+ setting :ssl_ca_cert_file_path, default: nil
100
100
  # option ssl_ca_certs_from_system [Boolean] Use the CA certs from your system's default
101
101
  # certificate store
102
- setting :ssl_ca_certs_from_system, false
102
+ setting :ssl_ca_certs_from_system, default: false
103
103
  # option ssl_verify_hostname [Boolean] Verify the hostname for client certs
104
- setting :ssl_verify_hostname, true
104
+ setting :ssl_verify_hostname, default: true
105
105
  # option ssl_client_cert [String, nil] SSL client certificate
106
- setting :ssl_client_cert, nil
106
+ setting :ssl_client_cert, default: nil
107
107
  # option ssl_client_cert_key [String, nil] SSL client certificate password
108
- setting :ssl_client_cert_key, nil
108
+ setting :ssl_client_cert_key, default: nil
109
109
  # option sasl_gssapi_principal [String, nil] sasl principal
110
- setting :sasl_gssapi_principal, nil
110
+ setting :sasl_gssapi_principal, default: nil
111
111
  # option sasl_gssapi_keytab [String, nil] sasl keytab
112
- setting :sasl_gssapi_keytab, nil
112
+ setting :sasl_gssapi_keytab, default: nil
113
113
  # option sasl_plain_authzid [String] The authorization identity to use
114
- setting :sasl_plain_authzid, ''
114
+ setting :sasl_plain_authzid, default: ''
115
115
  # option sasl_plain_username [String, nil] The username used to authenticate
116
- setting :sasl_plain_username, nil
116
+ setting :sasl_plain_username, default: nil
117
117
  # option sasl_plain_password [String, nil] The password used to authenticate
118
- setting :sasl_plain_password, nil
118
+ setting :sasl_plain_password, default: nil
119
119
  # option sasl_scram_username [String, nil] The username used to authenticate
120
- setting :sasl_scram_username, nil
120
+ setting :sasl_scram_username, default: nil
121
121
  # option sasl_scram_password [String, nil] The password used to authenticate
122
- setting :sasl_scram_password, nil
122
+ setting :sasl_scram_password, default: nil
123
123
  # option sasl_scram_mechanism [String, nil] Scram mechanism, either 'sha256' or 'sha512'
124
- setting :sasl_scram_mechanism, nil
124
+ setting :sasl_scram_mechanism, default: nil
125
125
  # option sasl_over_ssl [Boolean] whether to enforce SSL with SASL
126
- setting :sasl_over_ssl, true
126
+ setting :sasl_over_ssl, default: true
127
127
  # option ssl_client_cert_chain [String, nil] client cert chain or nil if not used
128
- setting :ssl_client_cert_chain, nil
128
+ setting :ssl_client_cert_chain, default: nil
129
129
  # option ssl_client_cert_key_password [String, nil] the password required to read
130
130
  # the ssl_client_cert_key
131
- setting :ssl_client_cert_key_password, nil
131
+ setting :ssl_client_cert_key_password, default: nil
132
132
  # @param sasl_oauth_token_provider [Object, nil] OAuthBearer Token Provider instance that
133
133
  # implements method token.
134
- setting :sasl_oauth_token_provider, nil
134
+ setting :sasl_oauth_token_provider, default: nil
135
135
  end
136
136
 
137
137
  class << self
@@ -4,6 +4,6 @@ module WaterDrop
4
4
  # Namespace for all the contracts for config validations
5
5
  module Contracts
6
6
  # Regex to check that topic has a valid format
7
- TOPIC_REGEXP = /\A(\w|\-|\.)+\z/.freeze
7
+ TOPIC_REGEXP = /\A(\w|-|\.)+\z/
8
8
  end
9
9
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WaterDrop
4
- # Namespace for all the things related with WaterDrop instrumentation process
5
4
  module Instrumentation
6
5
  # Monitor is used to hookup external monitoring services to monitor how WaterDrop works
7
6
  # Since it is a pub-sub based on dry-monitor, you can use as many subscribers/loggers at the
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WaterDrop
4
+ # Namespace for all the things related with WaterDrop instrumentation process
5
+ module Instrumentation
6
+ end
7
+ end
@@ -16,7 +16,7 @@ module WaterDrop
16
16
  validate!(options)
17
17
  return unless WaterDrop.config.deliver
18
18
 
19
- DeliveryBoy.deliver(message, options)
19
+ DeliveryBoy.deliver(message, **options)
20
20
  rescue Kafka::Error => e
21
21
  graceful_attempt?(attempts_count, message, options, e) ? retry : raise(e)
22
22
  end
@@ -3,5 +3,5 @@
3
3
  # WaterDrop library
4
4
  module WaterDrop
5
5
  # Current WaterDrop version
6
- VERSION = '1.3.4'
6
+ VERSION = '1.4.4'
7
7
  end
data/waterdrop.gemspec CHANGED
@@ -17,13 +17,13 @@ Gem::Specification.new do |spec|
17
17
  spec.license = 'MIT'
18
18
 
19
19
  spec.add_dependency 'delivery_boy', '>= 0.2', '< 2.x'
20
- spec.add_dependency 'dry-configurable', '~> 0.8'
21
- spec.add_dependency 'dry-monitor', '~> 0.3'
22
- spec.add_dependency 'dry-validation', '~> 1.2'
23
- spec.add_dependency 'ruby-kafka', '>= 0.7.8'
24
- spec.add_dependency 'zeitwerk', '~> 2.1'
20
+ spec.add_dependency 'dry-configurable', '~> 0.13'
21
+ spec.add_dependency 'dry-monitor', '~> 0.5'
22
+ spec.add_dependency 'dry-validation', '~> 1.7'
23
+ spec.add_dependency 'ruby-kafka', '>= 1.3.0'
24
+ spec.add_dependency 'zeitwerk', '~> 2.4'
25
25
 
26
- spec.required_ruby_version = '>= 2.5.0'
26
+ spec.required_ruby_version = '>= 2.6.0'
27
27
 
28
28
  if $PROGRAM_NAME.end_with?('gem')
29
29
  spec.signing_key = File.expand_path('~/.ssh/gem-private_key.pem')
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: waterdrop
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.4
4
+ version: 1.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld
@@ -11,30 +11,30 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEODCCAqCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhtYWNp
14
- ZWovREM9bWVuc2ZlbGQvREM9cGwwHhcNMTkwNzMwMTQ1NDU0WhcNMjAwNzI5MTQ1
15
- NDU0WjAjMSEwHwYDVQQDDBhtYWNpZWovREM9bWVuc2ZlbGQvREM9cGwwggGiMA0G
16
- CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC9fCwtaHZG2SyyNXiH8r0QbJQx/xxl
17
- dkvwWz9QGJO+O8rEx20FB1Ab+MVkfOscwIv5jWpmk1U9whzDPl1uFtIbgu+sk+Zb
18
- uQlZyK/DPN6c+/BbBL+RryTBRyvkPLoCVwm7uxc/JZ1n4AI6eF4cCZ2ieZ9QgQbU
19
- MQs2QPqs9hT50Ez/40GnOdadVfiDDGz+NME2C4ms0BriXwZ1tcRTfJIHe2xjIbbb
20
- y5qRGfsLKcgMzvLQR24olixyX1MR0s4+Wveq3QL/gBhL4veUcv+UABJA8IJR0kyB
21
- seHHutusiwZ1v3SjjjW1xLLrc2ARV0mgCb0WaK2T4iA3oFTGLh6Ydz8LNl31KQFv
22
- 94nRd8IhmJxrhQ6dQ/WT9IXoa5S9lfT5lPJeINemH4/6QPABzf9W2IZlCdI9wCdB
23
- TBaw57MKneGAYZiKjw6OALSy2ltQUCl3RqFl3VP7n8uFy1U987Q5VIIQ3O1UUsQD
24
- Oe/h+r7GUU4RSPKgPlrwvW9bD/UQ+zF51v8CAwEAAaN3MHUwCQYDVR0TBAIwADAL
25
- BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFJNIBHdfEUD7TqHqIer2YhWaWhwcMB0GA1Ud
14
+ ZWovREM9bWVuc2ZlbGQvREM9cGwwHhcNMjEwODExMTQxNTEzWhcNMjIwODExMTQx
15
+ NTEzWjAjMSEwHwYDVQQDDBhtYWNpZWovREM9bWVuc2ZlbGQvREM9cGwwggGiMA0G
16
+ CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDV2jKH4Ti87GM6nyT6D+ESzTI0MZDj
17
+ ak2/TEwnxvijMJyCCPKT/qIkbW4/f0VHM4rhPr1nW73sb5SZBVFCLlJcOSKOBdUY
18
+ TMY+SIXN2EtUaZuhAOe8LxtxjHTgRHvHcqUQMBENXTISNzCo32LnUxweu66ia4Pd
19
+ 1mNRhzOqNv9YiBZvtBf7IMQ+sYdOCjboq2dlsWmJiwiDpY9lQBTnWORnT3mQxU5x
20
+ vPSwnLB854cHdCS8fQo4DjeJBRZHhEbcE5sqhEMB3RZA3EtFVEXOxlNxVTS3tncI
21
+ qyNXiWDaxcipaens4ObSY1C2HTV7OWb7OMqSCIybeYTSfkaSdqmcl4S6zxXkjH1J
22
+ tnjayAVzD+QVXGijsPLE2PFnJAh9iDET2cMsjabO1f6l1OQNyAtqpcyQcgfnyW0z
23
+ g7tGxTYD+6wJHffM9d9txOUw6djkF6bDxyqB8lo4Z3IObCx18AZjI9XPS9QG7w6q
24
+ LCWuMG2lkCcRgASqaVk9fEf9yMc2xxz5o3kCAwEAAaN3MHUwCQYDVR0TBAIwADAL
25
+ BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFBqUFCKCOe5IuueUVqOB991jyCLLMB0GA1Ud
26
26
  EQQWMBSBEm1hY2llakBtZW5zZmVsZC5wbDAdBgNVHRIEFjAUgRJtYWNpZWpAbWVu
27
- c2ZlbGQucGwwDQYJKoZIhvcNAQELBQADggGBAKA4eqko6BTNhlysip6rfBkVTGri
28
- ZXsL+kRb2hLvsQJS/kLyM21oMlu+LN0aPj3qEFR8mE/YeDD8rLAfruBRTltPNbR7
29
- xA5eE1gkxY5LfExUtK3b2wPqfmo7mZgfcsMwfYg/tUXw1WpBCnrhAJodpGH6SXmp
30
- A40qFUZst0vjiOoO+aTblIHPmMJXoZ3K42dTlNKlEiDKUWMRKSgpjjYGEYalFNWI
31
- hHfCz2r8L2t+dYdMZg1JGbEkq4ADGsAA8ioZIpJd7V4hI17u5TCdi7X5wh/0gN0E
32
- CgP+nLox3D+l2q0QuQEkayr+auFYkzTCkF+BmEk1D0Ru4mcf3F4CJvEmW4Pzbjqt
33
- i1tsCWPtJ4E/UUKnKaWKqGbjrjHJ0MuShYzHkodox5IOiCXIQg+1+YSzfXUV6WEK
34
- KJG/fhg1JV5vVDdVy6x+tv5SQ5ctU0feCsVfESi3rE3zRd+nvzE9HcZ5aXeL1UtJ
35
- nT5Xrioegu2w1jPyVEgyZgTZC5rvD0nNS5sFNQ==
27
+ c2ZlbGQucGwwDQYJKoZIhvcNAQELBQADggGBADD0/UuTTFgW+CGk2U0RDw2RBOca
28
+ W2LTF/G7AOzuzD0Tc4voc7WXyrgKwJREv8rgBimLnNlgmFJLmtUCh2U/MgxvcilH
29
+ yshYcbseNvjkrtYnLRlWZR4SSB6Zei5AlyGVQLPkvdsBpNegcG6w075YEwzX/38a
30
+ 8V9B/Yri2OGELBz8ykl7BsXUgNoUPA/4pHF6YRLz+VirOaUIQ4JfY7xGj6fSOWWz
31
+ /rQ/d77r6o1mfJYM/3BRVg73a3b7DmRnE5qjwmSaSQ7u802pJnLesmArch0xGCT/
32
+ fMmRli1Qb+6qOTl9mzD6UDMAyFR4t6MStLm0mIEqM0nBO5nUdUWbC7l9qXEf8XBE
33
+ 2DP28p3EqSuS+lKbAWKcqv7t0iRhhmaod+Yn9mcrLN1sa3q3KSQ9BCyxezCD4Mk2
34
+ R2P11bWoCtr70BsccVrN8jEhzwXngMyI2gVt750Y+dbTu1KgRqZKp/ECe7ZzPzXj
35
+ pIy9vHxTANKYVyI4qj8OrFdEM5BQNu8oQpL0iQ==
36
36
  -----END CERTIFICATE-----
37
- date: 2020-02-17 00:00:00.000000000 Z
37
+ date: 2021-10-30 00:00:00.000000000 Z
38
38
  dependencies:
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: delivery_boy
@@ -62,70 +62,70 @@ dependencies:
62
62
  requirements:
63
63
  - - "~>"
64
64
  - !ruby/object:Gem::Version
65
- version: '0.8'
65
+ version: '0.13'
66
66
  type: :runtime
67
67
  prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
69
69
  requirements:
70
70
  - - "~>"
71
71
  - !ruby/object:Gem::Version
72
- version: '0.8'
72
+ version: '0.13'
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: dry-monitor
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: '0.3'
79
+ version: '0.5'
80
80
  type: :runtime
81
81
  prerelease: false
82
82
  version_requirements: !ruby/object:Gem::Requirement
83
83
  requirements:
84
84
  - - "~>"
85
85
  - !ruby/object:Gem::Version
86
- version: '0.3'
86
+ version: '0.5'
87
87
  - !ruby/object:Gem::Dependency
88
88
  name: dry-validation
89
89
  requirement: !ruby/object:Gem::Requirement
90
90
  requirements:
91
91
  - - "~>"
92
92
  - !ruby/object:Gem::Version
93
- version: '1.2'
93
+ version: '1.7'
94
94
  type: :runtime
95
95
  prerelease: false
96
96
  version_requirements: !ruby/object:Gem::Requirement
97
97
  requirements:
98
98
  - - "~>"
99
99
  - !ruby/object:Gem::Version
100
- version: '1.2'
100
+ version: '1.7'
101
101
  - !ruby/object:Gem::Dependency
102
102
  name: ruby-kafka
103
103
  requirement: !ruby/object:Gem::Requirement
104
104
  requirements:
105
105
  - - ">="
106
106
  - !ruby/object:Gem::Version
107
- version: 0.7.8
107
+ version: 1.3.0
108
108
  type: :runtime
109
109
  prerelease: false
110
110
  version_requirements: !ruby/object:Gem::Requirement
111
111
  requirements:
112
112
  - - ">="
113
113
  - !ruby/object:Gem::Version
114
- version: 0.7.8
114
+ version: 1.3.0
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: zeitwerk
117
117
  requirement: !ruby/object:Gem::Requirement
118
118
  requirements:
119
119
  - - "~>"
120
120
  - !ruby/object:Gem::Version
121
- version: '2.1'
121
+ version: '2.4'
122
122
  type: :runtime
123
123
  prerelease: false
124
124
  version_requirements: !ruby/object:Gem::Requirement
125
125
  requirements:
126
126
  - - "~>"
127
127
  - !ruby/object:Gem::Version
128
- version: '2.1'
128
+ version: '2.4'
129
129
  description: Kafka messaging made easy!
130
130
  email:
131
131
  - maciej@mensfeld.pl
@@ -134,12 +134,12 @@ extensions: []
134
134
  extra_rdoc_files: []
135
135
  files:
136
136
  - ".coditsu/ci.yml"
137
- - ".github/FUNDING.yml"
137
+ - ".diffend.yml"
138
+ - ".github/workflows/ci.yml"
138
139
  - ".gitignore"
139
140
  - ".rspec"
140
141
  - ".ruby-gemset"
141
142
  - ".ruby-version"
142
- - ".travis.yml"
143
143
  - CHANGELOG.md
144
144
  - Gemfile
145
145
  - Gemfile.lock
@@ -147,6 +147,7 @@ files:
147
147
  - README.md
148
148
  - certs/mensfeld.pem
149
149
  - config/errors.yml
150
+ - docker-compose.yml
150
151
  - lib/water_drop.rb
151
152
  - lib/water_drop/async_producer.rb
152
153
  - lib/water_drop/base_producer.rb
@@ -156,6 +157,7 @@ files:
156
157
  - lib/water_drop/contracts/config.rb
157
158
  - lib/water_drop/contracts/message_options.rb
158
159
  - lib/water_drop/errors.rb
160
+ - lib/water_drop/instrumentation.rb
159
161
  - lib/water_drop/instrumentation/monitor.rb
160
162
  - lib/water_drop/instrumentation/stdout_listener.rb
161
163
  - lib/water_drop/sync_producer.rb
@@ -175,14 +177,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
175
177
  requirements:
176
178
  - - ">="
177
179
  - !ruby/object:Gem::Version
178
- version: 2.5.0
180
+ version: 2.6.0
179
181
  required_rubygems_version: !ruby/object:Gem::Requirement
180
182
  requirements:
181
183
  - - ">="
182
184
  - !ruby/object:Gem::Version
183
185
  version: '0'
184
186
  requirements: []
185
- rubygems_version: 3.1.2
187
+ rubygems_version: 3.2.25
186
188
  signing_key:
187
189
  specification_version: 4
188
190
  summary: Kafka messaging made easy!
metadata.gz.sig CHANGED
Binary file
data/.github/FUNDING.yml DELETED
@@ -1 +0,0 @@
1
- open_collective: karafka
data/.travis.yml DELETED
@@ -1,35 +0,0 @@
1
- services:
2
- - docker
3
-
4
- dist: trusty
5
- cache: bundler
6
-
7
- git:
8
- depth: false
9
-
10
- test: &test
11
- stage: Test
12
- language: ruby
13
- before_install:
14
- - yes | gem update --system
15
- script: bundle exec rspec
16
-
17
- jobs:
18
- include:
19
- - <<: *test
20
- rvm: 2.7.0
21
- - <<: *test
22
- rvm: 2.6.5
23
- - <<: *test
24
- rvm: 2.5.7
25
-
26
- - stage: coditsu
27
- language: ruby
28
- rvm: 2.7.0
29
- before_install:
30
- - yes | gem update --system
31
- script: \curl -sSL https://api.coditsu.io/run/ci | bash
32
-
33
- stages:
34
- - test
35
- - coditsu