fluent-plugin-rename-key 0.1.4 → 0.2.0

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
  SHA1:
3
- metadata.gz: 50c9ff6f2cafefef879771c9ae58aa30370fc3b4
4
- data.tar.gz: 753cd2ad645d97a697c797798802d536c561e0f8
3
+ metadata.gz: fe8b87f5ca1a68033f2d8d22ad283c097f63bca8
4
+ data.tar.gz: f7fd6a36cf2f4b85b02a3b626b28d2c986b40eb1
5
5
  SHA512:
6
- metadata.gz: 460eb66318d43d083703f68058db5bbeb98d61926a4d3eeef53808babbbd8f6aab22a7637aa4fe4f73d2ffeb11a8b10c95bbb57ea4d57a1a886806505a093346
7
- data.tar.gz: e5e733b1d8f6ce128f385d8b9d6ecc27c7ecbbc1f399e33d97c6d2943162f2315c03dfa8d3a436a56ada1fef3efc0e8f136d8af2a762267598e64d43925e06d2
6
+ metadata.gz: fd388ad6dd9c73618ee654dce8786dad13714f32cbf8f76706838050a4c28009c271faa90c73b82d57f5da52d4b1a27f16fd47fd8aba266f8ae07ddf7ca5abbc
7
+ data.tar.gz: c6eeab30ca1317114b157f9ddd6baf4041e330ed30ae289aeb44fad45ba72d8689af5041e0f6f79617d4def623d011a13c629d09201bcebbc8a6befc9f4208b1
data/README.md CHANGED
@@ -1,10 +1,9 @@
1
1
  # fluent-plugin-rename-key, a plugin for [Fluentd](http://fluentd.org)
2
2
 
3
3
  ## Status
4
- [![Gem Version](https://badge.fury.io/rb/fluent-plugin-rename-key.png)](http://badge.fury.io/rb/fluent-plugin-rename-key)
5
- [![Build Status](https://travis-ci.org/shunwen/fluent-plugin-rename-key.png?branch=master)](https://travis-ci.org/shunwen/fluent-plugin-rename-key)
6
- [![Coverage Status](https://coveralls.io/repos/shunwen/fluent-plugin-rename-key/badge.png?branch=master)](https://coveralls.io/r/shunwen/fluent-plugin-rename-key?branch=master)
7
- [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/shunwen/fluent-plugin-rename-key/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
4
+ [![Gem Version](https://badge.fury.io/rb/fluent-plugin-rename-key.svg)](https://badge.fury.io/rb/fluent-plugin-rename-key)
5
+ [![Build Status](https://travis-ci.org/shunwen/fluent-plugin-rename-key.svg?branch=master)](https://travis-ci.org/shunwen/fluent-plugin-rename-key)
6
+ [![Coverage Status](https://coveralls.io/repos/shunwen/fluent-plugin-rename-key/badge.svg?branch=master)](https://coveralls.io/r/shunwen/fluent-plugin-rename-key?branch=master)
8
7
 
9
8
  ## Overview
10
9
 
@@ -37,6 +36,11 @@ $ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-rename-key
37
36
  # <new_key> is the string with MatchData placeholder for creating the new key name, whitespace is allowed
38
37
  rename_rule<num> <key_regexp> <new_key>
39
38
 
39
+ # <num> is an integer, used to sort and apply the rules
40
+ # <key_regexp> is the regular expression used to match the keys, whitespace is not allowed, use "\s" instead
41
+ # <new_key> is the string to replace the matches with, with MatchData placeholder for creating the new key name, whitespace is allowed. Optional, if missing then the matches are removed
42
+ replace_rule<num> <key_regexp> <new_key>
43
+
40
44
  # Optional: remove tag prefix
41
45
  remove_tag_prefix <string>
42
46
 
@@ -2,23 +2,23 @@
2
2
  $:.push File.expand_path('../lib', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
- s.name = "fluent-plugin-rename-key"
6
- s.version = "0.1.4"
7
- s.date = "2016-04-04"
8
- s.license = "Apache-2.0"
9
- s.authors = ["Shunwen Hsiao"]
10
- s.email = "hsiaoshunwen@gmail.com"
11
- s.homepage = "https://github.com/shunwen/fluent-plugin-rename-key"
5
+ s.name = 'fluent-plugin-rename-key'
6
+ s.version = '0.2.0'
7
+ s.date = '2016-04-05'
8
+ s.license = 'Apache-2.0'
9
+ s.authors = ['Shunwen Hsiao', 'Julian Grinblat']
10
+ s.email = ['hsiaoshunwen@gmail.com']
11
+ s.homepage = 'https://github.com/shunwen/fluent-plugin-rename-key'
12
12
  s.summary = %q[Fluentd output plugin. Rename keys which match given regular expressions, assign new tags and re-emit the records.]
13
- s.has_rdoc = false
14
13
 
14
+ s.required_ruby_version = '>= 1.9.3'
15
15
  s.files = `git ls-files`.split("\n")
16
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.test_files = `git ls-files -- {test}/*`.split("\n")
17
17
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
18
  s.require_paths = ['lib']
19
19
 
20
- s.add_runtime_dependency "fluentd"
21
- s.add_development_dependency "test-unit", ">= 3.1.0"
22
- s.add_development_dependency "rake"
20
+ s.add_runtime_dependency 'fluentd'
21
+ s.add_development_dependency 'test-unit', '>= 3.1.0'
22
+ s.add_development_dependency 'rake'
23
23
  s.add_development_dependency 'coveralls'
24
24
  end
@@ -1,16 +1,33 @@
1
1
  class Fluent::RenameKeyOutput < Fluent::Output
2
2
  Fluent::Plugin.register_output 'rename_key', self
3
3
 
4
+ # To support Fluentd v0.10.57 or earlier
5
+ unless method_defined?(:router)
6
+ define_method("router") { Fluent::Engine }
7
+ end
8
+
9
+ # Define `log` method for v0.10.42 or earlier
10
+ unless method_defined?(:log)
11
+ define_method("log") { $log }
12
+ end
13
+
14
+ # For fluentd v0.12.16 or earlier
15
+ class << self
16
+ unless method_defined?(:desc)
17
+ def desc(description)
18
+ end
19
+ end
20
+ end
21
+
4
22
  DEFAULT_APPEND_TAG = 'key_renamed'
5
23
 
24
+ desc 'Specify and remove tag prefix.'
6
25
  config_param :remove_tag_prefix, :string, default: nil
26
+ desc "Append custom tag postfix (default: #{DEFAULT_APPEND_TAG})."
7
27
  config_param :append_tag, :string, default: DEFAULT_APPEND_TAG
28
+ desc 'Deep rename/replace operation.'
8
29
  config_param :deep_rename, :bool, default: true
9
30
 
10
- unless method_defined?(:router)
11
- define_method("router") { Fluent::Engine }
12
- end
13
-
14
31
  def configure conf
15
32
  super
16
33
 
@@ -28,10 +45,31 @@ class Fluent::RenameKeyOutput < Fluent::Output
28
45
  end
29
46
 
30
47
  @rename_rules << { key_regexp: /#{key_regexp}/, new_key: new_key }
31
- $log.info "Added rename key rule: #{r} #{@rename_rules.last}"
48
+ log.info "Added rename key rule: #{r} #{@rename_rules.last}"
49
+ end
50
+
51
+ @replace_rules = []
52
+ conf_replace_rules = conf.keys.select { |k| k =~ /^replace_rule(\d+)$/ }
53
+ conf_replace_rules.sort_by { |r| r.sub('replace_rule', '').to_i }.each do |r|
54
+ key_regexp, replacement = parse_replace_rule conf[r]
55
+
56
+ if key_regexp.nil?
57
+ raise Fluent::ConfigError, "Failed to parse: #{r} #{conf[r]}"
58
+ end
59
+
60
+ if replacement.nil?
61
+ replacement = ""
62
+ end
63
+
64
+ if @replace_rules.map { |r| r[:key_regexp] }.include? /#{key_regexp}/
65
+ raise Fluent::ConfigError, "Duplicated rules for key #{key_regexp}: #{@replace_rules}"
66
+ end
67
+
68
+ @replace_rules << { key_regexp: /#{key_regexp}/, replacement: replacement }
69
+ log.info "Added replace key rule: #{r} #{@replace_rules.last}"
32
70
  end
33
71
 
34
- raise Fluent::ConfigError, "No rename rules are given" if @rename_rules.empty?
72
+ raise Fluent::ConfigError, "No rename or replace rules are given" if @rename_rules.empty? && @replace_rules.empty?
35
73
 
36
74
  @remove_tag_prefix = /^#{Regexp.escape @remove_tag_prefix}\.?/ if @remove_tag_prefix
37
75
  end
@@ -41,6 +79,7 @@ class Fluent::RenameKeyOutput < Fluent::Output
41
79
  new_tag = @remove_tag_prefix ? tag.sub(@remove_tag_prefix, '') : tag
42
80
  new_tag = "#{new_tag}.#{@append_tag}".sub(/^\./, '')
43
81
  new_record = rename_key record
82
+ new_record = replace_key new_record
44
83
  router.emit new_tag, time, new_record
45
84
  end
46
85
 
@@ -50,9 +89,11 @@ class Fluent::RenameKeyOutput < Fluent::Output
50
89
  # private
51
90
 
52
91
  def parse_rename_rule rule
53
- if rule.match /^([^\s]+)\s+(.+)$/
54
- return $~.captures
55
- end
92
+ $~.captures if rule.match /^([^\s]+)\s+(.+)$/
93
+ end
94
+
95
+ def parse_replace_rule rule
96
+ $~.captures if rule.match /^([^\s]+)(?:\s+(.+))?$/
56
97
  end
57
98
 
58
99
  def rename_key record
@@ -65,7 +106,7 @@ class Fluent::RenameKeyOutput < Fluent::Output
65
106
  next unless match_data # next rule
66
107
 
67
108
  placeholder = get_placeholder match_data
68
- key = rule[:new_key].gsub /\${\w+\[\d+\]?}/, placeholder
109
+ key = rule[:new_key].gsub /\${md\[\d+\]}/, placeholder
69
110
  break
70
111
  end
71
112
 
@@ -83,11 +124,39 @@ class Fluent::RenameKeyOutput < Fluent::Output
83
124
  new_record
84
125
  end
85
126
 
127
+ def replace_key record
128
+ new_record = {}
129
+
130
+ record.each do |key, value|
131
+
132
+ @replace_rules.each do |rule|
133
+ match_data = key.match rule[:key_regexp]
134
+ next unless match_data # next rule
135
+
136
+ placeholder = get_placeholder match_data
137
+ key = key.gsub rule[:key_regexp], rule[:replacement].gsub(/\${md\[\d+\]}/, placeholder)
138
+ break
139
+ end
140
+
141
+ if @deep_rename
142
+ if value.is_a? Hash
143
+ value = replace_key value
144
+ elsif value.is_a? Array
145
+ value = value.map { |v| v.is_a?(Hash) ? replace_key(v) : v }
146
+ end
147
+ end
148
+
149
+ new_record[key] = value
150
+ end
151
+
152
+ new_record
153
+ end
154
+
86
155
  def get_placeholder match_data
87
156
  placeholder = {}
88
157
 
89
158
  match_data.to_a.each_with_index do |e, idx|
90
- placeholder.store "${md[#{idx}]}", e
159
+ placeholder["${md[#{idx}]}"] = e
91
160
  end
92
161
 
93
162
  placeholder
@@ -2,13 +2,14 @@ require 'helper'
2
2
 
3
3
  class RenameKeyOutputTest < Test::Unit::TestCase
4
4
  MATCH_TAG = 'incoming_tag'
5
- CONFIG = 'rename_rule1 ^\$(.+) x$${md[1]}'
5
+ RENAME_RULE_CONFIG = 'rename_rule1 ^\$(.+) x$${md[1]}'
6
+ REPLACE_RULE_CONFIG = 'replace_rule1 ^\$ x'
6
7
 
7
8
  def setup
8
9
  Fluent::Test.setup
9
10
  end
10
11
 
11
- def create_driver(conf = CONFIG, tag = MATCH_TAG)
12
+ def create_driver(conf, tag = MATCH_TAG)
12
13
  Fluent::Test::OutputTestDriver.new(Fluent::RenameKeyOutput, tag).configure(conf)
13
14
  end
14
15
 
@@ -44,9 +45,25 @@ class RenameKeyOutputTest < Test::Unit::TestCase
44
45
  assert_equal '${md[1]} ${md[2]}', parsed[1]
45
46
  end
46
47
 
48
+ def test_parse_replace_rule_with_replacement
49
+ # Replace hyphens with underscores
50
+ parsed = Fluent::RenameKeyOutput.new.parse_replace_rule '- _'
51
+ assert_equal 2, parsed.length
52
+ assert_equal '-', parsed[0]
53
+ assert_equal '_', parsed[1]
54
+ end
55
+
56
+ def test_parse_replace_rule_without_replacement
57
+ # Remove all parethesis hyphens and spaces
58
+ parsed = Fluent::RenameKeyOutput.new.parse_replace_rule '[()-\s]'
59
+ assert_equal 2, parsed.length
60
+ assert_equal '[()-\s]', parsed[0]
61
+ assert parsed[1].nil?
62
+ end
63
+
47
64
  def test_emit_default_append_tag
48
65
  append_tag = Fluent::RenameKeyOutput::DEFAULT_APPEND_TAG
49
- d = create_driver
66
+ d = create_driver RENAME_RULE_CONFIG
50
67
  d.run do
51
68
  d.emit '$key1' => 'value1', '%key2' => {'$key3'=>'123', '$key4'=> {'$key5' => 'value2'} }
52
69
  end
@@ -54,13 +71,12 @@ class RenameKeyOutputTest < Test::Unit::TestCase
54
71
  emits = d.emits
55
72
  assert_equal 1, emits.length
56
73
  assert_equal "#{MATCH_TAG}.#{append_tag}", emits[0][0]
57
- assert_equal ['x$key1', '%key2'], emits[0][2].keys
58
74
  end
59
75
 
60
76
  def test_emit_append_custom_tag
61
77
  custom_tag = 'custom_tag'
62
78
  config = %Q[
63
- #{CONFIG}
79
+ #{RENAME_RULE_CONFIG}
64
80
  append_tag #{custom_tag}
65
81
  ]
66
82
  d = create_driver config
@@ -72,67 +88,103 @@ class RenameKeyOutputTest < Test::Unit::TestCase
72
88
  emits = d.emits
73
89
  assert_equal 1, emits.length
74
90
  assert_equal "#{MATCH_TAG}.#{custom_tag}", emits[0][0]
75
- assert_equal ['x$key1', '%key2'], emits[0][2].keys
76
91
  end
77
92
 
78
- def test_emit_deep_rename_hash
79
- d = create_driver
93
+ def test_remove_tag_prefix
94
+ append_tag = Fluent::RenameKeyOutput::DEFAULT_APPEND_TAG
95
+
96
+ config = %Q[
97
+ #{RENAME_RULE_CONFIG}
98
+ remove_tag_prefix #{MATCH_TAG}
99
+ ]
100
+
101
+ d = create_driver config
80
102
  d.run do
81
- d.emit '$key1' => 'value1', '%key2' => {'$key3'=>'123', '$key4'=> {'$key5' => 'value2'} }
103
+ d.emit 'key1' => 'value1'
104
+ d.emit '$key2' => 'value2'
105
+ end
106
+
107
+ emits = d.emits
108
+ assert_equal 2, emits.length
109
+ assert_equal append_tag, emits[0][0]
110
+ assert_equal append_tag, emits[1][0]
111
+ end
112
+
113
+ def test_rename_rule_emit_deep_rename_hash
114
+ d = create_driver RENAME_RULE_CONFIG
115
+ d.run do
116
+ d.emit '$key1' => 'value1', 'key2' => {'$key3' => 'value3', '$key4'=> {'$key5' => 'value5'} }
82
117
  end
83
118
 
84
119
  emits = d.emits
85
- assert_equal ['x$key3', 'x$key4'], emits[0][2]['%key2'].keys
86
- assert_equal ['x$key5'], emits[0][2]['%key2']['x$key4'].keys
120
+ assert_equal %w[x$key1 key2], emits[0][2].keys
121
+ assert_equal %w[x$key3 x$key4], emits[0][2]['key2'].keys
122
+ assert_equal ['x$key5'], emits[0][2]['key2']['x$key4'].keys
87
123
  end
88
124
 
89
- def test_emit_deep_rename_array
90
- d = create_driver
125
+ def test_rename_rule_emit_deep_rename_array
126
+ d = create_driver RENAME_RULE_CONFIG
91
127
  d.run do
92
- d.emit '$key1' => 'value1', '%key2' => [{'$key3'=>'123'}, {'$key4'=> {'$key5' => 'value2'}}]
128
+ d.emit '$key1' => 'value1', 'key2' => [{'$key3' => 'value3'}, {'$key4'=> {'$key5' => 'value5'}}]
93
129
  end
94
130
 
95
131
  emits = d.emits
96
- assert_equal ['x$key3', 'x$key4'], emits[0][2]['%key2'].flat_map(&:keys)
97
- assert_equal ['x$key5'], emits[0][2]['%key2'][1]['x$key4'].keys
132
+ assert_equal %w[x$key3 x$key4], emits[0][2]['key2'].flat_map(&:keys)
133
+ assert_equal ['x$key5'], emits[0][2]['key2'][1]['x$key4'].keys
98
134
  end
99
135
 
100
- def test_emit_deep_rename_off
136
+ def test_rename_rule_emit_deep_rename_off
101
137
  config = %Q[
102
- #{CONFIG}
138
+ #{RENAME_RULE_CONFIG}
103
139
  deep_rename false
104
140
  ]
105
141
 
106
142
  d = create_driver config
107
143
  d.run do
108
- d.emit '$key1' => 'value1', '%key2' => {'$key3'=>'123', '$key4'=> {'$key5' => 'value2'} }
144
+ d.emit '$key1' => 'value1', 'key2' => {'$key3'=>'value3', '$key4'=> 'value4'}
109
145
  end
110
146
 
111
147
  emits = d.emits
112
- assert_equal ['$key3', '$key4'], emits[0][2]['%key2'].keys
148
+ assert_equal %w[$key3 $key4], emits[0][2]['key2'].keys
113
149
  end
114
150
 
115
- def test_remove_tag_prefix
116
- append_tag = Fluent::RenameKeyOutput::DEFAULT_APPEND_TAG
151
+ def test_rename_rule_emit_with_match_data
152
+ d = create_driver 'rename_rule1 (\w+)\s(\w+)\s(\w+) ${md[3]} ${md[2]} ${md[1]}'
153
+ d.run do
154
+ d.emit 'key1 key2 key3' => 'value'
155
+ end
156
+ emits = d.emits
157
+ assert_equal 1, emits.length
158
+ assert_equal ['key3 key2 key1'], emits[0][2].keys
159
+ end
117
160
 
118
- config = %Q[
119
- #{CONFIG}
120
- remove_tag_prefix #{MATCH_TAG}
161
+ def test_multiple_rename_rules_emit
162
+ config_multiple_rules = %q[
163
+ rename_rule1 ^(\w+)\s1 ${md[1]}_1
164
+ rename_rule2 ^(\w+)\s2 ${md[1]}_2
121
165
  ]
122
166
 
123
- d = create_driver config
167
+ d = create_driver config_multiple_rules
124
168
  d.run do
125
- d.emit 'key1' => 'value1'
126
- d.emit '$key2' => 'value2'
169
+ d.emit 'key 1' => 'value1', 'key 2' => 'value2'
127
170
  end
128
171
 
129
172
  emits = d.emits
130
- assert_equal 2, emits.length
131
- assert_equal append_tag, emits[0][0]
132
- assert_equal append_tag, emits[1][0]
173
+ assert_equal %w[key_1 key_2], emits[0][2].keys
174
+ end
175
+
176
+ def test_replace_rule_emit_deep_rename_hash
177
+ d = create_driver 'replace_rule1 ^(\$) x'
178
+
179
+ d.run do
180
+ d.emit '$key1' => 'value1', 'key2' => { 'key3' => 'value3', '$key4' => 'value4' }
181
+ end
182
+ emits = d.emits
183
+ assert_equal %w[xkey1 key2], emits[0][2].keys
184
+ assert_equal %w[key3 xkey4], emits[0][2]['key2'].keys
133
185
  end
134
186
 
135
- def test_rename_with_match_data
187
+ def test_replace_rule_emit_with_match_data
136
188
  d = create_driver 'rename_rule1 (\w+)\s(\w+)\s(\w+) ${md[3]} ${md[2]} ${md[1]}'
137
189
  d.run do
138
190
  d.emit 'key1 key2 key3' => 'value'
@@ -142,18 +194,70 @@ class RenameKeyOutputTest < Test::Unit::TestCase
142
194
  assert_equal ['key3 key2 key1'], emits[0][2].keys
143
195
  end
144
196
 
145
- def test_rename_with_multiple_rules
197
+ def test_replace_rule_emit_deep_rename_array
198
+ d = create_driver 'replace_rule1 ^(\$) x${md[1]}'
199
+
200
+ d.run do
201
+ d.emit '$key1' => 'value1', 'key2' => [{'$key3' => 'value3'}, {'$key4' => {'$key5' => 'value5'}}]
202
+ end
203
+
204
+ emits = d.emits
205
+ assert_equal %w[x$key3 x$key4], emits[0][2]['key2'].flat_map(&:keys)
206
+ assert_equal %w[x$key5], emits[0][2]['key2'][1]['x$key4'].keys
207
+ end
208
+
209
+ def test_replace_rule_emit_deep_rename_off
210
+ config = %Q[
211
+ #{REPLACE_RULE_CONFIG}
212
+ deep_rename false
213
+ ]
214
+
215
+ d = create_driver config
216
+ d.run do
217
+ d.emit '$key1' => 'value1', 'key2' => {'$key3'=>'value3', '$key4'=> 'value4'}
218
+ end
219
+
220
+ emits = d.emits
221
+ assert_equal %w[$key3 $key4], emits[0][2]['key2'].keys
222
+ end
223
+
224
+ def test_replace_rule_emit_remove_matched_when_no_replacement
225
+ d = create_driver 'replace_rule1 [\s/()]'
226
+ d.run do
227
+ d.emit 'key (/1 )' => 'value1'
228
+ end
229
+
230
+ emits = d.emits
231
+ assert_equal %w[key1], emits[0][2].keys
232
+ end
233
+
234
+ def test_multiple_replace_rules_emit
146
235
  config_multiple_rules = %q[
147
- rename_rule1 ^(\w+)\s1 ${md[1]}_1
148
- rename_rule2 ^(\w+)\s2 ${md[1]}_2
236
+ replace_rule1 ^(\w+)\s(\d) ${md[1]}${md[2]}
237
+ replace_rule2 [\s()]
149
238
  ]
150
239
 
151
240
  d = create_driver config_multiple_rules
152
241
  d.run do
153
- d.emit 'key 1' => 'value1', 'key 2' => 'value2'
242
+ d.emit 'key 1' => 'value1', 'key (2)' => 'value2'
243
+ end
244
+
245
+ emits = d.emits
246
+ assert_equal %w[key1 key2], emits[0][2].keys
247
+ end
248
+
249
+ def test_combined_rename_rule_and_replace_rule
250
+ config_combined_rules = %q[
251
+ rename_rule1 ^(.+)\s(one) ${md[1]}1
252
+ replace_rule2 [\s()]
253
+ ]
254
+
255
+ d = create_driver config_combined_rules
256
+ d.run do
257
+ d.emit '(key) one (x)' => 'value1', 'key (2)' => 'value2'
154
258
  end
155
259
 
156
260
  emits = d.emits
157
- assert_equal ['key_1', 'key_2'], emits[0][2].keys
261
+ assert_equal %w[key1 key2], emits[0][2].keys
158
262
  end
159
263
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-rename-key
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shunwen Hsiao
8
+ - Julian Grinblat
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2016-04-04 00:00:00.000000000 Z
12
+ date: 2016-04-05 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: fluentd
@@ -67,7 +68,8 @@ dependencies:
67
68
  - !ruby/object:Gem::Version
68
69
  version: '0'
69
70
  description:
70
- email: hsiaoshunwen@gmail.com
71
+ email:
72
+ - hsiaoshunwen@gmail.com
71
73
  executables: []
72
74
  extensions: []
73
75
  extra_rdoc_files: []
@@ -75,7 +77,6 @@ files:
75
77
  - ".gitignore"
76
78
  - ".travis.yml"
77
79
  - Gemfile
78
- - Guardfile
79
80
  - LICENSE.txt
80
81
  - README.md
81
82
  - Rakefile
@@ -95,7 +96,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
95
96
  requirements:
96
97
  - - ">="
97
98
  - !ruby/object:Gem::Version
98
- version: '0'
99
+ version: 1.9.3
99
100
  required_rubygems_version: !ruby/object:Gem::Requirement
100
101
  requirements:
101
102
  - - ">="
@@ -108,6 +109,4 @@ signing_key:
108
109
  specification_version: 4
109
110
  summary: Fluentd output plugin. Rename keys which match given regular expressions,
110
111
  assign new tags and re-emit the records.
111
- test_files:
112
- - test/helper.rb
113
- - test/plugin/test_out_rename_key.rb
112
+ test_files: []
data/Guardfile DELETED
@@ -1,9 +0,0 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
- guard :rspec do
5
- watch(%r{^spec/.+_spec\.rb$})
6
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
- watch('spec/spec_helper.rb') { "spec" }
8
- end
9
-