fluent-plugin-unit-time-filter 0.1.2 → 0.1.3

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: 6e0bf31be1cb31c459450da1fe3d767a6ed82f3d
4
- data.tar.gz: 48f82a08b5bd76cbe50f5d930a297d5ba67f74c4
3
+ metadata.gz: 8f1bd07a1afac7e72f3568f45e2de855ad7327ba
4
+ data.tar.gz: 6e84001ccb9b650ec8d826ba8dcd6840d88d02fe
5
5
  SHA512:
6
- metadata.gz: 7dd5dedbbcbfaf1425baddaef19c51856ddfcdc149afcbd44d5b2d144dfa1806745ef72b063a0d6f7acc41763d36579fa7217ddae1a739286f93a6c149476457
7
- data.tar.gz: 24a6577e6917f9c79f92521030c483f5884e449c47df6ec114c5b76693164a7fd9ab8de49e20a25a9153b6b95316d0a85252862865dde4a33b1edd63aa3f6e77
6
+ metadata.gz: 09ae3f0a588e3e71059097efe7e3c98b39ffdcf78743c4acaa5bd9089f264295948332f0773cc664dd3803b80d2c8d0036ae36baf562f2f65c827b18aeece6c2
7
+ data.tar.gz: f7c99021e342a03d7d412b9069e3cd4b353ed65d41ef64d583c0312aa3cc77019dd86d4f8f0c9d485b217f02a7ba6639e12eb55fb5b998891b1544a34c2165b2
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  Gem::Specification.new do |spec|
3
3
  spec.name = "fluent-plugin-unit-time-filter"
4
- spec.version = "0.1.2"
4
+ spec.version = "0.1.3"
5
5
  spec.authors = ["Genki Sugawara"]
6
6
  spec.email = ["sgwr_dts@yahoo.co.jp"]
7
7
  spec.description = %q{Plug-in to aggregate by unit time}
@@ -30,8 +30,8 @@ class Fluent::UnitTimeFilterOutput < Fluent::Output
30
30
  raise Fluent::ConfigError, "Invalid filter: #{@filter_path}: #{e}"
31
31
  end
32
32
 
33
- unless @filter.kind_of?(Proc)
34
- raise Fluent::ConfigError, "Invalid filter: #{@filter_path}: Filter must be Proc"
33
+ unless @filter.respond_to?(:call)
34
+ raise Fluent::ConfigError, "`call` method not implemented in filter: #{@filter_path}: Filter must be Proc"
35
35
  end
36
36
  end
37
37
 
@@ -3,18 +3,19 @@ class Fluent::UnitTimeFilterOutput < Fluent::Output
3
3
  include Enumerable
4
4
 
5
5
  def initialize(options)
6
- @init_queue = []
7
6
  @log = options[:log]
8
7
 
9
- @fiber = Fiber.new do |tag, es|
10
- @init_queue << [tag, es]
8
+ @fiber = Fiber.new do
11
9
  run(options)
12
10
  end
11
+
12
+ # Step to `yield`
13
+ @fiber.resume
13
14
  end
14
15
 
15
16
  def each
16
17
  loop do
17
- tag, es = @init_queue.shift || Fiber.yield
18
+ tag, es = Fiber.yield
18
19
  break unless (tag && es)
19
20
 
20
21
  es.each do |time, record|
@@ -362,4 +362,37 @@ describe Fluent::UnitTimeFilterOutput do
362
362
  end
363
363
  end
364
364
  end
365
+
366
+ describe 'when the non-Proc filter passed' do
367
+ it 'should be filtered' do
368
+ filter = <<-EOS
369
+ class Filter
370
+ def call(records)
371
+ @total_count ||= 0
372
+ @total_count += records.count
373
+ {'total_count' => @total_count}
374
+ end
375
+ end
376
+ Filter.new
377
+ EOS
378
+
379
+ run_driver(:filter => filter) do |d|
380
+ (0...10).each do |i|
381
+ d.emit({"key#{i}" => "val#{i}"}, time + i)
382
+ d.emit({"key#{i}_" => "val#{i}_"}, time + i)
383
+ end
384
+
385
+ expect(d.emits).to eq(
386
+ [["filtered.test.default", 1391832855, {"total_count"=>2}],
387
+ ["filtered.test.default", 1391832856, {"total_count"=>4}],
388
+ ["filtered.test.default", 1391832857, {"total_count"=>6}],
389
+ ["filtered.test.default", 1391832858, {"total_count"=>8}],
390
+ ["filtered.test.default", 1391832859, {"total_count"=>10}],
391
+ ["filtered.test.default", 1391832860, {"total_count"=>12}],
392
+ ["filtered.test.default", 1391832861, {"total_count"=>14}],
393
+ ["filtered.test.default", 1391832862, {"total_count"=>16}]]
394
+ )
395
+ end
396
+ end
397
+ end
365
398
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-unit-time-filter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-10 00:00:00.000000000 Z
11
+ date: 2014-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd