fluent-mixin-plaintextformatter 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.travis.yml +4 -0
- data/fluent-mixin-plaintextformatter.gemspec +3 -1
- data/lib/fluent/mixin/plaintextformatter.rb +13 -2
- data/test/mixin/test_plaintextformatter.rb +40 -1
- metadata +29 -18
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d3f892bb7a90ccd8e91cae4e9581ac540b1365c4
|
4
|
+
data.tar.gz: 04b6d2744aa25081c5e8e6b7f629f0b4d60fa9de
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6a5b50af5b252f1b30c292cab814b501ca84656f3dc802cb5eed660973ade3bf1351e44ddc457071b004470c21b5f0e0823be0e4cdb40d91a0625c9908fe3b19
|
7
|
+
data.tar.gz: e6c183f7a11465843e1aa4fc291f572ee03ef839bcae67e2240c011f080e989fc67b296261365289efa894ef121610b92b0e036bb293510e646e0aaff0d1096b
|
data/.travis.yml
ADDED
@@ -1,12 +1,13 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
Gem::Specification.new do |gem|
|
3
3
|
gem.name = "fluent-mixin-plaintextformatter"
|
4
|
-
gem.version = "0.2.
|
4
|
+
gem.version = "0.2.3"
|
5
5
|
gem.authors = ["TAGOMORI Satoshi"]
|
6
6
|
gem.email = ["tagomoris@gmail.com"]
|
7
7
|
gem.description = %q{included to format values into json, tsv or csv}
|
8
8
|
gem.summary = %q{Text formatter mixin module to create fluentd plugin}
|
9
9
|
gem.homepage = "https://github.com/tagomoris/fluent-mixin-plaintextformatter"
|
10
|
+
gem.license = "APLv2"
|
10
11
|
|
11
12
|
gem.files = `git ls-files`.split($\)
|
12
13
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -15,4 +16,5 @@ Gem::Specification.new do |gem|
|
|
15
16
|
|
16
17
|
gem.add_runtime_dependency "fluentd"
|
17
18
|
gem.add_runtime_dependency "ltsv"
|
19
|
+
gem.add_development_dependency "rake"
|
18
20
|
end
|
@@ -77,7 +77,7 @@ module Fluent
|
|
77
77
|
end
|
78
78
|
else
|
79
79
|
@custom_attributes.map{|attr|
|
80
|
-
|
80
|
+
record[attr].nil? ? 'NULL' : record[attr].to_s
|
81
81
|
}.join(@f_separator)
|
82
82
|
end
|
83
83
|
end
|
@@ -100,7 +100,18 @@ module Fluent
|
|
100
100
|
else
|
101
101
|
''
|
102
102
|
end
|
103
|
-
|
103
|
+
begin
|
104
|
+
time_str + tag_str + stringify_record(record) + (@add_newline ? "\n" : '')
|
105
|
+
rescue JSON::GeneratorError => e
|
106
|
+
# partial character in source, but hit end
|
107
|
+
# source sequence is illegal/malformed utf-8
|
108
|
+
$log.error e.message + ", ignored", :error_class => e.class, :tag => tag, :record => record.inspect # quote explicitly
|
109
|
+
''
|
110
|
+
rescue ArgumentError => e
|
111
|
+
raise unless e.message == 'invalid byte sequence in UTF-8'
|
112
|
+
$log.error e.message + ", ignored", :error_class => e.class, :tag => tag, :record => record.inspect # quote explicitly
|
113
|
+
''
|
114
|
+
end
|
104
115
|
end
|
105
116
|
end
|
106
117
|
end
|
@@ -105,7 +105,7 @@ remove_prefix test
|
|
105
105
|
# output_data_type json
|
106
106
|
assert_equal r, JSON.parse(line.chomp.split(/\001/, 3)[2])
|
107
107
|
end
|
108
|
-
|
108
|
+
|
109
109
|
def test_default_without_time_tag
|
110
110
|
p = create_plugin_instance(Fluent::TestCOutput, "type testc\n")
|
111
111
|
r = {'foo' => 'foo foo baz', 'bar' => 10000}
|
@@ -174,6 +174,31 @@ field_separator comma
|
|
174
174
|
assert_equal "10000,foo foo baz\n", p.format('test.a', 1342163105, r)
|
175
175
|
end
|
176
176
|
|
177
|
+
def test_format_invalid_utf8_sequence
|
178
|
+
invalid_str = [0xFA, 0xFB].pack('CC').force_encoding('utf-8')
|
179
|
+
valid_str = [0xFF, 0xE3].pack("U*")
|
180
|
+
|
181
|
+
p1 = create_plugin_instance(Fluent::TestAOutput, %[
|
182
|
+
type testa
|
183
|
+
output_include_time true
|
184
|
+
output_include_tag true
|
185
|
+
output_data_type json
|
186
|
+
])
|
187
|
+
r1 = p1.format('tag', Fluent::Engine.now, {'foo' => valid_str, 'bar' => invalid_str + valid_str})
|
188
|
+
# #format should logs for this record (but we cannot test it...)
|
189
|
+
assert_equal '', r1
|
190
|
+
|
191
|
+
p2 = create_plugin_instance(Fluent::TestAOutput, %[
|
192
|
+
type testa
|
193
|
+
output_include_time true
|
194
|
+
output_include_tag true
|
195
|
+
output_data_type ltsv
|
196
|
+
])
|
197
|
+
r2 = p2.format('tag', Fluent::Engine.now, {'foo' => valid_str, 'bar' => invalid_str + valid_str})
|
198
|
+
# #format should logs for this record (but we cannot test it...)
|
199
|
+
assert_equal '', r2
|
200
|
+
end
|
201
|
+
|
177
202
|
def test_field_separator_newline_ltsv
|
178
203
|
p = create_plugin_instance(Fluent::TestDOutput, "type testd\nutc\n")
|
179
204
|
r = {'foo' => 'foo foo baz', 'bar' => 10000}
|
@@ -199,4 +224,18 @@ field_separator comma
|
|
199
224
|
end
|
200
225
|
assert_equal rs, obj_from_ltsv
|
201
226
|
end
|
227
|
+
|
228
|
+
def test_format_boolean_attribute
|
229
|
+
p = create_plugin_instance(Fluent::TestAOutput, %[
|
230
|
+
type testa
|
231
|
+
output_include_time true
|
232
|
+
output_include_tag true
|
233
|
+
output_data_type attr:foo,bar
|
234
|
+
])
|
235
|
+
r = {'foo' => true, 'bar' => false}
|
236
|
+
# stringify
|
237
|
+
assert_equal "true\tfalse", p.stringify_record(r)
|
238
|
+
# format
|
239
|
+
assert_equal "2012-07-13T07:05:05Z\ttest.a\ttrue\tfalse\n", p.format('test.a', 1342163105, r)
|
240
|
+
end
|
202
241
|
end
|
metadata
CHANGED
@@ -1,46 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-mixin-plaintextformatter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- TAGOMORI Satoshi
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-09-30 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: fluentd
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: ltsv
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
44
53
|
- !ruby/object:Gem::Version
|
45
54
|
version: '0'
|
46
55
|
description: included to format values into json, tsv or csv
|
@@ -51,6 +60,7 @@ extensions: []
|
|
51
60
|
extra_rdoc_files: []
|
52
61
|
files:
|
53
62
|
- .gitignore
|
63
|
+
- .travis.yml
|
54
64
|
- Gemfile
|
55
65
|
- LICENSE.txt
|
56
66
|
- README.md
|
@@ -61,30 +71,31 @@ files:
|
|
61
71
|
- test/mixin/test_plaintextformatter.rb
|
62
72
|
- test/output.rb
|
63
73
|
homepage: https://github.com/tagomoris/fluent-mixin-plaintextformatter
|
64
|
-
licenses:
|
74
|
+
licenses:
|
75
|
+
- APLv2
|
76
|
+
metadata: {}
|
65
77
|
post_install_message:
|
66
78
|
rdoc_options: []
|
67
79
|
require_paths:
|
68
80
|
- lib
|
69
81
|
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
-
none: false
|
71
82
|
requirements:
|
72
|
-
- -
|
83
|
+
- - '>='
|
73
84
|
- !ruby/object:Gem::Version
|
74
85
|
version: '0'
|
75
86
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
-
none: false
|
77
87
|
requirements:
|
78
|
-
- -
|
88
|
+
- - '>='
|
79
89
|
- !ruby/object:Gem::Version
|
80
90
|
version: '0'
|
81
91
|
requirements: []
|
82
92
|
rubyforge_project:
|
83
|
-
rubygems_version:
|
93
|
+
rubygems_version: 2.0.3
|
84
94
|
signing_key:
|
85
|
-
specification_version:
|
95
|
+
specification_version: 4
|
86
96
|
summary: Text formatter mixin module to create fluentd plugin
|
87
97
|
test_files:
|
88
98
|
- test/helper.rb
|
89
99
|
- test/mixin/test_plaintextformatter.rb
|
90
100
|
- test/output.rb
|
101
|
+
has_rdoc:
|