rdkafka 0.8.0.beta.1 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.semaphore/semaphore.yml +23 -0
  3. data/CHANGELOG.md +18 -0
  4. data/README.md +5 -2
  5. data/docker-compose.yml +2 -0
  6. data/ext/README.md +7 -0
  7. data/ext/Rakefile +2 -1
  8. data/lib/rdkafka/abstract_handle.rb +82 -0
  9. data/lib/rdkafka/admin/create_topic_handle.rb +27 -0
  10. data/lib/rdkafka/admin/create_topic_report.rb +22 -0
  11. data/lib/rdkafka/admin/delete_topic_handle.rb +27 -0
  12. data/lib/rdkafka/admin/delete_topic_report.rb +22 -0
  13. data/lib/rdkafka/admin.rb +155 -0
  14. data/lib/rdkafka/bindings.rb +57 -18
  15. data/lib/rdkafka/callbacks.rb +106 -0
  16. data/lib/rdkafka/config.rb +59 -3
  17. data/lib/rdkafka/consumer.rb +125 -5
  18. data/lib/rdkafka/error.rb +29 -3
  19. data/lib/rdkafka/metadata.rb +6 -5
  20. data/lib/rdkafka/producer/delivery_handle.rb +7 -53
  21. data/lib/rdkafka/producer.rb +25 -11
  22. data/lib/rdkafka/version.rb +3 -3
  23. data/lib/rdkafka.rb +7 -0
  24. data/spec/rdkafka/abstract_handle_spec.rb +114 -0
  25. data/spec/rdkafka/admin/create_topic_handle_spec.rb +52 -0
  26. data/spec/rdkafka/admin/create_topic_report_spec.rb +16 -0
  27. data/spec/rdkafka/admin/delete_topic_handle_spec.rb +52 -0
  28. data/spec/rdkafka/admin/delete_topic_report_spec.rb +16 -0
  29. data/spec/rdkafka/admin_spec.rb +203 -0
  30. data/spec/rdkafka/bindings_spec.rb +32 -8
  31. data/spec/rdkafka/callbacks_spec.rb +20 -0
  32. data/spec/rdkafka/config_spec.rb +76 -7
  33. data/spec/rdkafka/consumer_spec.rb +266 -2
  34. data/spec/rdkafka/error_spec.rb +4 -0
  35. data/spec/rdkafka/metadata_spec.rb +78 -0
  36. data/spec/rdkafka/producer/delivery_handle_spec.rb +1 -41
  37. data/spec/rdkafka/producer_spec.rb +98 -31
  38. data/spec/spec_helper.rb +28 -11
  39. metadata +32 -9
  40. data/.travis.yml +0 -45
data/spec/spec_helper.rb CHANGED
@@ -1,20 +1,14 @@
1
- require "simplecov"
2
- SimpleCov.start do
3
- add_filter "/spec/"
1
+ unless ENV["CI"] == "true"
2
+ require "simplecov"
3
+ SimpleCov.start do
4
+ add_filter "/spec/"
5
+ end
4
6
  end
5
7
 
6
8
  require "pry"
7
9
  require "rspec"
8
10
  require "rdkafka"
9
11
 
10
- `docker-compose exec kafka kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 3 --if-not-exists --topic consume_test_topic`
11
- `docker-compose exec kafka kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 3 --if-not-exists --topic empty_test_topic`
12
- `docker-compose exec kafka kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 3 --if-not-exists --topic load_test_topic`
13
- `docker-compose exec kafka kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 3 --if-not-exists --topic produce_test_topic`
14
- `docker-compose exec kafka kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 3 --if-not-exists --topic rake_test_topic`
15
- `docker-compose exec kafka kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 3 --if-not-exists --topic watermarks_test_topic`
16
- `docker-compose exec kafka kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 25 --if-not-exists --topic partitioner_test_topic`
17
-
18
12
  def rdkafka_config(config_overrides={})
19
13
  config = {
20
14
  :"api.version.request" => false,
@@ -79,3 +73,26 @@ def wait_for_unassignment(consumer)
79
73
  sleep 1
80
74
  end
81
75
  end
76
+
77
+ RSpec.configure do |config|
78
+ config.before(:suite) do
79
+ admin = rdkafka_config.admin
80
+ {
81
+ consume_test_topic: 3,
82
+ empty_test_topic: 3,
83
+ load_test_topic: 3,
84
+ produce_test_topic: 3,
85
+ rake_test_topic: 3,
86
+ watermarks_test_topic: 3,
87
+ partitioner_test_topic: 25,
88
+ }.each do |topic, partitions|
89
+ create_topic_handle = admin.create_topic(topic.to_s, partitions, 1)
90
+ begin
91
+ create_topic_handle.wait(max_wait_timeout: 15)
92
+ rescue Rdkafka::RdkafkaError => ex
93
+ raise unless ex.message.match?(/topic_already_exists/)
94
+ end
95
+ end
96
+ admin.close
97
+ end
98
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdkafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0.beta.1
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thijs Cadier
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-30 00:00:00.000000000 Z
11
+ date: 2021-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -117,7 +117,7 @@ extensions:
117
117
  extra_rdoc_files: []
118
118
  files:
119
119
  - ".gitignore"
120
- - ".travis.yml"
120
+ - ".semaphore/semaphore.yml"
121
121
  - ".yardopts"
122
122
  - CHANGELOG.md
123
123
  - Gemfile
@@ -128,7 +128,14 @@ files:
128
128
  - ext/README.md
129
129
  - ext/Rakefile
130
130
  - lib/rdkafka.rb
131
+ - lib/rdkafka/abstract_handle.rb
132
+ - lib/rdkafka/admin.rb
133
+ - lib/rdkafka/admin/create_topic_handle.rb
134
+ - lib/rdkafka/admin/create_topic_report.rb
135
+ - lib/rdkafka/admin/delete_topic_handle.rb
136
+ - lib/rdkafka/admin/delete_topic_report.rb
131
137
  - lib/rdkafka/bindings.rb
138
+ - lib/rdkafka/callbacks.rb
132
139
  - lib/rdkafka/config.rb
133
140
  - lib/rdkafka/consumer.rb
134
141
  - lib/rdkafka/consumer/headers.rb
@@ -142,13 +149,21 @@ files:
142
149
  - lib/rdkafka/producer/delivery_report.rb
143
150
  - lib/rdkafka/version.rb
144
151
  - rdkafka.gemspec
152
+ - spec/rdkafka/abstract_handle_spec.rb
153
+ - spec/rdkafka/admin/create_topic_handle_spec.rb
154
+ - spec/rdkafka/admin/create_topic_report_spec.rb
155
+ - spec/rdkafka/admin/delete_topic_handle_spec.rb
156
+ - spec/rdkafka/admin/delete_topic_report_spec.rb
157
+ - spec/rdkafka/admin_spec.rb
145
158
  - spec/rdkafka/bindings_spec.rb
159
+ - spec/rdkafka/callbacks_spec.rb
146
160
  - spec/rdkafka/config_spec.rb
147
161
  - spec/rdkafka/consumer/message_spec.rb
148
162
  - spec/rdkafka/consumer/partition_spec.rb
149
163
  - spec/rdkafka/consumer/topic_partition_list_spec.rb
150
164
  - spec/rdkafka/consumer_spec.rb
151
165
  - spec/rdkafka/error_spec.rb
166
+ - spec/rdkafka/metadata_spec.rb
152
167
  - spec/rdkafka/producer/delivery_handle_spec.rb
153
168
  - spec/rdkafka/producer/delivery_report_spec.rb
154
169
  - spec/rdkafka/producer_spec.rb
@@ -157,7 +172,7 @@ homepage: https://github.com/thijsc/rdkafka-ruby
157
172
  licenses:
158
173
  - MIT
159
174
  metadata: {}
160
- post_install_message:
175
+ post_install_message:
161
176
  rdoc_options: []
162
177
  require_paths:
163
178
  - lib
@@ -168,24 +183,32 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
183
  version: '2.4'
169
184
  required_rubygems_version: !ruby/object:Gem::Requirement
170
185
  requirements:
171
- - - ">"
186
+ - - ">="
172
187
  - !ruby/object:Gem::Version
173
- version: 1.3.1
188
+ version: '0'
174
189
  requirements: []
175
- rubygems_version: 3.1.2
176
- signing_key:
190
+ rubygems_version: 3.1.4
191
+ signing_key:
177
192
  specification_version: 4
178
193
  summary: The rdkafka gem is a modern Kafka client library for Ruby based on librdkafka.
179
194
  It wraps the production-ready C client using the ffi gem and targets Kafka 1.0+
180
195
  and Ruby 2.4+.
181
196
  test_files:
197
+ - spec/rdkafka/abstract_handle_spec.rb
198
+ - spec/rdkafka/admin/create_topic_handle_spec.rb
199
+ - spec/rdkafka/admin/create_topic_report_spec.rb
200
+ - spec/rdkafka/admin/delete_topic_handle_spec.rb
201
+ - spec/rdkafka/admin/delete_topic_report_spec.rb
202
+ - spec/rdkafka/admin_spec.rb
182
203
  - spec/rdkafka/bindings_spec.rb
204
+ - spec/rdkafka/callbacks_spec.rb
183
205
  - spec/rdkafka/config_spec.rb
184
206
  - spec/rdkafka/consumer/message_spec.rb
185
207
  - spec/rdkafka/consumer/partition_spec.rb
186
208
  - spec/rdkafka/consumer/topic_partition_list_spec.rb
187
209
  - spec/rdkafka/consumer_spec.rb
188
210
  - spec/rdkafka/error_spec.rb
211
+ - spec/rdkafka/metadata_spec.rb
189
212
  - spec/rdkafka/producer/delivery_handle_spec.rb
190
213
  - spec/rdkafka/producer/delivery_report_spec.rb
191
214
  - spec/rdkafka/producer_spec.rb
data/.travis.yml DELETED
@@ -1,45 +0,0 @@
1
- language: ruby
2
-
3
- sudo: false
4
-
5
- services:
6
- - docker
7
-
8
- env:
9
- global:
10
- - CC_TEST_REPORTER_ID=9f7f740ac1b6e264e1189fa07a6687a87bcdb9f3c0f4199d4344ab3b538e187e
11
- - KAFKA_HEAP_OPTS="-Xmx512m -Xms512m"
12
-
13
- rvm:
14
- - 2.4
15
- - 2.5
16
- - 2.6
17
- - jruby-9.2.9.0
18
-
19
- before_install:
20
- - gem update --system
21
- - |
22
- r_eng="$(ruby -e 'STDOUT.write RUBY_ENGINE')";
23
- if [ "$r_eng" == "jruby" ]; then
24
- sudo apt-get update && \
25
- sudo apt-get install -y git && \
26
- sudo apt-get install -y libpthread-stubs0-dev && \
27
- sudo apt-get install -y build-essential && \
28
- sudo apt-get install -y zlib1g-dev && \
29
- sudo apt-get install -y libssl-dev && \
30
- sudo apt-get install -y libsasl2-dev
31
- fi
32
-
33
- before_script:
34
- - docker-compose up -d
35
- - cd ext && bundle exec rake && cd ..
36
- - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
37
- - chmod +x ./cc-test-reporter
38
- - ./cc-test-reporter before-build
39
-
40
- script:
41
- - bundle exec rspec --format documentation
42
-
43
- after_script:
44
- - docker-compose stop
45
- - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT