fluent-plugin-record_indexing_test 0.2.1 → 0.2.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2865d1ecd58abe3b735526da14dd5240cfc2c5402d52bf041614b625b81f74bf
4
- data.tar.gz: 3f2b9709c60b05ee1ea7421c43cda6858d190821454d1d6e1b8d11a8aee9f315
3
+ metadata.gz: e8af0a9c900d866f7932827a9ff76cd0799102b90b02907181ef5c7714992e9a
4
+ data.tar.gz: 641fc6d6f1f1854f5358ebb495a31cf8aad503b84d9ff3deefc607f39380b469
5
5
  SHA512:
6
- metadata.gz: c5fad3e0173f9956c05b38f2a144d12d20800a8e897fb5a62b0548571db6ee8165fd69987040e99f9bac26ed8d5f68521b290b9ee0973a15c0176d3046c831d8
7
- data.tar.gz: 02b8d4f280f9ebd39f3bbcc69482a5282dbb39193029e0d360a87789a37541618f3a4dcc9f0abbe75f03f6e5e54a3272927e9b67dc9efe382d76c3e9cbd91c9e
6
+ metadata.gz: 10133863becfbd5ef4cb77ff1c0e1d202991daf727d2494f6146e894c75f83a832eb4ca4e7ed7e6b52f37260cf78f8577ed5a5333c739cbd97e3518a241379cd
7
+ data.tar.gz: 12635ffbf6ad1c3482e6d8644b5165a62ab99b229422c743acfe9e9bb3a6f464d9fb742e64da555d8e142c441fc9b7fd462371bef32fa67c8d8c0cb55b7c2a4e
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  Gem::Specification.new do |spec|
3
3
  spec.name = "fluent-plugin-record_indexing_test"
4
- spec.version = "0.2.1"
4
+ spec.version = "0.2.2.2"
5
5
  spec.authors = ["imcotop"]
6
6
  spec.email = ["imcotop@icloud.com"]
7
7
 
@@ -8,13 +8,12 @@ module Fluent
8
8
  config_param :key_names, :array, default: []
9
9
  config_param :key_prefix, :string, default: nil
10
10
  config_param :check_all_key, :bool, default: true
11
+ config_param :ignore_length, :bool, default: true
11
12
  config_param :exclude_keys, :array, default: []
12
13
 
13
14
  def filter(tag, time, record)
14
- if check_all_key == false
15
- unless key_names.any?
16
- raise ArgumentError, "key_names parameter is required if check_all_key set false"
17
- end
15
+ if !@check_all_key && key_names.empty?
16
+ raise ArgumentError, "key_names parameter is required if check_all_key set false"
18
17
  end
19
18
  new_record = {}
20
19
  each_with_index(record, new_record)
@@ -23,17 +22,28 @@ module Fluent
23
22
  end
24
23
 
25
24
  def each_with_index(record, new_record)
25
+ seen_keys = {} # To keep track of duplicate names
26
26
  record.each do |key, value|
27
- if check_all_key || key_names.include?(key)
28
- if exclude_keys.include?(key)
27
+ if @check_all_key || @key_names.include?(key)
28
+ if @exclude_keys.include?(key)
29
29
  new_record[key] = value # Keep the value as is without indexing
30
30
  elsif value.is_a?(Array)
31
- if value.length == 1
31
+ if !@ignore_length && value.length == 1
32
32
  new_record[key] = value.first
33
33
  else
34
34
  new_record[key] = {}
35
35
  value.each_with_index do |item, index|
36
- new_record[key]["#{key_prefix}#{index}"] = item
36
+ if item.is_a?(Hash) && item.key?(:name) && item.key?(:value)
37
+ item_name = item[:name]
38
+ if seen_keys[item_name]
39
+ new_record[key]["#{@key_prefix}#{index}"] = item
40
+ else
41
+ new_record[key][item_name] = item[:value]
42
+ seen_keys[item_name] = true
43
+ end
44
+ else
45
+ new_record[key]["#{@key_prefix}#{index}"] = item
46
+ end
37
47
  end
38
48
  end
39
49
  elsif value.is_a?(Hash)
@@ -62,4 +72,3 @@ module Fluent
62
72
  end
63
73
  end
64
74
  end
65
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-record_indexing_test
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - imcotop
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-10 00:00:00.000000000 Z
11
+ date: 2024-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -78,7 +78,7 @@ homepage: https://github.com/imcotop/fluent-plugin-record_indexing
78
78
  licenses:
79
79
  - apache2
80
80
  metadata: {}
81
- post_install_message:
81
+ post_install_message:
82
82
  rdoc_options: []
83
83
  require_paths:
84
84
  - lib
@@ -93,8 +93,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
93
  - !ruby/object:Gem::Version
94
94
  version: '0'
95
95
  requirements: []
96
- rubygems_version: 3.0.3.1
97
- signing_key:
96
+ rubygems_version: 3.5.7
97
+ signing_key:
98
98
  specification_version: 4
99
99
  summary: A fluentd filter plugin that will be used to Iterate over the object with
100
100
  its index and returns the value of the given object.