File tree 2 files changed +25
-12
lines changed
2 files changed +25
-12
lines changed Original file line number Diff line number Diff line change 4
4
5
5
module Kafka
6
6
module Compression
7
+ CODEC_NAMES = {
8
+ 1 => :gzip ,
9
+ 2 => :snappy ,
10
+ 3 => :lz4 ,
11
+ } . freeze
12
+
13
+ CODECS = {
14
+ :gzip => GzipCodec . new ,
15
+ :snappy => SnappyCodec . new ,
16
+ :lz4 => LZ4Codec . new ,
17
+ } . freeze
18
+
7
19
def self . codecs
8
- [ :snappy , :gzip , :lz4 ]
20
+ CODECS . keys
9
21
end
10
22
11
23
def self . find_codec ( name )
12
- case name
13
- when nil then nil
14
- when :snappy then SnappyCodec . new
15
- when :gzip then GzipCodec . new
16
- when :lz4 then LZ4Codec . new
17
- else raise "Unknown compression codec #{ name } "
24
+ CODECS . fetch ( name ) do
25
+ raise "Unknown compression codec #{ name } "
18
26
end
19
27
end
20
28
21
29
def self . find_codec_by_id ( codec_id )
22
- case codec_id
23
- when 1 then GzipCodec . new
24
- when 2 then SnappyCodec . new
25
- when 3 then LZ4Codec . new
26
- else raise "Unknown codec id #{ codec_id } "
30
+ codec_name = CODEC_NAMES . fetch ( codec_id ) do
31
+ raise "Unknown codec id #{ codec_id } "
27
32
end
33
+
34
+ find_codec ( codec_name )
28
35
end
29
36
end
30
37
end
Original file line number Diff line number Diff line change 7
7
8
8
expect ( codec . decompress ( codec . compress ( data ) ) ) . to eq data
9
9
end
10
+
11
+ it "has a consistent codec id" do
12
+ codec = Kafka ::Compression . find_codec ( codec_name )
13
+
14
+ expect ( Kafka ::Compression . find_codec_by_id ( codec . codec_id ) ) . to eq codec
15
+ end
10
16
end
11
17
end
12
18
end
You can’t perform that action at this time.
0 commit comments