fluent-plugin-kvp-parser 0.0.4 → 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/fluent-plugin-kvp-parser.gemspec +1 -1
- data/lib/fluent/plugin/parser_kvp.rb +6 -5
- data/test/test_kvp_parser.rb +4 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 843d6092683665ce9588bc3c1da61e0bca6001dc
|
4
|
+
data.tar.gz: 21975d2887a0e3864e76ee78b708345c6e07ddbd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1759ac967e1fad058a5667935521088c2c0d8dcf74f24d71125ab04105f902bb5a134eb87e84960f1e1c4bae8031c100947d3843edd8627746efdb80883938f4
|
7
|
+
data.tar.gz: 9c152c5351402d73280d7f05dff0c6fb29d4ed3001759843aecae002f93a59fb25165e208dd6469de4205a7e73d0b098ab7409649606f22dd21be491319a636e
|
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "fluent-plugin-kvp-parser"
|
7
|
-
spec.version = "0.0.
|
7
|
+
spec.version = "0.0.5"
|
8
8
|
spec.description = 'Fluentd parser plugin to parse key value pairs'
|
9
9
|
spec.authors = ["mosuka"]
|
10
10
|
spec.email = ["minoru.osuka@gmail.com"]
|
@@ -6,18 +6,19 @@ module Fluent
|
|
6
6
|
|
7
7
|
Plugin.register_parser('kvp', self)
|
8
8
|
|
9
|
+
config_param :key_char, :string, :default => '\w.-'
|
9
10
|
config_param :key_prefix, :string, :default => ''
|
10
|
-
config_param :
|
11
|
-
config_param :
|
11
|
+
config_param :key_value_pair_delimiter, :string, :default => '\t\s'
|
12
|
+
config_param :key_value_delimiter, :string, :default => '='
|
12
13
|
config_param :time_key, :string, :default => 'time'
|
13
14
|
|
14
15
|
def configure(conf={})
|
15
16
|
super
|
16
|
-
if @
|
17
|
-
@kv_delimiter =
|
17
|
+
if @key_value_pair_delimiter[0] == '/' and @key_value_pair_delimiter[-1] == '/'
|
18
|
+
@kv_delimiter = @key_value_pair_delimiter[1..-2]
|
18
19
|
end
|
19
20
|
|
20
|
-
@kv_regex_str = '(?:(?:([
|
21
|
+
@kv_regex_str = '(?:(?:([' + @key_char + ']+)\s*[' + @key_value_delimiter + ']\s*("(?:(?:\\\.|[^"])*)"|(?:[^"' + @key_value_pair_delimiter + ']*)))(?:|[' + @key_value_pair_delimiter + ']*))'
|
21
22
|
@kv_regex = Regexp.new(@kv_regex_str)
|
22
23
|
end
|
23
24
|
|
data/test/test_kvp_parser.rb
CHANGED
@@ -15,6 +15,7 @@ module ParserTest
|
|
15
15
|
def test_basic
|
16
16
|
d = create_driver({})
|
17
17
|
d.instance.parse("k1=v1 k2=v2") {|_, v| assert_equal({"k1"=>"v1", "k2"=>"v2"}, v)}
|
18
|
+
d.instance.parse("k.1=v1 k.2=v2") {|_, v| assert_equal({"k.1"=>"v1", "k.2"=>"v2"}, v)}
|
18
19
|
d.instance.parse("k1=v1 k2=v2") {|_, v| assert_equal({"k1"=>"v1", "k2"=>"v2"}, v)}
|
19
20
|
d.instance.parse("k2=v2 k1=v1") {|_, v| assert_equal({"k1"=>"v1", "k2"=>"v2"}, v)}
|
20
21
|
d.instance.parse("k2=v2\tk1=v1") {|_, v| assert_equal({"k1"=>"v1", "k2"=>"v2"}, v)}
|
@@ -47,18 +48,18 @@ module ParserTest
|
|
47
48
|
end
|
48
49
|
|
49
50
|
def test_custom_delimiter
|
50
|
-
d = create_driver({"
|
51
|
+
d = create_driver({"key_value_pair_delimiter" => "|"})
|
51
52
|
d.instance.parse("k1=v1|k2=v2") {|_, v| assert_equal({"k1"=>"v1", "k2"=>"v2"}, v)}
|
52
53
|
d.instance.parse("k1=v1||k2=v2") {|_, v| assert_equal({"k1"=>"v1", "k2"=>"v2"}, v)}
|
53
54
|
|
54
|
-
d = create_driver({"
|
55
|
+
d = create_driver({"key_value_pair_delimiter" => "@ "})
|
55
56
|
d.instance.parse("k1=v1@k2=v2 k3=v3") {|_, v|
|
56
57
|
assert_equal({"k1"=>"v1", "k2"=>"v2", "k3"=>"v3"}, v)
|
57
58
|
}
|
58
59
|
end
|
59
60
|
|
60
61
|
def test_custom_kv_char
|
61
|
-
d = create_driver({"
|
62
|
+
d = create_driver({"key_value_delimiter" => "#"})
|
62
63
|
d.instance.parse("k1#v1 k2#v2") {|_, v| assert_equal({"k1"=>"v1", "k2"=>"v2"}, v)}
|
63
64
|
end
|
64
65
|
|