fluent-plugin-gcloud-pubsub-custom 0.4.6 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9db89e553b8ed2af172483421345f062fb457bdb
4
- data.tar.gz: 6a48713f2def51581fcd5745b513a8b5d2f17970
3
+ metadata.gz: 576bd9856edc014e5c0927f90e615c0405df6651
4
+ data.tar.gz: 9b1ba5307adcc19b8e996925e0fc0b2b967b2465
5
5
  SHA512:
6
- metadata.gz: d57966e03358dd7d660f3448ac9106a36496643f9f7109fa75f87f0294bd596775c4ccb7703f689e03de844d7826dc0376858c910b9fa4d02d86af7b4a58f645
7
- data.tar.gz: 757ee54ba5d8ccb9872535819cb27242642541cb0b2cb18f7802b8e2f95037ee191cfbaf10616ec7e7a22913c1ba7fb9fa7afb442b92d09c42e9ebced80ac1e8
6
+ metadata.gz: 3c2998193aa348ffa5bc5b5a1f77d5965e91e2dca4df536e69e4554a976071dfe65d74aa324587b09febd984aa8daf8f13bf28bffcec95d1bf6003cb96a91bbc
7
+ data.tar.gz: 2a9b00f9aadc38cf51af96c49812eaacee60f43f2f15b5e11eb719f04795a818013c81948970df206b22356f95268b59b6046ca01e74696ddef4469fd0578b64
data/.travis.yml CHANGED
@@ -9,7 +9,6 @@ rvm:
9
9
 
10
10
  gemfile:
11
11
  - Gemfile
12
- - Gemfile.v0.12
13
12
 
14
13
  branches:
15
14
  only:
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  ## ChangeLog
2
2
 
3
+ ### Release 1.0.0 - 2017/06/23
4
+
5
+ - Fluentd v0.14 ready
6
+ - Fluentd v0.12 is not supported in the later version
7
+
3
8
  ### Release 0.4.6 - 2017/05/14
4
9
 
5
10
  - Output plugin
@@ -7,7 +7,7 @@ Gem::Specification.new do |gem|
7
7
  gem.license = "MIT"
8
8
  gem.homepage = "https://github.com/mia-0032/fluent-plugin-gcloud-pubsub-custom"
9
9
  gem.summary = gem.description
10
- gem.version = "0.4.6"
10
+ gem.version = "1.0.0"
11
11
  gem.authors = ["Yoshihiro MIYAI"]
12
12
  gem.email = "msparrow17@gmail.com"
13
13
  gem.has_rdoc = false
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
16
16
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  gem.require_paths = ['lib']
18
18
 
19
- gem.add_runtime_dependency "fluentd", [">= 0.10.58", "< 2"]
19
+ gem.add_runtime_dependency "fluentd", [">= 0.14.15", "< 2"]
20
20
  gem.add_runtime_dependency "google-cloud-pubsub", "~> 0.24.0"
21
21
  gem.add_runtime_dependency "retryable", "~> 2.0"
22
22
 
@@ -1,21 +1,18 @@
1
1
  require 'json'
2
2
  require 'webrick'
3
3
 
4
- require 'fluent/input'
5
- require 'fluent/parser'
4
+ require 'fluent/plugin/input'
5
+ require 'fluent/plugin/parser'
6
6
 
7
7
  require 'fluent/plugin/gcloud_pubsub/client'
8
8
 
9
- module Fluent
9
+ module Fluent::Plugin
10
10
  class GcloudPubSubInput < Input
11
11
  Fluent::Plugin.register_input('gcloud_pubsub', self)
12
12
 
13
- class << self
14
- unless method_defined?(:desc)
15
- def desc(description)
16
- end
17
- end
18
- end
13
+ helpers :compat_parameters, :parser, :thread
14
+
15
+ DEFAULT_PARSER_TYPE = 'json'
19
16
 
20
17
  class FailedParseError < StandardError
21
18
  end
@@ -41,7 +38,7 @@ module Fluent
41
38
  desc 'Set number of threads to pull messages.'
42
39
  config_param :pull_threads, :integer, default: 1
43
40
  desc 'Set input format.'
44
- config_param :format, :string, default: 'json'
41
+ config_param :format, :string, default: DEFAULT_PARSER_TYPE
45
42
  desc 'Set error type when parsing messages fails.'
46
43
  config_param :parse_error_action, :enum, default: :exception, list: [:exception, :warning]
47
44
  # for HTTP RPC
@@ -52,12 +49,8 @@ module Fluent
52
49
  desc 'Port for HTTP RPC.'
53
50
  config_param :rpc_port, :integer, default: 24680
54
51
 
55
- unless method_defined?(:log)
56
- define_method("log") { $log }
57
- end
58
-
59
- unless method_defined?(:router)
60
- define_method("router") { Fluent::Engine }
52
+ config_section :parse do
53
+ config_set_default :@type, DEFAULT_PARSER_TYPE
61
54
  end
62
55
 
63
56
  class RPCServlet < WEBrick::HTTPServlet::AbstractServlet
@@ -108,6 +101,7 @@ module Fluent
108
101
  end
109
102
 
110
103
  def configure(conf)
104
+ compat_parameters_convert(conf, :parser)
111
105
  super
112
106
  @rpc_srv = nil
113
107
  @rpc_thread = nil
@@ -119,8 +113,7 @@ module Fluent
119
113
  method(:dynamic_tag)
120
114
  end
121
115
 
122
- @parser = Plugin.new_parser(@format)
123
- @parser.configure(conf)
116
+ @parser = parser_create
124
117
  end
125
118
 
126
119
  def start
@@ -133,23 +126,22 @@ module Fluent
133
126
  @emit_guard = Mutex.new
134
127
  @stop_subscribing = false
135
128
  @subscribe_threads = []
136
- @pull_threads.times do
137
- @subscribe_threads.push Thread.new(&method(:subscribe))
129
+ @pull_threads.times do |idx|
130
+ @subscribe_threads.push thread_create("in_gcloud_pubsub_subscribe_#{idx}".to_sym, &method(:subscribe))
138
131
  end
139
132
  end
140
133
 
141
134
  def shutdown
142
- super
143
135
  if @rpc_srv
144
136
  @rpc_srv.shutdown
145
137
  @rpc_srv = nil
146
138
  end
147
139
  if @rpc_thread
148
- @rpc_thread.join
149
140
  @rpc_thread = nil
150
141
  end
151
142
  @stop_subscribing = true
152
143
  @subscribe_threads.each(&:join)
144
+ super
153
145
  end
154
146
 
155
147
  def stop_pull
@@ -187,7 +179,7 @@ module Fluent
187
179
  }
188
180
  )
189
181
  @rpc_srv.mount('/api/in_gcloud_pubsub/pull/', RPCServlet, self)
190
- @rpc_thread = Thread.new {
182
+ @rpc_thread = thread_create(:in_gcloud_pubsub_rpc_thread){
191
183
  @rpc_srv.start
192
184
  }
193
185
  end
@@ -225,7 +217,7 @@ module Fluent
225
217
 
226
218
  def process(messages)
227
219
  event_streams = Hash.new do |hsh, key|
228
- hsh[key] = MultiEventStream.new
220
+ hsh[key] = Fluent::MultiEventStream.new
229
221
  end
230
222
 
231
223
  messages.each do |m|
@@ -1,17 +1,15 @@
1
- require 'fluent/output'
1
+ require 'fluent/plugin/output'
2
2
 
3
3
  require 'fluent/plugin/gcloud_pubsub/client'
4
4
 
5
- module Fluent
6
- class GcloudPubSubOutput < BufferedOutput
5
+ module Fluent::Plugin
6
+ class GcloudPubSubOutput < Output
7
7
  Fluent::Plugin.register_output('gcloud_pubsub', self)
8
8
 
9
- class << self
10
- unless method_defined?(:desc)
11
- def desc(description)
12
- end
13
- end
14
- end
9
+ helpers :compat_parameters, :formatter
10
+
11
+ DEFAULT_BUFFER_TYPE = "memory"
12
+ DEFAULT_FORMATTER_TYPE = "json"
15
13
 
16
14
  desc 'Set your GCP project.'
17
15
  config_param :project, :string, :default => nil
@@ -30,18 +28,18 @@ module Fluent
30
28
  desc 'Set output format.'
31
29
  config_param :format, :string, :default => 'json'
32
30
 
33
- unless method_defined?(:log)
34
- define_method("log") { $log }
31
+ config_section :buffer do
32
+ config_set_default :@type, DEFAULT_BUFFER_TYPE
35
33
  end
36
34
 
37
- unless method_defined?(:router)
38
- define_method("router") { Fluent::Engine }
35
+ config_section :format do
36
+ config_set_default :@type, DEFAULT_FORMATTER_TYPE
39
37
  end
40
38
 
41
39
  def configure(conf)
40
+ compat_parameters_convert(conf, :buffer, :formatter)
42
41
  super
43
- @formatter = Plugin.new_formatter(@format)
44
- @formatter.configure(conf)
42
+ @formatter = formatter_create
45
43
  end
46
44
 
47
45
  def start
@@ -54,6 +52,14 @@ module Fluent
54
52
  @formatter.format(tag, time, record).to_msgpack
55
53
  end
56
54
 
55
+ def formatted_to_msgpack_binary?
56
+ true
57
+ end
58
+
59
+ def multi_workers_ready?
60
+ true
61
+ end
62
+
57
63
  def write(chunk)
58
64
  messages = []
59
65
  size = 0
@@ -2,6 +2,7 @@ require 'net/http'
2
2
  require 'json'
3
3
 
4
4
  require_relative "../test_helper"
5
+ require "fluent/test/driver/input"
5
6
 
6
7
  class GcloudPubSubInputTest < Test::Unit::TestCase
7
8
  CONFIG = %[
@@ -29,7 +30,7 @@ class GcloudPubSubInputTest < Test::Unit::TestCase
29
30
  end
30
31
 
31
32
  def create_driver(conf=CONFIG)
32
- Fluent::Test::InputTestDriver.new(Fluent::GcloudPubSubInput).configure(conf)
33
+ Fluent::Test::Driver::Input.new(Fluent::Plugin::GcloudPubSubInput).configure(conf)
33
34
  end
34
35
 
35
36
  def http_get(path)
@@ -164,27 +165,23 @@ class GcloudPubSubInputTest < Test::Unit::TestCase
164
165
  end
165
166
 
166
167
  test 'empty' do
167
- @subscriber.pull(immediate: true, max: 100).once { [] }
168
+ @subscriber.pull(immediate: true, max: 100).at_least(1) { [] }
168
169
  @subscriber.acknowledge.times(0)
169
170
 
170
171
  d = create_driver
171
- d.run {
172
- # d.run sleeps 0.5 sec
173
- }
172
+ d.run(expect_emits: 1, timeout: 3)
174
173
 
175
- assert_equal(true, d.emits.empty?)
174
+ assert_true d.events.empty?
176
175
  end
177
176
 
178
177
  test 'simple' do
179
178
  messages = Array.new(1, DummyMessage.new)
180
- @subscriber.pull(immediate: true, max: 100).once { messages }
179
+ @subscriber.pull(immediate: true, max: 100).at_least(1) { messages }
181
180
  @subscriber.acknowledge(messages).once
182
181
 
183
182
  d = create_driver
184
- d.run {
185
- # d.run sleeps 0.5 sec
186
- }
187
- emits = d.emits
183
+ d.run(expect_emits: 1, timeout: 3)
184
+ emits = d.events
188
185
 
189
186
  assert_equal(1, emits.length)
190
187
  emits.each do |tag, time, record|
@@ -195,16 +192,14 @@ class GcloudPubSubInputTest < Test::Unit::TestCase
195
192
 
196
193
  test 'multithread' do
197
194
  messages = Array.new(1, DummyMessage.new)
198
- @subscriber.pull(immediate: true, max: 100).twice { messages }
199
- @subscriber.acknowledge(messages).twice
195
+ @subscriber.pull(immediate: true, max: 100).at_least(2) { messages }
196
+ @subscriber.acknowledge(messages).at_least(2)
200
197
 
201
198
  d = create_driver("#{CONFIG}\npull_threads 2")
202
- d.run {
203
- # d.run sleeps 0.5 sec
204
- }
205
- emits = d.emits
199
+ d.run(expect_emits: 2, timeout: 1)
200
+ emits = d.events
206
201
 
207
- assert_equal(2, emits.length)
202
+ assert(2 <= emits.length)
208
203
  emits.each do |tag, time, record|
209
204
  assert_equal("test", tag)
210
205
  assert_equal({"foo" => "bar"}, record)
@@ -217,14 +212,12 @@ class GcloudPubSubInputTest < Test::Unit::TestCase
217
212
  DummyMessageWithTagKey.new('tag2'),
218
213
  DummyMessage.new
219
214
  ]
220
- @subscriber.pull(immediate: true, max: 100).once { messages }
215
+ @subscriber.pull(immediate: true, max: 100).at_least(1) { messages }
221
216
  @subscriber.acknowledge(messages).once
222
217
 
223
218
  d = create_driver("#{CONFIG}\ntag_key test_tag_key")
224
- d.run {
225
- # d.run sleeps 0.5 sec
226
- }
227
- emits = d.emits
219
+ d.run(expect_emits: 1, timeout: 3)
220
+ emits = d.events
228
221
 
229
222
  assert_equal(3, emits.length)
230
223
  # test tag
@@ -239,69 +232,59 @@ class GcloudPubSubInputTest < Test::Unit::TestCase
239
232
 
240
233
  test 'invalid messages with parse_error_action exception ' do
241
234
  messages = Array.new(1, DummyInvalidMessage.new)
242
- @subscriber.pull(immediate: true, max: 100).once { messages }
235
+ @subscriber.pull(immediate: true, max: 100).at_least(1) { messages }
243
236
  @subscriber.acknowledge.times(0)
244
237
 
245
238
  d = create_driver
246
- d.run {
247
- # d.run sleeps 0.5 sec
248
- }
249
- assert_equal(true, d.emits.empty?)
239
+ d.run(expect_emits: 1, timeout: 3)
240
+ assert_true d.events.empty?
250
241
  end
251
242
 
252
243
  test 'invalid messages with parse_error_action warning' do
253
244
  messages = Array.new(1, DummyInvalidMessage.new)
254
- @subscriber.pull(immediate: true, max: 100).once { messages }
255
- @subscriber.acknowledge(messages).once
245
+ @subscriber.pull(immediate: true, max: 100).at_least(1) { messages }
246
+ @subscriber.acknowledge(messages).at_least(1)
256
247
 
257
248
  d = create_driver("#{CONFIG}\nparse_error_action warning")
258
- d.run {
259
- # d.run sleeps 0.5 sec
260
- }
261
- assert_equal(true, d.emits.empty?)
249
+ d.run(expect_emits: 1, timeout: 3)
250
+ assert_true d.events.empty?
262
251
  end
263
252
 
264
253
  test 'retry if raised error' do
265
254
  class UnknownError < StandardError
266
255
  end
267
- @subscriber.pull(immediate: true, max: 100).twice { raise UnknownError.new('test') }
256
+ @subscriber.pull(immediate: true, max: 100).at_least(2) { raise UnknownError.new('test') }
268
257
  @subscriber.acknowledge.times(0)
269
258
 
270
259
  d = create_driver(CONFIG + 'pull_interval 0.5')
271
- d.run {
272
- sleep 0.1 # + 0.5s
273
- }
260
+ d.run(expect_emits: 1, timeout: 0.8)
274
261
 
275
262
  assert_equal(0.5, d.instance.pull_interval)
276
- assert_equal(true, d.emits.empty?)
263
+ assert_true d.events.empty?
277
264
  end
278
265
 
279
266
  test 'retry if raised RetryableError on pull' do
280
- @subscriber.pull(immediate: true, max: 100).twice { raise Google::Cloud::UnavailableError.new('TEST') }
267
+ @subscriber.pull(immediate: true, max: 100).at_least(2) { raise Google::Cloud::UnavailableError.new('TEST') }
281
268
  @subscriber.acknowledge.times(0)
282
269
 
283
270
  d = create_driver("#{CONFIG}\npull_interval 0.5")
284
- d.run {
285
- sleep 0.1 # + 0.5s
286
- }
271
+ d.run(expect_emits: 1, timeout: 0.8)
287
272
 
288
273
  assert_equal(0.5, d.instance.pull_interval)
289
- assert_equal(true, d.emits.empty?)
274
+ assert_true d.events.empty?
290
275
  end
291
276
 
292
277
  test 'retry if raised RetryableError on acknowledge' do
293
278
  messages = Array.new(1, DummyMessage.new)
294
- @subscriber.pull(immediate: true, max: 100).twice { messages }
279
+ @subscriber.pull(immediate: true, max: 100).at_least(2) { messages }
295
280
  @subscriber.acknowledge(messages).twice { raise Google::Cloud::UnavailableError.new('TEST') }
296
281
 
297
282
  d = create_driver("#{CONFIG}\npull_interval 0.5")
298
- d.run {
299
- sleep 0.1 # + 0.5s
300
- }
301
- emits = d.emits
283
+ d.run(expect_emits: 2, timeout: 3)
284
+ emits = d.events
302
285
 
303
286
  # not acknowledged, but already emitted to engine.
304
- assert_equal(2, emits.length)
287
+ assert(2 <= emits.length)
305
288
  emits.each do |tag, time, record|
306
289
  assert_equal("test", tag)
307
290
  assert_equal({"foo" => "bar"}, record)
@@ -321,10 +304,10 @@ class GcloudPubSubInputTest < Test::Unit::TestCase
321
304
  sleep 0.75
322
305
  # d.run sleeps 0.5 sec
323
306
  }
324
- emits = d.emits
307
+ emits = d.events
325
308
 
326
309
  assert_equal(1, emits.length)
327
- assert_equal(true, d.instance.instance_variable_get(:@stop_pull))
310
+ assert_true d.instance.instance_variable_get(:@stop_pull)
328
311
 
329
312
  emits.each do |tag, time, record|
330
313
  assert_equal("test", tag)
@@ -341,15 +324,15 @@ class GcloudPubSubInputTest < Test::Unit::TestCase
341
324
  d.instance.stop_pull
342
325
  assert_equal(true, d.instance.instance_variable_get(:@stop_pull))
343
326
 
344
- d.run {
327
+ d.run(expect_emits: 1, timeout: 3) {
345
328
  http_get('/api/in_gcloud_pubsub/pull/start')
346
329
  sleep 0.75
347
330
  # d.run sleeps 0.5 sec
348
331
  }
349
- emits = d.emits
332
+ emits = d.events
350
333
 
351
334
  assert_equal(true, emits.length > 0)
352
- assert_equal(false, d.instance.instance_variable_get(:@stop_pull))
335
+ assert_false d.instance.instance_variable_get(:@stop_pull)
353
336
 
354
337
  emits.each do |tag, time, record|
355
338
  assert_equal("test", tag)
@@ -359,7 +342,7 @@ class GcloudPubSubInputTest < Test::Unit::TestCase
359
342
 
360
343
  test 'get status by http rpc when started' do
361
344
  d = create_driver("#{CONFIG}\npull_interval 1.0\nenable_rpc true")
362
- assert_equal(false, d.instance.instance_variable_get(:@stop_pull))
345
+ assert_false d.instance.instance_variable_get(:@stop_pull)
363
346
 
364
347
  d.run {
365
348
  res = http_get('/api/in_gcloud_pubsub/pull/status')
@@ -370,7 +353,7 @@ class GcloudPubSubInputTest < Test::Unit::TestCase
370
353
  test 'get status by http rpc when stopped' do
371
354
  d = create_driver("#{CONFIG}\npull_interval 1.0\nenable_rpc true")
372
355
  d.instance.stop_pull
373
- assert_equal(true, d.instance.instance_variable_get(:@stop_pull))
356
+ assert_true d.instance.instance_variable_get(:@stop_pull)
374
357
 
375
358
  d.run {
376
359
  res = http_get('/api/in_gcloud_pubsub/pull/status')
@@ -1,6 +1,11 @@
1
+ # coding: utf-8
1
2
  require_relative "../test_helper"
3
+ require "fluent/test/driver/output"
4
+ require "fluent/test/helpers"
2
5
 
3
6
  class GcloudPubSubOutputTest < Test::Unit::TestCase
7
+ include Fluent::Test::Helpers
8
+
4
9
  CONFIG = %[
5
10
  project project-test
6
11
  topic topic-test
@@ -10,7 +15,7 @@ class GcloudPubSubOutputTest < Test::Unit::TestCase
10
15
  ReRaisedError = Class.new(RuntimeError)
11
16
 
12
17
  def create_driver(conf = CONFIG)
13
- Fluent::Test::BufferedOutputTestDriver.new(Fluent::GcloudPubSubOutput).configure(conf)
18
+ Fluent::Test::Driver::Output.new(Fluent::Plugin::GcloudPubSubOutput).configure(conf)
14
19
  end
15
20
 
16
21
  setup do
@@ -117,17 +122,18 @@ class GcloudPubSubOutputTest < Test::Unit::TestCase
117
122
  end
118
123
 
119
124
  setup do
120
- @time = Time.parse('2016-07-09 11:12:13 UTC').to_i
125
+ @time = event_time('2016-07-09 11:12:13 UTC')
121
126
  end
122
127
 
123
128
  test 'messages are divided into "max_messages"' do
124
129
  d = create_driver
125
130
  @publisher.publish.times(2)
126
- # max_messages is default 1000
127
- 1001.times do |i|
128
- d.emit({"a" => i}, @time)
131
+ d.run(default_tag: "test") do
132
+ # max_messages is default 1000
133
+ 1001.times do |i|
134
+ d.feed(@time, {"a" => i})
135
+ end
129
136
  end
130
- d.run
131
137
  end
132
138
 
133
139
  test 'messages are divided into "max_total_size"' do
@@ -140,11 +146,12 @@ class GcloudPubSubOutputTest < Test::Unit::TestCase
140
146
  ])
141
147
 
142
148
  @publisher.publish.times(2)
143
- # 400 * 4 / max_total_size = twice
144
- 4.times do
145
- d.emit({"a" => "a" * 400}, @time)
149
+ d.run(default_tag: "test") do
150
+ # 400 * 4 / max_total_size = twice
151
+ 4.times do
152
+ d.feed(@time, {"a" => "a" * 400})
153
+ end
146
154
  end
147
- d.run
148
155
  end
149
156
 
150
157
  test 'messages exceeding "max_message_size" are not published' do
@@ -156,24 +163,27 @@ class GcloudPubSubOutputTest < Test::Unit::TestCase
156
163
  ])
157
164
 
158
165
  @publisher.publish.times(0)
159
- d.emit({"a" => "a" * 1000}, @time)
160
- d.run
166
+ d.run(default_tag: "test") do
167
+ d.feed(@time, {"a" => "a" * 1000})
168
+ end
161
169
  end
162
170
 
163
171
  test 'accept "ASCII-8BIT" encoded multibyte strings' do
164
172
  # on fluentd v0.14, all strings treated as "ASCII-8BIT" except specified encoding.
165
173
  d = create_driver
166
174
  @publisher.publish.once
167
- d.emit({"a" => "あああ".force_encoding("ASCII-8BIT")}, @time)
168
- d.run
175
+ d.run(default_tag: "test") do
176
+ d.feed(@time, {"a" => "あああ".force_encoding("ASCII-8BIT")})
177
+ end
169
178
  end
170
179
 
171
180
  test 'reraise unexpected errors' do
172
181
  d = create_driver
173
182
  @publisher.publish.once { raise ReRaisedError }
174
183
  assert_raises ReRaisedError do
175
- d.emit([{'a' => 1, 'b' => 2}])
176
- d.run
184
+ d.run(default_tag: "test") do
185
+ d.feed([{'a' => 1, 'b' => 2}])
186
+ end
177
187
  end
178
188
  end
179
189
 
@@ -181,8 +191,9 @@ class GcloudPubSubOutputTest < Test::Unit::TestCase
181
191
  d = create_driver
182
192
  @publisher.publish.once { raise Google::Cloud::UnavailableError.new('TEST') }
183
193
  assert_raises Fluent::GcloudPubSub::RetryableError do
184
- d.emit([{'a' => 1, 'b' => 2}])
185
- d.run
194
+ d.run(default_tag: "test") do
195
+ d.feed([{'a' => 1, 'b' => 2}])
196
+ end
186
197
  end
187
198
  end
188
199
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-gcloud-pubsub-custom
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoshihiro MIYAI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-14 00:00:00.000000000 Z
11
+ date: 2017-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.10.58
19
+ version: 0.14.15
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '2'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.10.58
29
+ version: 0.14.15
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '2'
@@ -124,7 +124,6 @@ files:
124
124
  - ".travis.yml"
125
125
  - CHANGELOG.md
126
126
  - Gemfile
127
- - Gemfile.v0.12
128
127
  - LICENSE
129
128
  - README.md
130
129
  - Rakefile
data/Gemfile.v0.12 DELETED
@@ -1,5 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'fluentd', '~> 0.12.0'
4
-
5
- gemspec