fluent-plugin-mqtt 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/fluent-plugin-mqtt.gemspec +5 -7
- data/lib/fluent/plugin/in_mqtt.rb +35 -12
- data/test/plugin/test_in_mqtt.rb +205 -34
- metadata +33 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58d93e842a532198c75c7520cedb5417db36252a
|
4
|
+
data.tar.gz: b12b3618be94456a9307fc4d816e0e44b0255858
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e65f421d83d3b588430f378b5b87d18af278162ec42b21fb0d53a4ccbc8aa2d34b1f7f0c88f3acbaf0d3a8b2d62f983e54ae6e5a8ebd234fc96a44d2c388f4b5
|
7
|
+
data.tar.gz: f3e3113d8cadafe1d4347f0f8bc41d982a18fd1375df7aea0f7059beaf41e9d89f8baa571074f2511359c087b8dcbc5a8d1215ae91a631c9f8d9f8d0cedf7dc2
|
data/README.md
CHANGED
data/fluent-plugin-mqtt.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "fluent-plugin-mqtt"
|
7
|
-
spec.version = "0.0.
|
7
|
+
spec.version = "0.0.4"
|
8
8
|
spec.authors = ["Yuuna Kurita"]
|
9
9
|
spec.email = ["yuuna.m@gmail.com"]
|
10
10
|
spec.summary = %q{fluentd input plugin for mqtt server}
|
@@ -17,12 +17,10 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.
|
21
|
-
spec.add_development_dependency "rake"
|
22
|
-
spec.add_development_dependency "mqtt"
|
23
|
-
spec.add_development_dependency "fluentd"
|
24
|
-
spec.add_runtime_dependency "mqtt"
|
20
|
+
spec.add_runtime_dependency "mqtt", "~> 0.3.1"
|
25
21
|
spec.add_runtime_dependency "fluentd"
|
26
22
|
spec.add_runtime_dependency "yajl-ruby"
|
27
|
-
|
23
|
+
spec.add_runtime_dependency "test-unit"
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
25
|
+
spec.add_development_dependency "rake"
|
28
26
|
end
|
@@ -11,6 +11,13 @@ module Fluent
|
|
11
11
|
config_param :port, :integer, :default => 1883
|
12
12
|
config_param :bind, :string, :default => '127.0.0.1'
|
13
13
|
config_param :topic, :string, :default => '#'
|
14
|
+
config_param :format, :string, :default => 'none'
|
15
|
+
config_param :username, :string, :default => nil
|
16
|
+
config_param :password, :string, :default => nil
|
17
|
+
config_param :ssl, :bool, :default => nil
|
18
|
+
config_param :ca, :string, :default => nil
|
19
|
+
config_param :key, :string, :default => nil
|
20
|
+
config_param :cert, :string, :default => nil
|
14
21
|
|
15
22
|
require 'mqtt'
|
16
23
|
|
@@ -19,23 +26,48 @@ module Fluent
|
|
19
26
|
@bind ||= conf['bind']
|
20
27
|
@topic ||= conf['topic']
|
21
28
|
@port ||= conf['port']
|
29
|
+
|
30
|
+
configure_parser(conf)
|
31
|
+
end
|
32
|
+
|
33
|
+
def configure_parser(conf)
|
34
|
+
@parser = Plugin.new_parser(@format)
|
35
|
+
@parser.configure(conf)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Return [time (if not available return now), message]
|
39
|
+
def parse(message)
|
40
|
+
return @parser.parse(message)[1], @parser.parse(message)[0] || Fluent::Engine.now
|
22
41
|
end
|
23
42
|
|
24
43
|
def start
|
25
44
|
$log.debug "start mqtt #{@bind}"
|
26
|
-
|
45
|
+
opts = {host: @bind,
|
46
|
+
port: @port,
|
47
|
+
username: @username,
|
48
|
+
password: @password}
|
49
|
+
opts[:ssl] = @ssl if @ssl
|
50
|
+
opts[:ca_file] = @ca if @ca
|
51
|
+
opts[:crt_file] = @crt if @crt
|
52
|
+
opts[:key_file] = @key if @key
|
53
|
+
@connect = MQTT::Client.connect(opts)
|
27
54
|
@connect.subscribe(@topic)
|
28
55
|
|
29
56
|
@thread = Thread.new do
|
30
57
|
@connect.get do |topic,message|
|
31
58
|
topic.gsub!("/","\.")
|
32
59
|
$log.debug "#{topic}: #{message}"
|
33
|
-
|
60
|
+
begin
|
61
|
+
parsed_message = self.parse(message)
|
62
|
+
rescue Exception => e
|
63
|
+
$log.error e
|
64
|
+
end
|
65
|
+
emit topic, parsed_message[0], parsed_message[1]
|
34
66
|
end
|
35
67
|
end
|
36
68
|
end
|
37
69
|
|
38
|
-
def emit topic, message
|
70
|
+
def emit topic, message, time = Fluent::Engine.now
|
39
71
|
if message.class == Array
|
40
72
|
message.each do |data|
|
41
73
|
$log.debug "#{topic}: #{data}"
|
@@ -46,15 +78,6 @@ module Fluent
|
|
46
78
|
end
|
47
79
|
end
|
48
80
|
|
49
|
-
def json_parse message
|
50
|
-
begin
|
51
|
-
y = Yajl::Parser.new
|
52
|
-
y.parse(message)
|
53
|
-
rescue
|
54
|
-
$log.error "JSON parse error", :error => $!.to_s, :error_class => $!.class.to_s
|
55
|
-
$log.warn_backtrace $!.backtrace
|
56
|
-
end
|
57
|
-
end
|
58
81
|
def shutdown
|
59
82
|
@thread.kill
|
60
83
|
@connect.disconnect
|
data/test/plugin/test_in_mqtt.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
-
class Fluent::MqttInput
|
4
|
-
def emit topic, message , time = Fluent::Engine.now
|
5
|
-
if message.class == Array
|
6
|
-
message.each do |data|
|
7
|
-
|
8
|
-
Fluent::Engine.emit(topic, message["t"], data)
|
9
|
-
end
|
10
|
-
else
|
11
|
-
Fluent::Engine.emit(topic, message["t"], message)
|
12
|
-
end
|
13
|
-
end
|
3
|
+
class Fluent::MqttInput
|
4
|
+
#def emit topic, message , time = Fluent::Engine.now
|
5
|
+
#if message.class == Array
|
6
|
+
#message.each do |data|
|
7
|
+
#$log.debug "#{topic}: #{data}"
|
8
|
+
#Fluent::Engine.emit(topic, message["t"], data)
|
9
|
+
#end
|
10
|
+
#else
|
11
|
+
#Fluent::Engine.emit(topic, message["t"], message)
|
12
|
+
#end
|
13
|
+
#end
|
14
14
|
|
15
15
|
end
|
16
16
|
|
@@ -19,50 +19,221 @@ class MqttInputTest < Test::Unit::TestCase
|
|
19
19
|
Fluent::Test.setup
|
20
20
|
end
|
21
21
|
|
22
|
+
CONFIG = %[ bind 127.0.0.1
|
23
|
+
port 1883
|
24
|
+
format json ]
|
22
25
|
|
23
|
-
|
24
|
-
]
|
25
|
-
|
26
|
-
def create_driver(conf = CONFIG)
|
26
|
+
def create_driver(conf = CONFIG)
|
27
27
|
Fluent::Test::InputTestDriver.new(Fluent::MqttInput).configure(conf)
|
28
28
|
end
|
29
|
-
|
30
|
-
def
|
29
|
+
|
30
|
+
def test_configure_1
|
31
31
|
d = create_driver(
|
32
32
|
%[ bind 127.0.0.1
|
33
|
-
port
|
33
|
+
port 1883
|
34
|
+
format none]
|
34
35
|
)
|
35
36
|
assert_equal '127.0.0.1', d.instance.bind
|
36
|
-
assert_equal
|
37
|
+
assert_equal 1883, d.instance.port
|
38
|
+
assert_equal 'none', d.instance.format
|
39
|
+
|
40
|
+
d2 = create_driver(
|
41
|
+
%[ bind 127.0.0.1
|
42
|
+
port 1883
|
43
|
+
format csv
|
44
|
+
keys time,message
|
45
|
+
time_key time]
|
46
|
+
)
|
47
|
+
assert_equal 'csv', d2.instance.format
|
48
|
+
assert_equal 'time', d2.instance.time_key
|
37
49
|
end
|
38
50
|
|
51
|
+
def test_configure_2
|
52
|
+
d = create_driver(
|
53
|
+
%[ bind 127.0.0.1
|
54
|
+
port 1883
|
55
|
+
format csv
|
56
|
+
keys time,message ]
|
57
|
+
)
|
58
|
+
assert_equal '127.0.0.1', d.instance.bind
|
59
|
+
assert_equal 1883, d.instance.port
|
60
|
+
assert_equal 'csv', d.instance.format
|
61
|
+
end
|
39
62
|
|
40
63
|
def sub_client
|
41
|
-
connect = MQTT::Client.connect
|
64
|
+
connect = MQTT::Client.connect("localhost")
|
42
65
|
connect.subscribe('#')
|
43
66
|
return connect
|
44
67
|
end
|
45
68
|
|
69
|
+
def test_format_json_without_time_key
|
70
|
+
d = create_driver(
|
71
|
+
%[ bind 127.0.0.1
|
72
|
+
port 1883
|
73
|
+
format json ]
|
74
|
+
)
|
75
|
+
time = Time.parse("2011-01-02 13:14:15 UTC").to_i
|
76
|
+
data = [
|
77
|
+
{tag: "tag1", message: {"t" => time, "v" => {"a"=>1}}},
|
78
|
+
{tag: "tag2", message: {"t" => time, "v" => {"a"=>1}}},
|
79
|
+
{tag: "tag3", message: {"t" => time, "v" => {"a"=>32}}},
|
80
|
+
]
|
81
|
+
|
82
|
+
d.run do
|
83
|
+
data.each do |record|
|
84
|
+
send_data record[:tag], record[:message], d.instance.format
|
85
|
+
sleep 0.1
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
emits = d.emits
|
90
|
+
assert_equal('tag1', emits[0][0])
|
91
|
+
assert_equal({"t" => time, "v" => {"a"=>1}}, emits[0][2])
|
92
|
+
|
93
|
+
assert_equal('tag2', emits[1][0])
|
94
|
+
assert_equal({"t" => time, "v" => {"a"=>1}}, emits[1][2])
|
95
|
+
|
96
|
+
assert_equal('tag3', emits[2][0])
|
97
|
+
assert_equal({"t" => time, "v" => {"a"=>32}}, emits[2][2])
|
98
|
+
end
|
99
|
+
|
100
|
+
def test_format_json_with_time_key
|
101
|
+
d = create_driver(
|
102
|
+
%[ bind 127.0.0.1
|
103
|
+
port 1883
|
104
|
+
format json
|
105
|
+
time_key t ]
|
106
|
+
)
|
107
|
+
time = Time.parse("2011-01-02 13:14:15 UTC").to_i
|
108
|
+
data = [
|
109
|
+
{tag: "tag1", message: {"t" => time, "v" => {"a"=>1}}},
|
110
|
+
{tag: "tag2", message: {"t" => time, "v" => {"a"=>1}}},
|
111
|
+
{tag: "tag3", message: {"t" => time, "v" => {"a"=>31}}},
|
112
|
+
{tag: "tag3", message: {"t" => time, "v" => {"a"=>32}}},
|
113
|
+
]
|
114
|
+
|
115
|
+
d.run do
|
116
|
+
data.each do |record|
|
117
|
+
send_data record[:tag], record[:message], d.instance.format
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
emits = d.emits
|
122
|
+
assert_equal('tag1', emits[0][0])
|
123
|
+
assert_equal(time, emits[0][1])
|
124
|
+
assert_equal({"v" => {"a"=>1}}, emits[0][2])
|
125
|
+
end
|
126
|
+
|
127
|
+
def test_format_none
|
128
|
+
d = create_driver(
|
129
|
+
%[ bind 127.0.0.1
|
130
|
+
port 1883
|
131
|
+
format none]
|
132
|
+
)
|
46
133
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
d.expect_emit "tag3", time, {"t" => time, "v" => {"a"=>31}}
|
53
|
-
d.expect_emit "tag3", time, {"t" => time, "v" => {"a"=>32}}
|
134
|
+
data = [
|
135
|
+
{tag: "tag1", message: 'hello world'},
|
136
|
+
{tag: "tag2", message: 'another world'},
|
137
|
+
{tag: "tag3", message: ''},
|
138
|
+
]
|
54
139
|
|
55
140
|
d.run do
|
56
|
-
|
57
|
-
send_data tag,
|
58
|
-
|
59
|
-
send_data "tag3", time , [{"t" => time, "v" => {"a"=>31}} , {"t" => time, "v" => {"a"=>32}}]
|
60
|
-
sleep 0.5
|
141
|
+
data.each do |record|
|
142
|
+
send_data record[:tag], record[:message], d.instance.format
|
143
|
+
end
|
61
144
|
end
|
62
145
|
|
146
|
+
emits = d.emits
|
147
|
+
time = Fluent::Engine.now
|
148
|
+
assert_equal('tag1', emits[0][0])
|
149
|
+
assert_equal({'message' => 'hello world'}, emits[0][2])
|
150
|
+
assert_equal('tag2', emits[1][0])
|
151
|
+
assert_equal({'message' => 'another world'}, emits[1][2])
|
152
|
+
assert_equal('tag3', emits[2][0])
|
153
|
+
assert_equal({'message' => ''}, emits[2][2])
|
63
154
|
end
|
64
155
|
|
65
|
-
def
|
66
|
-
|
156
|
+
def test_format_csv
|
157
|
+
d = create_driver(
|
158
|
+
%[ bind 127.0.0.1
|
159
|
+
port 1883
|
160
|
+
format csv
|
161
|
+
keys time,message]
|
162
|
+
)
|
163
|
+
|
164
|
+
time = Time.parse("2011-01-02 13:14:15 UTC").to_i
|
165
|
+
data = [
|
166
|
+
{tag: "tag1", message: "#{time},hello world" },
|
167
|
+
{tag: "tag2", message: "#{time},hello to you to" },
|
168
|
+
{tag: "tag3", message: "#{time}," },
|
169
|
+
]
|
170
|
+
|
171
|
+
d.run do
|
172
|
+
data.each do |record|
|
173
|
+
send_data record[:tag], record[:message], d.instance.format
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
emits = d.emits
|
178
|
+
#puts 'emits length', emits.length.to_s
|
179
|
+
assert_equal('tag1', emits[0][0])
|
180
|
+
assert_equal({'time' => time.to_s, 'message' => 'hello world'}, emits[0][2])
|
181
|
+
|
182
|
+
assert_equal('tag2', emits[1][0])
|
183
|
+
assert_equal({'time' => time.to_s, 'message' => 'hello to you to'}, emits[1][2])
|
184
|
+
assert_equal('tag3', emits[2][0])
|
185
|
+
assert_equal({'time' => time.to_s, 'message' => nil}, emits[2][2])
|
186
|
+
end
|
187
|
+
|
188
|
+
def test_format_csv_with_time_key
|
189
|
+
d = create_driver(
|
190
|
+
%[ bind 127.0.0.1
|
191
|
+
port 1883
|
192
|
+
format csv
|
193
|
+
keys time2,message
|
194
|
+
time_key time2
|
195
|
+
time_format %S]
|
196
|
+
)
|
197
|
+
|
198
|
+
time = Time.parse("2011-01-02 13:14:15 UTC").to_i
|
199
|
+
data = [
|
200
|
+
{tag: "tag1", message: "#{time},abc" },
|
201
|
+
{tag: "tag2", message: "#{time},def" },
|
202
|
+
{tag: "tag3", message: "#{time},ghi" },
|
203
|
+
{tag: "tag3", message: "#{time}," },
|
204
|
+
]
|
205
|
+
|
206
|
+
d.run do
|
207
|
+
data.each do |record|
|
208
|
+
send_data record[:tag], record[:message], d.instance.format
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
emits = d.emits
|
213
|
+
assert_equal('tag1', emits[0][0])
|
214
|
+
assert_equal({'message' => 'abc'}, emits[0][2])
|
215
|
+
|
216
|
+
assert_equal('tag2', emits[1][0])
|
217
|
+
assert_equal({'message' => 'def'}, emits[1][2])
|
218
|
+
|
219
|
+
assert_equal('tag3', emits[2][0])
|
220
|
+
assert_equal({'message' => 'ghi'}, emits[2][2])
|
221
|
+
|
222
|
+
assert_equal('tag3', emits[3][0])
|
223
|
+
assert_equal({'message' => nil}, emits[3][2])
|
224
|
+
end
|
225
|
+
|
226
|
+
def send_data tag, record, format
|
227
|
+
case format
|
228
|
+
when 'none'
|
229
|
+
sub_client.publish(tag, record)
|
230
|
+
when 'json'
|
231
|
+
sub_client.publish(tag, record.to_json)
|
232
|
+
when 'csv'
|
233
|
+
sub_client.publish(tag, record)
|
234
|
+
else
|
235
|
+
sub_client.publish(tag, record)
|
236
|
+
end
|
237
|
+
sleep 0.2
|
67
238
|
end
|
68
239
|
end
|
metadata
CHANGED
@@ -1,111 +1,97 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-mqtt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuuna Kurita
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ~>
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.5'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ~>
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.5'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
14
|
+
name: mqtt
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
30
16
|
requirements:
|
31
|
-
- -
|
17
|
+
- - "~>"
|
32
18
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
34
|
-
type: :
|
19
|
+
version: 0.3.1
|
20
|
+
type: :runtime
|
35
21
|
prerelease: false
|
36
22
|
version_requirements: !ruby/object:Gem::Requirement
|
37
23
|
requirements:
|
38
|
-
- -
|
24
|
+
- - "~>"
|
39
25
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
26
|
+
version: 0.3.1
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
28
|
+
name: fluentd
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
44
30
|
requirements:
|
45
|
-
- -
|
31
|
+
- - ">="
|
46
32
|
- !ruby/object:Gem::Version
|
47
33
|
version: '0'
|
48
|
-
type: :
|
34
|
+
type: :runtime
|
49
35
|
prerelease: false
|
50
36
|
version_requirements: !ruby/object:Gem::Requirement
|
51
37
|
requirements:
|
52
|
-
- -
|
38
|
+
- - ">="
|
53
39
|
- !ruby/object:Gem::Version
|
54
40
|
version: '0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
42
|
+
name: yajl-ruby
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
58
44
|
requirements:
|
59
|
-
- -
|
45
|
+
- - ">="
|
60
46
|
- !ruby/object:Gem::Version
|
61
47
|
version: '0'
|
62
|
-
type: :
|
48
|
+
type: :runtime
|
63
49
|
prerelease: false
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
65
51
|
requirements:
|
66
|
-
- -
|
52
|
+
- - ">="
|
67
53
|
- !ruby/object:Gem::Version
|
68
54
|
version: '0'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
56
|
+
name: test-unit
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
|
-
- -
|
59
|
+
- - ">="
|
74
60
|
- !ruby/object:Gem::Version
|
75
61
|
version: '0'
|
76
62
|
type: :runtime
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
|
-
- -
|
66
|
+
- - ">="
|
81
67
|
- !ruby/object:Gem::Version
|
82
68
|
version: '0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
70
|
+
name: bundler
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
|
-
- -
|
73
|
+
- - "~>"
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
90
|
-
type: :
|
75
|
+
version: '1.5'
|
76
|
+
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
|
-
- -
|
80
|
+
- - "~>"
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
82
|
+
version: '1.5'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
84
|
+
name: rake
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
100
86
|
requirements:
|
101
|
-
- -
|
87
|
+
- - ">="
|
102
88
|
- !ruby/object:Gem::Version
|
103
89
|
version: '0'
|
104
|
-
type: :
|
90
|
+
type: :development
|
105
91
|
prerelease: false
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
107
93
|
requirements:
|
108
|
-
- -
|
94
|
+
- - ">="
|
109
95
|
- !ruby/object:Gem::Version
|
110
96
|
version: '0'
|
111
97
|
description: fluentd input plugin for mqtt server
|
@@ -115,7 +101,7 @@ executables: []
|
|
115
101
|
extensions: []
|
116
102
|
extra_rdoc_files: []
|
117
103
|
files:
|
118
|
-
- .gitignore
|
104
|
+
- ".gitignore"
|
119
105
|
- Gemfile
|
120
106
|
- LICENSE.txt
|
121
107
|
- README.md
|
@@ -134,17 +120,17 @@ require_paths:
|
|
134
120
|
- lib
|
135
121
|
required_ruby_version: !ruby/object:Gem::Requirement
|
136
122
|
requirements:
|
137
|
-
- -
|
123
|
+
- - ">="
|
138
124
|
- !ruby/object:Gem::Version
|
139
125
|
version: '0'
|
140
126
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
127
|
requirements:
|
142
|
-
- -
|
128
|
+
- - ">="
|
143
129
|
- !ruby/object:Gem::Version
|
144
130
|
version: '0'
|
145
131
|
requirements: []
|
146
132
|
rubyforge_project:
|
147
|
-
rubygems_version: 2.
|
133
|
+
rubygems_version: 2.2.2
|
148
134
|
signing_key:
|
149
135
|
specification_version: 4
|
150
136
|
summary: fluentd input plugin for mqtt server
|