fluent-plugin-rename-key 0.1.4 → 0.2.0

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
  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
-