fluent-plugin-nats 0.1.0 → 1.0.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: 774b17902a6d2b133d83d093ae6ea1b2e1767112
4
- data.tar.gz: 6d75ec076c1ab6e82916bd43da7101191a34d5b4
3
+ metadata.gz: 37e3edf9206fe66e157aa2c2d8a0ae58e2f5d934
4
+ data.tar.gz: 22a579e710b96489e1a29cb67f7982409a7f5b6e
5
5
  SHA512:
6
- metadata.gz: 8dc09878eeee36105446dc2a07669f9cd57c55547d2c430fc1be0f944dcddaa45d94335411474a420639a07cb672078c7caaf8917f721d8136bbf16b24fd0fe7
7
- data.tar.gz: 5f8a5cfbb0190f7600c8450d8e82afaeaaee9368da6e456d3bb11e0f61d289f430630c0d9c0bfe868d1382bee54b5212efb2ca8887ffa7a312aa039e448df746
6
+ metadata.gz: 20518c485938cf956976a732cfe8c3c64162834af602aac5dc0eb926c64942f9308933e8de083366aa22c25442122f8941abb14c48ec686fce587e0393e82215
7
+ data.tar.gz: 5a6b040380c3787da130b05d3a5c9bf93bda73e4d112289d56744714d5d4ee4f5e245a05a60d98c9f81bcd9d549fe951ad8336a17e000f88c9623cf40661d88a
data/README.md CHANGED
@@ -6,6 +6,12 @@ fluent-plugin-nats
6
6
 
7
7
  [![Build Status](https://secure.travis-ci.org/achied/fluent-plugin-nats.png)](http://travis-ci.org/achied/fluent-plugin-nats)
8
8
 
9
+ ## Requirements
10
+
11
+ | fluent-plugin-nats | Fluentd | Ruby |
12
+ |--------------------|-------------|--------|
13
+ | >= 1.0.0 | >= v0.14.20 | >= 2.1 |
14
+ | < 1.0.0 | >= v0.12.0 | >= 1.9 |
9
15
 
10
16
  # Getting Started
11
17
  Setup the NATS input:
@@ -18,7 +24,7 @@ Setup the NATS input:
18
24
  port 4222
19
25
  user nats
20
26
  password nats
21
- queue fluent.>,fluent2.>
27
+ queues fluent.>,fluent2.>
22
28
  ssl false
23
29
  </source>
24
30
  ~~~~~
@@ -31,6 +37,38 @@ Setup the match output:
31
37
  </match>
32
38
  ~~~~
33
39
 
40
+ # Configuration
41
+
42
+ ## Plugin helpers
43
+
44
+ * thread
45
+
46
+ * See also: Fluent::Plugin::Input
47
+
48
+ ## Fluent::Plugin::NATSInput
49
+
50
+ * **host** (string) (optional): NATS server hostname
51
+ * Default value: `localhost`
52
+ * **user** (string) (optional): Username for authorized connection
53
+ * Default value: `nats`
54
+ * **password** (string) (optional): Password for authorized connection
55
+ * Default value: `nats`
56
+ * **port** (integer) (optional): NATS server port
57
+ * Default value: `4222`
58
+ * **queues** (array) (optional): Subscribing queue names
59
+ * Default value: `["fluent.>"]`
60
+ * **queue** (string) (optional):
61
+ * Default value: `fluent.>`
62
+ * Obsoleted: Use `queues` instead
63
+ * **tag** (string) (optional): The tag prepend before queue name
64
+ * Default value: `nats`
65
+ * **ssl** (bool) (optional): Enable secure SSL/TLS connection
66
+ * Default value: `false`
67
+ * **max_reconnect_attempts** (integer) (optional): The max number of reconnect tries
68
+ * Default value: `150`
69
+ * **reconnect_time_wait** (integer) (optional): The number of seconds to wait between reconnect tries
70
+ * Default value: `2`
71
+
34
72
  # Suitable Queues
35
73
 
36
74
  ## Components
data/Rakefile CHANGED
@@ -6,8 +6,6 @@ Rake::TestTask.new(:test) do |test|
6
6
  test.libs << 'lib' << 'test'
7
7
  test.pattern = 'test/**/test_*.rb'
8
8
  test.test_files = Dir['test/plugin/*.rb']
9
- test.ruby_opts = ['-rubygems'] if defined? Gem
10
- test.ruby_opts << '-I.'
11
9
  test.verbose = false
12
10
  test.warning = false
13
11
  end
@@ -1,14 +1,14 @@
1
- # -*- encoding: utf-8 -*-
2
1
  $:.push File.expand_path("../lib", __FILE__)
3
2
 
4
3
  Gem::Specification.new do |gem|
5
4
  gem.name = "fluent-plugin-nats"
6
- gem.version = "0.1.0"
5
+ gem.version = "1.0.0"
7
6
  gem.authors = ["Eduardo Aceituno"]
8
7
  gem.email = ["achied@gmail.com"]
9
8
  gem.homepage = "https://github.com/achied/fluent-plugin-nats"
10
9
  gem.summary = %q{nats plugin for fluentd, an event collector}
11
10
  gem.description = %q{nats plugin for fluentd, an event collector}
11
+ gem.license = "Apache-2.0"
12
12
 
13
13
  gem.files = `git ls-files`.split("\n")
14
14
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -16,9 +16,10 @@ Gem::Specification.new do |gem|
16
16
  gem.require_paths = ["lib"]
17
17
 
18
18
  gem.add_dependency "eventmachine", ">= 0.12.10"
19
- gem.add_dependency "fluentd", ">= 0.10.7", "< 0.14"
19
+ gem.add_dependency "fluentd", ">= 0.14.20"
20
20
  gem.add_dependency "nats", ">= 0.4.22"
21
21
 
22
22
  gem.add_development_dependency "rake", ">= 0.9.2"
23
23
  gem.add_development_dependency "test-unit", "> 3.1"
24
+ gem.add_development_dependency "timecop"
24
25
  end
@@ -1,83 +1,91 @@
1
- module Fluent
2
- class NATSInput < Input
3
- Fluent::Plugin.register_input("nats", self)
1
+ require "fluent/plugin/input"
2
+ require "nats/client"
4
3
 
5
- config_param :host, :string, :default => "localhost"
6
- config_param :user, :string, :default => "nats"
7
- config_param :password, :string, :default => "nats", :secret => true
8
- config_param :port, :integer, :default => 4222
9
- config_param :queue, :string, :default => "fluent.>"
10
- config_param :tag, :string, :default => "nats"
11
- config_param :ssl, :bool, :default => false
12
- config_param :max_reconnect_attempts, :integer, :default => 150
13
- config_param :reconnect_time_wait, :integer, :default => 2
4
+ module Fluent
5
+ module Plugin
6
+ class NATSInput < Fluent::Plugin::Input
7
+ Fluent::Plugin.register_input("nats", self)
14
8
 
15
- def initialize
16
- require "nats/client"
9
+ helpers :thread
17
10
 
18
- NATS.on_error { |err| puts "Server Error: #{err}"; exit! }
19
- super
20
- end
11
+ desc "NATS server hostname"
12
+ config_param :host, :string, default: "localhost"
13
+ desc "Username for authorized connection"
14
+ config_param :user, :string, default: "nats"
15
+ desc "Password for authorized connection"
16
+ config_param :password, :string, default: "nats", secret: true
17
+ desc "NATS server port"
18
+ config_param :port, :integer, default: 4222
19
+ desc "Subscribing queue names"
20
+ config_param :queues, :array, default: ["fluent.>"]
21
+ config_param :queue, :string, default: "fluent.>", obsoleted: "Use `queues` instead"
22
+ desc "The tag prepend before queue name"
23
+ config_param :tag, :string, default: "nats"
24
+ desc "Enable secure SSL/TLS connection"
25
+ config_param :ssl, :bool, default: false
26
+ desc "The max number of reconnect tries"
27
+ config_param :max_reconnect_attempts, :integer, default: 150
28
+ desc "The number of seconds to wait between reconnect tries"
29
+ config_param :reconnect_time_wait, :integer, default: 2
21
30
 
22
- def configure(conf)
23
- super
31
+ def configure(conf)
32
+ super
24
33
 
25
- unless @host && @queue
26
- raise ConfigError, "'host' and 'queue' must be all specified."
34
+ @nats_config = {
35
+ uri: "nats://#{@host}:#{@port}",
36
+ ssl: @ssl,
37
+ user: @user,
38
+ pass: @password,
39
+ reconnect_time_wait: @reconnect_time_wait,
40
+ max_reconnect_attempts: @max_reconnect_attempts,
41
+ }
27
42
  end
28
43
 
29
- @nats_config = {
30
- :uri => "nats://#{@host}:#{@port}",
31
- :ssl => @ssl,
32
- :user => @user,
33
- :pass => @password,
34
- :reconnect_time_wait => @reconnect_time_wait,
35
- :max_reconnect_attempts => @max_reconnect_attempts,
36
- }
37
- end
38
-
39
- def start
40
- super
41
- run_reactor_thread
42
- @thread = Thread.new(&method(:run))
43
- log.info "listening nats on #{@uri}/#{@queue}"
44
- end
44
+ def start
45
+ super
46
+ NATS.on_error do |error_message|
47
+ log.error "Server Error: #{error_message}"
48
+ exit!
49
+ end
50
+ run_reactor_thread
51
+ thread_create(:nats_input_main, &method(:run))
52
+ log.info "listening nats on #{@uri}/#{@queue}"
53
+ end
45
54
 
46
- def shutdown
47
- super
48
- @nats_conn.close
49
- @thread.join
50
- EM.stop if EM.reactor_running?
51
- @reactor_thread.join if @reactor_thread
52
- end
55
+ def shutdown
56
+ @nats_conn.close
57
+ EM.stop if EM.reactor_running?
58
+ super
59
+ end
53
60
 
54
- def run
55
- queues = @queue.split(',')
56
- EM.next_tick {
57
- @nats_conn = NATS.connect(@nats_config) {
58
- queues.each do |queue|
59
- @nats_conn.subscribe(queue) do |msg, reply, sub|
60
- tag = "#{@tag}.#{sub}"
61
- begin
62
- msg_json = JSON.parse(msg)
63
- rescue JSON::ParserError => e
64
- log.error "Failed parsing JSON #{e.inspect}. Passing as a normal string"
65
- msg_json = msg
61
+ def run
62
+ EM.next_tick do
63
+ @nats_conn = NATS.connect(@nats_config) do
64
+ @queues.each do |queue|
65
+ @nats_conn.subscribe(queue) do |msg, _reply, sub|
66
+ tag = "#{@tag}.#{sub}"
67
+ begin
68
+ message = JSON.parse(msg)
69
+ rescue JSON::ParserError => e
70
+ log.error "Failed parsing JSON #{e.inspect}. Passing as a normal string"
71
+ message = msg
72
+ end
73
+ time = Engine.now
74
+ router.emit(tag, time, message || {})
66
75
  end
67
- time = Engine.now
68
- router.emit(tag, time, msg_json || {})
69
76
  end
70
77
  end
71
- }
72
- }
73
- end
78
+ end
79
+ end
80
+
81
+ private
74
82
 
75
- private
76
- def run_reactor_thread
77
- unless EM.reactor_running?
78
- @reactor_thread = Thread.new { EM.run }
83
+ def run_reactor_thread
84
+ return if EM.reactor_running?
85
+ thread_create(:nats_input_reactor_thread) do
86
+ EM.run
87
+ end
79
88
  end
80
89
  end
81
-
82
90
  end
83
91
  end
@@ -17,7 +17,7 @@ def main(argv)
17
17
  queue = value
18
18
  end
19
19
  parser.on("--message=MESSAGE", "Message JSON") do |value|
20
- message = value[1..-2]
20
+ message = value
21
21
  end
22
22
  begin
23
23
  parser.parse!
@@ -1,8 +1,6 @@
1
- require 'test/unit'
2
- require 'fluent/test'
3
- require 'lib/fluent/plugin/in_nats.rb'
4
- require 'nats/client'
5
- require 'test_helper'
1
+ require "test_helper"
2
+ require "fluent/test/driver/input"
3
+ require "fluent/plugin/in_nats"
6
4
 
7
5
  class NATSInputTest < Test::Unit::TestCase
8
6
  include NATSTestHelper
@@ -16,13 +14,13 @@ class NATSInputTest < Test::Unit::TestCase
16
14
 
17
15
  def basic_queue_conf
18
16
  CONFIG + %[
19
- queue fluent.>
17
+ queues fluent.>
20
18
  ]
21
19
  end
22
20
 
23
21
  def multiple_queue_conf
24
22
  CONFIG + %[
25
- queue fluent.>, fluent2.>
23
+ queues fluent.>, fluent2.>
26
24
  ]
27
25
  end
28
26
 
@@ -33,35 +31,45 @@ class NATSInputTest < Test::Unit::TestCase
33
31
  end
34
32
 
35
33
  def create_driver(conf)
36
- Fluent::Test::InputTestDriver.new(Fluent::NATSInput).configure(conf)
34
+ Fluent::Test::Driver::Input.new(Fluent::Plugin::NATSInput).configure(conf)
35
+ end
36
+
37
+ def setup
38
+ Fluent::Test.setup
39
+ @time = Time.parse("2011-01-02 13:14:15 UTC")
40
+ Timecop.freeze(@time)
41
+ end
42
+
43
+ def teardown
44
+ Timecop.return
37
45
  end
38
46
 
39
47
  sub_test_case "configure" do
40
48
  test "basic" do
41
49
  d = create_driver basic_queue_conf
42
50
  assert_equal 4222, d.instance.port
43
- assert_equal 'localhost', d.instance.host
44
- assert_equal 'nats', d.instance.user
45
- assert_equal 'nats', d.instance.password
46
- assert_equal 'fluent.>', d.instance.queue
51
+ assert_equal "localhost", d.instance.host
52
+ assert_equal "nats", d.instance.user
53
+ assert_equal "nats", d.instance.password
54
+ assert_equal ["fluent.>"], d.instance.queues
47
55
  end
48
56
 
49
57
  test "multiple queue" do
50
58
  d = create_driver multiple_queue_conf
51
59
  assert_equal 4222, d.instance.port
52
- assert_equal 'localhost', d.instance.host
53
- assert_equal 'nats', d.instance.user
54
- assert_equal 'nats', d.instance.password
55
- assert_equal 'fluent.>, fluent2.>', d.instance.queue
60
+ assert_equal "localhost", d.instance.host
61
+ assert_equal "nats", d.instance.user
62
+ assert_equal "nats", d.instance.password
63
+ assert_equal ["fluent.>", "fluent2.>"], d.instance.queues
56
64
  end
57
65
 
58
66
  test "basic with ssl" do
59
67
  d = create_driver ssl_conf
60
68
  assert_equal 4222, d.instance.port
61
- assert_equal 'localhost', d.instance.host
62
- assert_equal 'nats', d.instance.user
63
- assert_equal 'nats', d.instance.password
64
- assert_equal 'fluent.>', d.instance.queue
69
+ assert_equal "localhost", d.instance.host
70
+ assert_equal "nats", d.instance.user
71
+ assert_equal "nats", d.instance.password
72
+ assert_equal ["fluent.>"], d.instance.queues
65
73
  assert_equal true, d.instance.ssl
66
74
  end
67
75
  end
@@ -70,154 +78,149 @@ class NATSInputTest < Test::Unit::TestCase
70
78
  test "with credentials" do
71
79
  d = create_driver basic_queue_conf
72
80
 
73
- time = Time.parse("2011-01-02 13:14:15 UTC").to_i
74
- Fluent::Engine.now = time
81
+ time = @time.to_i
75
82
 
76
- d.expect_emit "nats.fluent.test1", time, {"message"=>'nats', "fluent_timestamp"=>time}
77
- d.expect_emit "nats.fluent.test2", time, {"message"=>'nats', "fluent_timestamp"=>time}
83
+ records = [
84
+ ["nats.fluent.test1", time, { "message" => "nats", "fluent_timestamp" => time }],
85
+ ["nats.fluent.test2", time, { "message" => "nats", "fluent_timestamp" => time }]
86
+ ]
78
87
 
79
88
  uri = generate_uri(d)
80
89
 
81
90
  run_server(uri) do
82
- d.run do
83
- d.expected_emits.each { |tag, _time, record|
91
+ d.run(expect_records: records.size, timeout: 5) do
92
+ records.each do |tag, _time, record|
84
93
  send(uri, tag[5..-1], record)
85
- sleep 0.5
86
- }
94
+ end
87
95
  end
96
+ assert_equal(records, d.events)
88
97
  end
89
98
  end
90
99
 
91
100
  test "without credentials" do
92
101
  d = create_driver basic_queue_conf
102
+ time = @time.to_i
93
103
 
94
- time = Time.parse("2011-01-02 13:14:15 UTC").to_i
95
- Fluent::Engine.now = time
96
-
97
- d.expect_emit "nats.fluent.test1", time, {"message"=>'nats', "fluent_timestamp"=>time}
98
- d.expect_emit "nats.fluent.test2", time, {"message"=>'nats', "fluent_timestamp"=>time}
104
+ records = [
105
+ ["nats.fluent.test1", time, { "message" => "nats", "fluent_timestamp" => time }],
106
+ ["nats.fluent.test2", time, { "message" => "nats", "fluent_timestamp" => time }]
107
+ ]
99
108
 
100
109
  uri = generate_uri(d)
101
110
 
102
111
  run_server(uri) do
103
- d.run do
104
- d.expected_emits.each { |tag, time, record|
112
+ d.run(expect_records: records.size, timeout: 5) do
113
+ records.each do |tag, _time, record|
105
114
  send(uri, tag[5..-1], record)
106
- sleep 0.5
107
- }
115
+ end
108
116
  end
117
+ assert_equal(records, d.events)
109
118
  end
110
119
  end
111
120
 
112
121
  test "multiple queues" do
113
122
  d = create_driver multiple_queue_conf
123
+ time = @time.to_i
114
124
 
115
- time = Time.parse("2011-01-02 13:14:15 UTC").to_i
116
- Fluent::Engine.now = time
117
-
118
- d.expect_emit "nats.fluent.test1", time, {"message"=>'nats', "fluent_timestamp"=>time}
119
- d.expect_emit "nats.fluent.test2", time, {"message"=>'nats', "fluent_timestamp"=>time}
120
- d.expect_emit "nats.fluent2.test1", time, {"message"=>'nats', "fluent_timestamp"=>time}
121
- d.expect_emit "nats.fluent2.test2", time, {"message"=>'nats', "fluent_timestamp"=>time}
125
+ records = [
126
+ ["nats.fluent.test1", time, { "message" => "nats", "fluent_timestamp" => time }],
127
+ ["nats.fluent.test2", time, { "message" => "nats", "fluent_timestamp" => time }],
128
+ ["nats.fluent2.test1", time, { "message" => "nats", "fluent_timestamp" => time }],
129
+ ["nats.fluent2.test2", time, { "message" => "nats", "fluent_timestamp" => time }]
130
+ ]
122
131
 
123
132
  uri = generate_uri(d)
124
133
 
125
134
  run_server(uri) do
126
- d.run do
127
- d.expected_emits.each { |tag, time, record|
135
+ d.run(expect_records: records.size, timeout: 5) do
136
+ records.each do |tag, _time, record|
128
137
  send(uri, tag[5..-1], record)
129
- sleep 0.5
130
- }
138
+ end
131
139
  end
140
+ assert_equal(records, d.events)
132
141
  end
133
142
  end
134
143
 
135
144
  test "without fluent timestamp" do
136
145
  d = create_driver basic_queue_conf
137
-
138
146
  time = Time.now.to_i
139
- Fluent::Engine.now = time
140
147
 
141
- d.expect_emit "nats.fluent.test1", time, {"message"=>'nats'}
148
+ records = [
149
+ ["nats.fluent.test1", time, { "message" => "nats" }]
150
+ ]
142
151
 
143
152
  uri = generate_uri(d)
144
153
  run_server(uri) do
145
- d.run do
146
- d.expected_emits.each do |tag, time, record|
154
+ d.run(expect_records: records.size, timeout: 5) do
155
+ records.each do |tag, _time, record|
147
156
  send(uri, tag[5..-1], record)
148
- sleep 0.5
149
157
  end
150
158
  end
159
+ assert_equal(records, d.events)
151
160
  end
152
161
  end
153
162
 
154
163
  test "arrays" do
155
164
  d = create_driver basic_queue_conf
156
-
157
165
  time = Time.now.to_i
158
- Fluent::Engine.now = time
159
-
160
- d.expect_emit "nats.fluent.empty_array", time, []
161
- d.expect_emit "nats.fluent.string_array", time, %w(one two three)
162
-
163
- user = d.instance.user
164
- password = d.instance.password
165
- uri = "nats://#{user}:#{password}@#{d.instance.host}:#{d.instance.port}"
166
+
167
+ records = [
168
+ ["nats.fluent.empty_array", time, []],
169
+ ["nats.fluent.string_array", time, %w(one two three)]
170
+ ]
171
+
172
+ uri = generate_uri(d)
166
173
  run_server(uri) do
167
- d.run do
168
- d.expected_emits.each do |tag, time, record|
174
+ d.run(expect_records: records.size, timeout: 5) do
175
+ records.each do |tag, _time, record|
169
176
  send(uri, tag[5..-1], record)
170
- sleep 0.5
171
177
  end
172
178
  end
179
+ assert_equal(records, d.events)
173
180
  end
174
181
  end
175
182
 
176
183
  test "empty publish string" do
177
184
  d = create_driver basic_queue_conf
178
-
179
185
  time = Time.now.to_i
180
- Fluent::Engine.now = time
181
186
 
182
- d.expect_emit "nats.fluent.nil", time, {}
187
+ records = [
188
+ ["nats.fluent.nil", time, {}]
189
+ ]
183
190
 
184
191
  uri = generate_uri(d)
185
192
  run_server(uri) do
186
- d.run do
187
- d.expected_emits.each do |tag, time, record|
193
+ d.run(expect_records: records.size, timeout: 5) do
194
+ records.each do |tag, _time, _record|
188
195
  send(uri, tag[5..-1], nil)
189
- sleep 0.5
190
196
  end
191
197
  end
198
+ assert_equal(records, d.events)
192
199
  end
193
200
  end
194
201
 
195
202
  test "regular publish string" do
196
203
  d = create_driver basic_queue_conf
197
-
198
204
  time = Time.now.to_i
199
- Fluent::Engine.now = time
200
205
 
201
- d.expect_emit "nats.fluent.string", time, "Lorem ipsum dolor sit amet"
206
+ records = [
207
+ ["nats.fluent.string", time, "Lorem ipsum dolor sit amet"]
208
+ ]
202
209
 
203
210
  uri = generate_uri(d)
204
211
  run_server(uri) do
205
- d.run do
206
- d.expected_emits.each do |tag, time, record|
212
+ d.run(expect_records: records.size, timeout: 5) do
213
+ records.each do |tag, _time, _record|
207
214
  send(uri, tag[5..-1], "Lorem ipsum dolor sit amet")
208
- sleep 0.5
209
215
  end
210
216
  end
217
+ assert_equal(records, d.events)
211
218
  end
212
219
  end
213
220
  end
214
221
 
215
- def setup
216
- Fluent::Test.setup
217
- end
218
-
219
222
  def send(uri, tag, msg)
220
- system("test/nats-publish-message.rb", *%W[--uri=#{uri} --queue=#{tag} --message='#{msg.to_json}'])
223
+ system("test/nats-publish-message.rb", "--uri", uri, "--queue", tag, "--message", msg.to_json)
221
224
  end
222
225
 
223
226
  def generate_uri(driver)
@@ -1,31 +1,11 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'test/unit'
11
-
12
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
13
- $LOAD_PATH.unshift(File.dirname(__FILE__))
14
- require 'fluent/test'
15
- unless ENV.has_key?('VERBOSE')
16
- nulllogger = Object.new
17
- nulllogger.instance_eval {|obj|
18
- def method_missing(method, *args)
19
- # pass
20
- end
21
- }
22
- $log = nulllogger
23
- end
24
-
25
- class Test::Unit::TestCase
26
- end
1
+ require "bundler/setup"
2
+ require "test/unit"
27
3
 
28
- require 'nats/client'
4
+ $LOAD_PATH.unshift(File.join(__dir__, "..", "lib"))
5
+ $LOAD_PATH.unshift(__dir__)
6
+ require "fluent/test"
7
+ require "nats/client"
8
+ require "timecop"
29
9
 
30
10
  module NATSTestHelper
31
11
  def run_server(uri)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-nats
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo Aceituno
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-25 00:00:00.000000000 Z
11
+ date: 2017-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eventmachine
@@ -30,20 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.10.7
34
- - - "<"
35
- - !ruby/object:Gem::Version
36
- version: '0.14'
33
+ version: 0.14.20
37
34
  type: :runtime
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
38
  - - ">="
42
39
  - !ruby/object:Gem::Version
43
- version: 0.10.7
44
- - - "<"
45
- - !ruby/object:Gem::Version
46
- version: '0.14'
40
+ version: 0.14.20
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: nats
49
43
  requirement: !ruby/object:Gem::Requirement
@@ -86,6 +80,20 @@ dependencies:
86
80
  - - ">"
87
81
  - !ruby/object:Gem::Version
88
82
  version: '3.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: timecop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
89
97
  description: nats plugin for fluentd, an event collector
90
98
  email:
91
99
  - achied@gmail.com
@@ -105,7 +113,8 @@ files:
105
113
  - test/plugin/test_in_nats.rb
106
114
  - test/test_helper.rb
107
115
  homepage: https://github.com/achied/fluent-plugin-nats
108
- licenses: []
116
+ licenses:
117
+ - Apache-2.0
109
118
  metadata: {}
110
119
  post_install_message:
111
120
  rdoc_options: []