fluent-plugin-array-splitter 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d04da9205757d519b782b4f8603c6cd5999a0ca1ed15d50044ab9600259d200
4
- data.tar.gz: c97d3587db8921bf2b25ca8b930b6e0e96dcc6e47f41ad2169a48775073217cc
3
+ metadata.gz: 0bf5d03998979b55a12ce89992692bbda3b010bfbccb2b1cf9dbd670a3c63cec
4
+ data.tar.gz: 311c9c506b8e7e3b1a48fa77df5e500ac630b7df3797066756beafe985e4468b
5
5
  SHA512:
6
- metadata.gz: 720519d90f4c95983ec89fc616626cce0712be211673724d3f8db15e2bd0a4e562dd196344a13127f4c177c923ee5018c0ad98b19be27ee71f189868a43216c1
7
- data.tar.gz: 40d369cb984e7b01125328e98df4c01b0c5a7f6725fae82d55a26e7cd8ab37001474a14913f4cd27c34260cf71ab4a115df69ddc9c8a9298da4339e7dc8b41cf
6
+ metadata.gz: 789c595e0ae1f9c8cc14d8668e25dba1984e72f1df6c8c51eb29ecb5299ee2fa3482936e78d9ba28427cf7f25c38dc45a336b26080960934af54b6e0f7ec93e2
7
+ data.tar.gz: 00e5532d24f9eb2e2e0ecc7829356daca338f5a26f79deaaccae09ec1414aba3c74fabe65e7f83dfe2daffa8ab0d5645e3bfdae673bab0879106210c56c5a13b
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = "fluent-plugin-array-splitter"
6
- spec.version = "0.1.1"
6
+ spec.version = "0.1.2"
7
7
  spec.authors = ["pcoffmanjr"]
8
8
  spec.email = ["pcoffman@ctc-america.com"]
9
9
 
@@ -7,24 +7,28 @@ module Fluent
7
7
  class ArraySplitterFilter < Fluent::Plugin::Filter
8
8
  Fluent::Plugin.register_filter("array_splitter", self)
9
9
 
10
+ desc 'The field name to split and expand array values'
11
+ config_param :array_key, :string, default: 'message'
12
+
10
13
  def configure(conf)
11
14
  super
15
+ raise Fluent::ConfigError, "'array_key' parameter is required" unless conf.has_key?('array_key')
12
16
  log.info "Configuring Array Splitter Filter"
13
17
  end
14
18
 
15
19
  def filter_stream(tag, es)
16
20
  new_es = Fluent::MultiEventStream.new
17
21
  es.each do |time, record|
18
- if record['message'].is_a?(Array)
19
- record['message'].each do |value|
22
+ if record[@array_key].is_a?(Array)
23
+ record[@array_key].each do |value|
20
24
  new_record = record.dup
21
- new_record.delete('message')
25
+ new_record.delete(@array_key)
22
26
  if value.is_a?(Hash)
23
27
  value.each do |k, v|
24
- new_record[k] = v
28
+ new_record[k] = v
25
29
  end
26
30
  else
27
- new_record['message'] = value
31
+ new_record[@array_key] = value
28
32
  end
29
33
  new_es.add(time, new_record)
30
34
  end
@@ -4,7 +4,9 @@ require "fluent/plugin/filter_array_splitter.rb"
4
4
  class ArraySplitterFilterTest < Test::Unit::TestCase
5
5
  setup do
6
6
  Fluent::Test.setup
7
- @driver = create_driver
7
+ @driver = create_driver(%[
8
+ array_key message
9
+ ])
8
10
  end
9
11
 
10
12
  def create_driver(conf = "")
@@ -28,7 +30,7 @@ class ArraySplitterFilterTest < Test::Unit::TestCase
28
30
  assert_equal("v2", filtered_records[1]["message"])
29
31
  assert_equal("v3", filtered_records[2]["message"])
30
32
  end
31
-
33
+
32
34
  test "expand array with hashes in message field" do
33
35
  record = {
34
36
  "key1" => "foo",
@@ -49,6 +51,25 @@ class ArraySplitterFilterTest < Test::Unit::TestCase
49
51
  assert_equal("foobar", filtered_records[1]["k2"])
50
52
  assert_nil(filtered_records[1]["message"])
51
53
  end
54
+
55
+ test "expand array with custom key" do
56
+ driver = create_driver(%[
57
+ array_key record
58
+ ])
59
+ record = {
60
+ "key1" => "foo",
61
+ "key2" => "bar",
62
+ "record" => ["v1", "v2", "v3"]
63
+ }
64
+ driver.run(default_tag: "test") do
65
+ driver.feed(record)
66
+ end
67
+ filtered_records = driver.filtered_records
68
+ assert_equal(3, filtered_records.size)
69
+ assert_equal("v1", filtered_records[0]["record"])
70
+ assert_equal("v2", filtered_records[1]["record"])
71
+ assert_equal("v3", filtered_records[2]["record"])
72
+ end
52
73
  end
53
74
  end
54
75
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-array-splitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - pcoffmanjr