fluent-plugin-mqtt 0.0.3 → 0.0.4
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 +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
|