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

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: 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