poseidon 0.0.5.pre1 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -3
- data/CHANGES.md +11 -3
- data/README.md +4 -1
- data/Rakefile +1 -1
- data/lib/poseidon.rb +1 -0
- data/lib/poseidon/broker_pool.rb +15 -5
- data/lib/poseidon/compression/gzip_codec.rb +3 -3
- data/lib/poseidon/compression/snappy_codec.rb +14 -2
- data/lib/poseidon/connection.rb +9 -0
- data/lib/poseidon/partition_consumer.rb +5 -5
- data/lib/poseidon/producer.rb +9 -6
- data/lib/poseidon/producer_compression_config.rb +5 -4
- data/lib/poseidon/protocol/request_buffer.rb +5 -14
- data/lib/poseidon/protocol/response_buffer.rb +7 -7
- data/lib/poseidon/sync_producer.rb +5 -3
- data/lib/poseidon/version.rb +1 -1
- data/poseidon.gemspec +2 -1
- data/spec/integration/multiple_brokers/consumer_spec.rb +1 -1
- data/spec/integration/multiple_brokers/metadata_failures_spec.rb +1 -1
- data/spec/integration/multiple_brokers/rebalance_spec.rb +1 -1
- data/spec/integration/multiple_brokers/round_robin_spec.rb +1 -1
- data/spec/integration/simple/compression_spec.rb +2 -2
- data/spec/integration/simple/connection_spec.rb +4 -4
- data/spec/integration/simple/multiple_brokers_spec.rb +1 -1
- data/spec/integration/simple/simple_producer_and_consumer_spec.rb +7 -7
- data/spec/integration/simple/truncated_messages_spec.rb +4 -4
- data/spec/integration/simple/unavailable_broker_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -7
- data/spec/unit/broker_pool_spec.rb +14 -14
- data/spec/unit/cluster_metadata_spec.rb +1 -1
- data/spec/unit/compression/gzip_codec_spec.rb +34 -0
- data/spec/unit/compression/snappy_codec_spec.rb +49 -0
- data/spec/unit/compression_spec.rb +1 -1
- data/spec/unit/connection_spec.rb +1 -1
- data/spec/unit/fetched_message_spec.rb +1 -1
- data/spec/unit/message_conductor_spec.rb +1 -1
- data/spec/unit/message_set_spec.rb +1 -1
- data/spec/unit/message_spec.rb +2 -2
- data/spec/unit/message_to_send_spec.rb +1 -1
- data/spec/unit/messages_for_broker_spec.rb +3 -3
- data/spec/unit/messages_to_send_batch_spec.rb +4 -4
- data/spec/unit/messages_to_send_spec.rb +8 -8
- data/spec/unit/partition_consumer_spec.rb +13 -13
- data/spec/unit/producer_compression_config_spec.rb +8 -1
- data/spec/unit/producer_spec.rb +10 -4
- data/spec/unit/protocol/request_buffer_spec.rb +16 -0
- data/spec/unit/protocol_spec.rb +5 -5
- data/spec/unit/sync_producer_spec.rb +22 -22
- data/spec/unit/topic_metadata_spec.rb +1 -1
- metadata +28 -9
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe MessagesToSend do
|
3
|
+
RSpec.describe MessagesToSend do
|
4
4
|
before(:each) do
|
5
5
|
@messages = []
|
6
6
|
@messages << Message.new(:topic => "test1", :value => "hi")
|
@@ -8,7 +8,7 @@ describe MessagesToSend do
|
|
8
8
|
@messages << Message.new(:topic => "test2", :value => "hi")
|
9
9
|
|
10
10
|
|
11
|
-
@cluster_metadata =
|
11
|
+
@cluster_metadata = double('cluster_metdata').as_null_object
|
12
12
|
@mts = MessagesToSend.new(@messages, @cluster_metadata)
|
13
13
|
end
|
14
14
|
|
@@ -18,21 +18,21 @@ describe MessagesToSend do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
it "asks ClusterMetadata about having metadata" do
|
21
|
-
@cluster_metadata.
|
21
|
+
allow(@cluster_metadata).to receive(:have_metadata_for_topics?).and_return(true)
|
22
22
|
|
23
23
|
expect(@mts.needs_metadata?).to eq(false)
|
24
24
|
end
|
25
|
-
end
|
25
|
+
end
|
26
26
|
|
27
27
|
describe "sending" do
|
28
28
|
before(:each) do
|
29
|
-
@mfb =
|
29
|
+
@mfb = double('mfb', :messages => @messages)
|
30
30
|
@messages_for_brokers = [@mfb]
|
31
31
|
|
32
|
-
@mtsb =
|
33
|
-
@mtsb.
|
32
|
+
@mtsb = double('messages_to_send_batch').as_null_object
|
33
|
+
allow(@mtsb).to receive(:messages_for_brokers).and_return(@messages_for_brokers)
|
34
34
|
|
35
|
-
MessagesToSendBatch.
|
35
|
+
allow(MessagesToSendBatch).to receive(:new).and_return(@mtsb)
|
36
36
|
end
|
37
37
|
|
38
38
|
context "is successful" do
|
@@ -1,14 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe PartitionConsumer do
|
3
|
+
RSpec.describe PartitionConsumer do
|
4
4
|
before(:each) do
|
5
|
-
@connection =
|
6
|
-
Connection.
|
5
|
+
@connection = double('connection')
|
6
|
+
allow(Connection).to receive(:new).and_return(@connection)
|
7
7
|
|
8
8
|
offset = Protocol::Offset.new(100)
|
9
9
|
partition_offsets = [Protocol::PartitionOffset.new(0, 0, [offset])]
|
10
10
|
@offset_response = [Protocol::TopicOffsetResponse.new("test_topic", partition_offsets)]
|
11
|
-
@connection.
|
11
|
+
allow(@connection).to receive(:offset).and_return(@offset_response)
|
12
12
|
end
|
13
13
|
|
14
14
|
describe "creation" do
|
@@ -28,7 +28,7 @@ describe PartitionConsumer do
|
|
28
28
|
describe "next offset" do
|
29
29
|
context "when offset is not set" do
|
30
30
|
it "resolves offset if it's not set" do
|
31
|
-
@connection.
|
31
|
+
expect(@connection).to receive(:offset).and_return(@offset_response)
|
32
32
|
pc = PartitionConsumer.new("test_client", "localhost", 9092, "test_topic",
|
33
33
|
0, :earliest_offset)
|
34
34
|
|
@@ -52,7 +52,7 @@ describe PartitionConsumer do
|
|
52
52
|
|
53
53
|
context "when call returns an error" do
|
54
54
|
it "is raised" do
|
55
|
-
@offset_response.first.partition_offsets.first.
|
55
|
+
allow(@offset_response.first.partition_offsets.first).to receive(:error).and_return(2)
|
56
56
|
pc = PartitionConsumer.new("test_client", "localhost", 9092, "test_topic",
|
57
57
|
0, :earliest_offset)
|
58
58
|
|
@@ -65,7 +65,7 @@ describe PartitionConsumer do
|
|
65
65
|
pc = PartitionConsumer.new("test_client", "localhost", 9092, "test_topic",
|
66
66
|
0, :earliest_offset)
|
67
67
|
|
68
|
-
@offset_response.first.partition_offsets.first.
|
68
|
+
allow(@offset_response.first.partition_offsets.first).to receive(:offsets).and_return([])
|
69
69
|
expect(pc.next_offset).to eq(0)
|
70
70
|
end
|
71
71
|
end
|
@@ -86,9 +86,9 @@ describe PartitionConsumer do
|
|
86
86
|
partition_fetch_response = Protocol::PartitionFetchResponse.new(0, 0, 100, message_set)
|
87
87
|
topic_fetch_response = Protocol::TopicFetchResponse.new('test_topic',
|
88
88
|
[partition_fetch_response])
|
89
|
-
@response = Protocol::FetchResponse.new(
|
89
|
+
@response = Protocol::FetchResponse.new(double('common'), [topic_fetch_response])
|
90
90
|
|
91
|
-
@connection.
|
91
|
+
allow(@connection).to receive(:fetch).and_return(@response)
|
92
92
|
@pc = PartitionConsumer.new("test_client", "localhost", 9092, "test_topic", 0, :earliest_offset)
|
93
93
|
end
|
94
94
|
|
@@ -97,13 +97,13 @@ describe PartitionConsumer do
|
|
97
97
|
end
|
98
98
|
|
99
99
|
it "uses object defaults" do
|
100
|
-
@connection.
|
100
|
+
expect(@connection).to receive(:fetch).with(10_000, 1, anything)
|
101
101
|
@pc.fetch
|
102
102
|
end
|
103
103
|
|
104
104
|
context "when options are passed" do
|
105
105
|
it "overrides object defaults" do
|
106
|
-
@connection.
|
106
|
+
expect(@connection).to receive(:fetch).with(20_000, 1, anything)
|
107
107
|
@pc = PartitionConsumer.new("test_client", "localhost", 9092, "test_topic", 0, :earliest_offset, :max_wait_ms => 20_000)
|
108
108
|
|
109
109
|
@pc.fetch
|
@@ -114,7 +114,7 @@ describe PartitionConsumer do
|
|
114
114
|
it "starts from the earliest offset" do
|
115
115
|
@pc = PartitionConsumer.new("test_client", "localhost", 9092, "test_topic", 0, -10000)
|
116
116
|
pfr = @response.topic_fetch_responses.first.partition_fetch_responses.first
|
117
|
-
pfr.
|
117
|
+
allow(pfr).to receive(:error).and_return(1, 1, 0)
|
118
118
|
|
119
119
|
@pc.fetch
|
120
120
|
end
|
@@ -123,7 +123,7 @@ describe PartitionConsumer do
|
|
123
123
|
context "when call returns an error" do
|
124
124
|
it "is raised" do
|
125
125
|
pfr = @response.topic_fetch_responses.first.partition_fetch_responses.first
|
126
|
-
pfr.
|
126
|
+
allow(pfr).to receive(:error).and_return(2)
|
127
127
|
|
128
128
|
expect { @pc.fetch }.to raise_error(Errors::InvalidMessage)
|
129
129
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe ProducerCompressionConfig do
|
3
|
+
RSpec.describe ProducerCompressionConfig do
|
4
4
|
describe "creation" do
|
5
5
|
it "raises ArgumentError when codec is unknown" do
|
6
6
|
expect { ProducerCompressionConfig.new(:ripple, nil) }.to raise_error(ArgumentError)
|
@@ -14,6 +14,13 @@ describe ProducerCompressionConfig do
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
+
describe "none compression codec" do
|
18
|
+
it "compresses no topics" do
|
19
|
+
pcc = ProducerCompressionConfig.new(:none,nil)
|
20
|
+
expect(pcc.compression_codec_for_topic("test")).to eq(false)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
17
24
|
describe "compression codec no topics specified" do
|
18
25
|
it "compresses any topic" do
|
19
26
|
pcc = ProducerCompressionConfig.new(:gzip,nil)
|
data/spec/unit/producer_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Producer do
|
3
|
+
RSpec.describe Producer do
|
4
4
|
it "requires brokers and client_id" do
|
5
5
|
expect { Producer.new }.to raise_error
|
6
6
|
end
|
@@ -15,7 +15,7 @@ describe Producer do
|
|
15
15
|
|
16
16
|
it "raises ProducerShutdown if we try to send to a shutdown producer" do
|
17
17
|
p = Producer.new(["host:port"],"client_id")
|
18
|
-
p.
|
18
|
+
p.close
|
19
19
|
expect { p.send_messages([]) }.to raise_error(Errors::ProducerShutdownError)
|
20
20
|
end
|
21
21
|
|
@@ -23,16 +23,22 @@ describe Producer do
|
|
23
23
|
expect { Producer.new([],"client_id", Producer::OPTION_DEFAULTS.dup) }.not_to raise_error
|
24
24
|
end
|
25
25
|
|
26
|
+
it "accepts socket_timeout_ms option" do
|
27
|
+
expect { Producer.new([],"client_id", socket_timeout_ms: 10_000) }.not_to raise_error
|
28
|
+
end
|
29
|
+
|
26
30
|
describe "sending messages" do
|
27
31
|
before(:each) do
|
28
32
|
@sync_producer = double('sync_producer').as_null_object
|
29
|
-
SyncProducer.
|
33
|
+
allow(SyncProducer).to receive(:new).and_return(@sync_producer)
|
30
34
|
|
31
35
|
@producer = Producer.new([], "client_id", :type => :sync)
|
32
36
|
end
|
33
37
|
|
34
38
|
it "turns MessagesToSend into Message objects" do
|
35
|
-
@sync_producer.
|
39
|
+
expect(@sync_producer).to receive(:send_messages).with(an_instance_of(Array)) do |array|
|
40
|
+
array.each { |obj| expect(obj).to be_an_instance_of(Message) }
|
41
|
+
end
|
36
42
|
|
37
43
|
m = MessageToSend.new("topic", "value")
|
38
44
|
@producer.send_messages([m])
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
include Protocol
|
5
|
+
|
6
|
+
RSpec.describe RequestBuffer do
|
7
|
+
subject(:buffer) { Poseidon::Protocol::RequestBuffer.new }
|
8
|
+
|
9
|
+
it 'appends UTF-8 strings' do
|
10
|
+
expect do
|
11
|
+
str = 'hello ümlaut'
|
12
|
+
buffer.append(str)
|
13
|
+
buffer.append(str.force_encoding(Encoding::BINARY))
|
14
|
+
end.to_not raise_error
|
15
|
+
end
|
16
|
+
end
|
data/spec/unit/protocol_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
include Protocol
|
3
|
-
describe RequestCommon do
|
3
|
+
RSpec.describe RequestCommon do
|
4
4
|
it "roundtrips" do
|
5
5
|
rc = RequestCommon.new(0,1,2,"client_id")
|
6
6
|
|
@@ -14,7 +14,7 @@ describe RequestCommon do
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
describe MetadataRequest do
|
17
|
+
RSpec.describe MetadataRequest do
|
18
18
|
it "roundtrips" do
|
19
19
|
rc = RequestCommon.new(0,1,2,"client_id")
|
20
20
|
mr = MetadataRequest.new(rc, ["topic1","topic2"])
|
@@ -29,14 +29,14 @@ describe MetadataRequest do
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
describe "objects with errors" do
|
32
|
+
RSpec.describe "objects with errors" do
|
33
33
|
it "returns objects that have errors" do
|
34
34
|
message_set = MessageSet.new
|
35
35
|
message_set << Message.new(:value => "value", :key => "key")
|
36
36
|
partition_fetch_response = PartitionFetchResponse.new(0, 5, 100, message_set)
|
37
37
|
topic_fetch_response = TopicFetchResponse.new('test_topic',
|
38
38
|
[partition_fetch_response])
|
39
|
-
response = FetchResponse.new(
|
39
|
+
response = FetchResponse.new(double('common'), [topic_fetch_response])
|
40
40
|
|
41
41
|
expect(response.objects_with_errors).to eq([partition_fetch_response])
|
42
42
|
end
|
@@ -47,7 +47,7 @@ describe "objects with errors" do
|
|
47
47
|
partition_fetch_response = PartitionFetchResponse.new(0, 5, 100, message_set)
|
48
48
|
topic_fetch_response = TopicFetchResponse.new('test_topic',
|
49
49
|
[partition_fetch_response])
|
50
|
-
response = FetchResponse.new(
|
50
|
+
response = FetchResponse.new(double('common'), [topic_fetch_response])
|
51
51
|
|
52
52
|
expect { response.raise_error_if_one_exists }.to raise_error
|
53
53
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe SyncProducer do
|
3
|
+
RSpec.describe SyncProducer do
|
4
4
|
describe "creation" do
|
5
5
|
|
6
6
|
it "sets correct defaults" do
|
@@ -22,21 +22,21 @@ describe SyncProducer do
|
|
22
22
|
|
23
23
|
describe "sending" do
|
24
24
|
before(:each) do
|
25
|
-
Kernel.
|
25
|
+
allow(Kernel).to receive(:sleep)
|
26
26
|
|
27
|
-
@broker_pool =
|
28
|
-
BrokerPool.
|
27
|
+
@broker_pool = double('broker_pool').as_null_object
|
28
|
+
allow(BrokerPool).to receive(:new).and_return(@broker_pool)
|
29
29
|
|
30
|
-
@cluster_metadata =
|
31
|
-
ClusterMetadata.
|
30
|
+
@cluster_metadata = double('cluster_metadata', :last_refreshed_at => Time.now).as_null_object
|
31
|
+
allow(ClusterMetadata).to receive(:new).and_return(@cluster_metadata)
|
32
32
|
|
33
|
-
@mbts =
|
34
|
-
MessagesToSend.
|
33
|
+
@mbts = double('messages_to_send', :needs_metadata? => false).as_null_object
|
34
|
+
allow(MessagesToSend).to receive(:new).and_return(@mbts)
|
35
35
|
end
|
36
36
|
|
37
37
|
context "needs metadata" do
|
38
38
|
before(:each) do
|
39
|
-
@mbts.
|
39
|
+
allow(@mbts).to receive(:needs_metadata?).and_return(true)
|
40
40
|
end
|
41
41
|
|
42
42
|
it "fetches metadata" do
|
@@ -49,7 +49,7 @@ describe SyncProducer do
|
|
49
49
|
|
50
50
|
context "there are messages to send" do
|
51
51
|
before(:each) do
|
52
|
-
@mbts.
|
52
|
+
allow(@mbts).to receive(:messages_for_brokers).and_return([double('mfb').as_null_object])
|
53
53
|
end
|
54
54
|
|
55
55
|
it "sends messages" do
|
@@ -62,22 +62,22 @@ describe SyncProducer do
|
|
62
62
|
|
63
63
|
context "always fails" do
|
64
64
|
before(:each) do
|
65
|
-
@mbts.
|
65
|
+
allow(@mbts).to receive(:pending_messages?).and_return(true)
|
66
66
|
@sp = SyncProducer.new("test_client", [])
|
67
67
|
end
|
68
68
|
|
69
69
|
it "retries the correct number of times" do
|
70
|
-
@mbts.
|
70
|
+
expect(@mbts).to receive(:messages_for_brokers).exactly(4).times
|
71
71
|
@sp.send_messages([Message.new(:topic => "topic", :value => "value")]) rescue StandardError
|
72
72
|
end
|
73
73
|
|
74
74
|
it "sleeps the correct amount between retries" do
|
75
|
-
Kernel.
|
75
|
+
expect(Kernel).to receive(:sleep).with(0.1).exactly(4).times
|
76
76
|
@sp.send_messages([Message.new(:topic => "topic", :value => "value")]) rescue StandardError
|
77
77
|
end
|
78
78
|
|
79
79
|
it "refreshes metadata between retries" do
|
80
|
-
@cluster_metadata.
|
80
|
+
expect(@cluster_metadata).to receive(:update).exactly(4).times
|
81
81
|
@sp.send_messages([Message.new(:topic => "topic", :value => "value")]) rescue StandardError
|
82
82
|
end
|
83
83
|
|
@@ -90,19 +90,19 @@ describe SyncProducer do
|
|
90
90
|
|
91
91
|
context "no retries" do
|
92
92
|
before(:each) do
|
93
|
-
@mbts.
|
93
|
+
allow(@mbts).to receive(:pending_messages?).and_return(true)
|
94
94
|
@sp = SyncProducer.new("test_client", [], max_send_retries: 0)
|
95
95
|
end
|
96
96
|
|
97
97
|
it "does not call sleep" do
|
98
|
-
Kernel.
|
98
|
+
expect(Kernel).to receive(:sleep).exactly(0).times
|
99
99
|
@sp.send_messages([Message.new(:topic => "topic", :value => "value")]) rescue Errors::UnableToFetchMetadata
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
103
103
|
context "succeeds on first attempt" do
|
104
104
|
before(:each) do
|
105
|
-
@mbts.
|
105
|
+
allow(@mbts).to receive(:pending_messages?).and_return(false)
|
106
106
|
@sp = SyncProducer.new("test_client", [])
|
107
107
|
end
|
108
108
|
|
@@ -111,19 +111,19 @@ describe SyncProducer do
|
|
111
111
|
end
|
112
112
|
|
113
113
|
it "does not sleep" do
|
114
|
-
Kernel.
|
114
|
+
expect(Kernel).not_to receive(:sleep)
|
115
115
|
@sp.send_messages([Message.new(:topic => "topic", :value => "value")])
|
116
116
|
end
|
117
117
|
|
118
118
|
it "only attempts to send once" do
|
119
|
-
@mbts.
|
119
|
+
expect(@mbts).to receive(:messages_for_brokers).once
|
120
120
|
@sp.send_messages([Message.new(:topic => "topic", :value => "value")])
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
124
124
|
context "succeeds on second attempt" do
|
125
125
|
before(:each) do
|
126
|
-
@mbts.
|
126
|
+
allow(@mbts).to receive(:pending_messages?).and_return(true, false)
|
127
127
|
@sp = SyncProducer.new("test_client", [])
|
128
128
|
end
|
129
129
|
|
@@ -132,12 +132,12 @@ describe SyncProducer do
|
|
132
132
|
end
|
133
133
|
|
134
134
|
it "sleeps once" do
|
135
|
-
Kernel.
|
135
|
+
expect(Kernel).to receive(:sleep).once
|
136
136
|
@sp.send_messages([Message.new(:topic => "topic", :value => "value")])
|
137
137
|
end
|
138
138
|
|
139
139
|
it "attempts to send twice" do
|
140
|
-
@mbts.
|
140
|
+
expect(@mbts).to receive(:messages_for_brokers).twice
|
141
141
|
@sp.send_messages([Message.new(:topic => "topic", :value => "value")])
|
142
142
|
end
|
143
143
|
end
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: poseidon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.5
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bob Potter
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '3'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: '3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: yard
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: snappy
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
description: A Kafka (http://kafka.apache.org/) producer and consumer
|
56
70
|
email:
|
57
71
|
- bobby.potter@gmail.com
|
@@ -115,6 +129,8 @@ files:
|
|
115
129
|
- spec/test_cluster.rb
|
116
130
|
- spec/unit/broker_pool_spec.rb
|
117
131
|
- spec/unit/cluster_metadata_spec.rb
|
132
|
+
- spec/unit/compression/gzip_codec_spec.rb
|
133
|
+
- spec/unit/compression/snappy_codec_spec.rb
|
118
134
|
- spec/unit/compression_spec.rb
|
119
135
|
- spec/unit/connection_spec.rb
|
120
136
|
- spec/unit/fetched_message_spec.rb
|
@@ -128,6 +144,7 @@ files:
|
|
128
144
|
- spec/unit/partition_consumer_spec.rb
|
129
145
|
- spec/unit/producer_compression_config_spec.rb
|
130
146
|
- spec/unit/producer_spec.rb
|
147
|
+
- spec/unit/protocol/request_buffer_spec.rb
|
131
148
|
- spec/unit/protocol_spec.rb
|
132
149
|
- spec/unit/sync_producer_spec.rb
|
133
150
|
- spec/unit/topic_metadata_spec.rb
|
@@ -146,9 +163,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
146
163
|
version: 1.9.3
|
147
164
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
165
|
requirements:
|
149
|
-
- - "
|
166
|
+
- - ">="
|
150
167
|
- !ruby/object:Gem::Version
|
151
|
-
version:
|
168
|
+
version: '0'
|
152
169
|
requirements: []
|
153
170
|
rubyforge_project:
|
154
171
|
rubygems_version: 2.2.2
|
@@ -172,6 +189,8 @@ test_files:
|
|
172
189
|
- spec/test_cluster.rb
|
173
190
|
- spec/unit/broker_pool_spec.rb
|
174
191
|
- spec/unit/cluster_metadata_spec.rb
|
192
|
+
- spec/unit/compression/gzip_codec_spec.rb
|
193
|
+
- spec/unit/compression/snappy_codec_spec.rb
|
175
194
|
- spec/unit/compression_spec.rb
|
176
195
|
- spec/unit/connection_spec.rb
|
177
196
|
- spec/unit/fetched_message_spec.rb
|
@@ -185,7 +204,7 @@ test_files:
|
|
185
204
|
- spec/unit/partition_consumer_spec.rb
|
186
205
|
- spec/unit/producer_compression_config_spec.rb
|
187
206
|
- spec/unit/producer_spec.rb
|
207
|
+
- spec/unit/protocol/request_buffer_spec.rb
|
188
208
|
- spec/unit/protocol_spec.rb
|
189
209
|
- spec/unit/sync_producer_spec.rb
|
190
210
|
- spec/unit/topic_metadata_spec.rb
|
191
|
-
has_rdoc:
|