fluent-plugin-typetalk 0.0.10 → 0.1.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: 41fa3e1b64d08b062ff5685d192d51a65402fc09
4
- data.tar.gz: 4c0b032d779028cf33d833a098e68f7a7b2f5b7d
3
+ metadata.gz: c26fbbe7bb559565f3bdb6c7846430282d91b879
4
+ data.tar.gz: 79b971d2139d25436bed76ba7163bbadb4937443
5
5
  SHA512:
6
- metadata.gz: d1a4acc36a0088d8f378771370d5a498cc36984a184b34b2ac1c34fff12d1b868a6a0a3ad06a5fd3c63eb4726a7e4c2a7fc90b6f92f5a22a95f94ed73cac1773
7
- data.tar.gz: 542ca5ebfce89548c804c25f2a704e9742f0c36d2ea421fe83d08b6134bd691d62eb0d1737aaa4821ff1ea887266110236e76c403290f9fb89dc9b9842679aed
6
+ metadata.gz: ea738ab0a0bf841ec1ce1156891f3142f64c50b5d9d5a3b143afe58b12c912c1215e16811a80e0070872f1040ddec1a5dc94b973f324213dfda5a48ca4e4e25d
7
+ data.tar.gz: bbf2962d634e073ba597be18f1a7240946ade5e644b06b52d32053eacfe115b0acbaaad9a3c4c62fc1779052ff7d379c84fba3760bcd69241c52eddb851f6ecb
data/.travis.yml CHANGED
@@ -1,8 +1,13 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.3
3
+ - 2.1
4
+ - 2.2
5
+ - 2.3
6
+ - 2.4
4
7
  before_install:
5
8
  - gem update bundler
9
+ script:
10
+ - bundle exec rake test
6
11
  notifications:
7
12
  webhooks:
8
13
  urls:
data/README.md CHANGED
@@ -4,6 +4,13 @@
4
4
 
5
5
  [Fluentd](http://fluentd.org) plugin to emit notifications to [Typetalk](http://typetalk.in/).
6
6
 
7
+ ## Requirements
8
+
9
+ | fluent-plugin-typetalk | fluentd | ruby |
10
+ |------------------------|------------|--------|
11
+ | >= 0.1.0 | >= v0.14.0 | >= 2.1 |
12
+ | < 0.1.0 | >= v0.12.0 | >= 1.9 |
13
+
7
14
  ## Installation
8
15
 
9
16
  Install with gem or fluent-gem command as:
data/Rakefile CHANGED
@@ -1,10 +1,12 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rake/testtask'
3
5
 
4
6
  Rake::TestTask.new(:test) do |test|
5
7
  test.libs << 'lib' << 'test'
6
- test.pattern = 'test/**/test_*.rb'
8
+ test.test_files = FileList['test/plugin/*.rb']
7
9
  test.verbose = true
8
10
  end
9
11
 
10
- task :default => :test
12
+ task :default => :test
@@ -1,10 +1,9 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
2
+ $:.push File.expand_path('../lib', __FILE__)
4
3
 
5
4
  Gem::Specification.new do |spec|
6
5
  spec.name = "fluent-plugin-typetalk"
7
- spec.version = "0.0.10"
6
+ spec.version = "0.1.0"
8
7
  spec.authors = ["tksmd","umakoz"]
9
8
  spec.email = ["someda@isenshi.com"]
10
9
  spec.description = %q{fluent plugin to send message to typetalk}
@@ -18,14 +17,10 @@ Gem::Specification.new do |spec|
18
17
  spec.require_paths = ["lib"]
19
18
 
20
19
  spec.add_development_dependency "bundler", "~> 1.3"
21
- spec.add_development_dependency "rake"
22
- spec.add_development_dependency "rr", ">= 1.0.0"
23
- spec.add_development_dependency "test-unit", "> 3"
24
- spec.add_development_dependency "test-unit-rr"
25
- # not to use mime-types 3.0 that doesn't support ruby 1.9.x
26
- spec.add_runtime_dependency "mime-types", "~> 2.6", "< 2.99"
27
- spec.add_runtime_dependency "fluentd"
28
- spec.add_runtime_dependency "typetalk"
20
+ spec.add_development_dependency "rake", ">= 0.9.2"
21
+ spec.add_development_dependency "test-unit", ">= 3.1.0"
22
+ spec.add_development_dependency "test-unit-rr", ">= 1.0.5"
29
23
 
30
- spec.required_ruby_version = '>= 1.9.3'
24
+ spec.add_runtime_dependency "fluentd", [">= 0.14.0", "< 2"]
25
+ spec.add_runtime_dependency "typetalk"
31
26
  end
@@ -1,5 +1,5 @@
1
- module Fluent
2
- class TypetalkOutput < Fluent::Output
1
+ module Fluent::Plugin
2
+ class TypetalkOutput < Fluent::Plugin::Output
3
3
  Fluent::Plugin.register_output('typetalk', self)
4
4
 
5
5
  config_param :client_id, :string
@@ -73,7 +73,7 @@ module Fluent
73
73
  super
74
74
  end
75
75
 
76
- def emit(tag, es, chain)
76
+ def process(tag, es)
77
77
  es.each do |time, record|
78
78
  if @need_throttle && throttle(time)
79
79
  log.error("out_typetalk:", :error => "number of posting message within #{@interval}(sec) reaches to the limit #{@limit}")
@@ -86,8 +86,6 @@ module Fluent
86
86
  log.error("out_typetalk:", :error_class => e.class, :error => e.message)
87
87
  end
88
88
  end
89
-
90
- chain.next
91
89
  end
92
90
 
93
91
  def throttle(time)
data/test/helper.rb CHANGED
@@ -1,29 +1,9 @@
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
1
+ require "bundler/setup"
2
+ $LOAD_PATH.unshift(File.join(__dir__, '..', 'lib'))
3
+ $LOAD_PATH.unshift(__dir__)
4
+
10
5
  require 'test/unit'
11
6
  require 'test/unit/rr'
12
-
13
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
- $LOAD_PATH.unshift(File.dirname(__FILE__))
15
7
  require 'fluent/test'
16
- unless ENV.has_key?('VERBOSE')
17
- nulllogger = Object.new
18
- nulllogger.instance_eval {|obj|
19
- def method_missing(method, *args)
20
- # pass
21
- end
22
- }
23
- $log = nulllogger
24
- end
25
-
26
- require 'fluent/plugin/out_typetalk'
27
-
28
- class Test::Unit::TestCase
29
- end
8
+ require 'fluent/test/driver/output'
9
+ require 'fluent/test/helpers'
@@ -1,9 +1,10 @@
1
1
  # coding: utf-8
2
2
 
3
3
  require 'helper'
4
+ require 'fluent/plugin/out_typetalk'
4
5
 
5
6
  class TypetalkOutputTest < Test::Unit::TestCase
6
-
7
+
7
8
  def setup
8
9
  Fluent::Test.setup
9
10
  end
@@ -50,8 +51,8 @@ class TypetalkOutputTest < Test::Unit::TestCase
50
51
  ]
51
52
 
52
53
 
53
- def create_driver(conf = CONFIG, tag = 'test')
54
- Fluent::Test::OutputTestDriver.new(Fluent::TypetalkOutput, tag).configure(conf)
54
+ def create_driver(conf = CONFIG)
55
+ Fluent::Test::Driver::Output.new(Fluent::Plugin::TypetalkOutput).configure(conf)
55
56
  end
56
57
 
57
58
  def test_configure
@@ -71,20 +72,22 @@ class TypetalkOutputTest < Test::Unit::TestCase
71
72
  def test_write
72
73
  d = create_driver()
73
74
  mock(d.instance.typetalk).post_message(1, 'notice : test1')
74
- d.emit({'message' => 'test1'})
75
- d.run()
75
+ d.run(default_tag: "test") do
76
+ d.feed({'message' => 'test1'})
77
+ end
76
78
  end
77
79
 
78
80
  def test_template
79
- d = create_driver(CONFIG, 'warn')
81
+ d = create_driver()
80
82
  d.instance.message = "notice : %s [%s]"
81
83
  d.instance.out_keys = ["message", "time"]
82
84
  mock(d.instance.typetalk).post_message(1, "notice : test1 [1399910738]")
83
85
 
84
86
  ENV["TZ"]="Asia/Tokyo"
85
87
  t = Time.strptime('2014-05-13 01:05:38', '%Y-%m-%d %T')
86
- d.emit({'message' => 'test1'}, t)
87
- d.run()
88
+ d.run(default_tag: "warn") do
89
+ d.feed(t.to_i, {'message' => 'test1'})
90
+ end
88
91
  end
89
92
 
90
93
  def test_post_message_unauthorized_error
@@ -94,11 +97,12 @@ class TypetalkOutputTest < Test::Unit::TestCase
94
97
  }
95
98
  stub(d.instance.log).error {|name, params|
96
99
  assert_equal "out_typetalk:", name
97
- assert_equal Fluent::TypetalkError, params[:error_class]
100
+ assert_equal Fluent::Plugin::TypetalkError, params[:error_class]
98
101
  assert_equal "invalid credentials used. check client_id and client_secret in your configuration.", params[:error]
99
102
  }
100
- d.emit({'message' => 'test1'})
101
- d.run()
103
+ d.run(default_tag: "test") do
104
+ d.feed({'message' => 'test1'})
105
+ end
102
106
  end
103
107
 
104
108
  def test_post_message_invalid_request_error
@@ -108,11 +112,12 @@ class TypetalkOutputTest < Test::Unit::TestCase
108
112
  }
109
113
  stub(d.instance.log).error {|name, params|
110
114
  assert_equal "out_typetalk:", name
111
- assert_equal Fluent::TypetalkError, params[:error_class]
115
+ assert_equal Fluent::Plugin::TypetalkError, params[:error_class]
112
116
  assert_equal "failed to post, msg: invalid_client, code: 400", params[:error]
113
117
  }
114
- d.emit({'message' => 'test1'})
115
- d.run()
118
+ d.run(default_tag: "test") do
119
+ d.feed({'message' => 'test1'})
120
+ end
116
121
  end
117
122
 
118
123
  def test_post_message_maxlength_error
@@ -122,11 +127,12 @@ class TypetalkOutputTest < Test::Unit::TestCase
122
127
  }
123
128
  stub(d.instance.log).error {|name, params|
124
129
  assert_equal "out_typetalk:", name
125
- assert_equal Fluent::TypetalkError, params[:error_class]
130
+ assert_equal Fluent::Plugin::TypetalkError, params[:error_class]
126
131
  assert_equal "failed to post, msg: message : Maximum length is 4,096 characters., code: 400", params[:error]
127
132
  }
128
- d.emit({'message' => 'test1'})
129
- d.run()
133
+ d.run(default_tag: "test") do
134
+ d.feed({'message' => 'test1'})
135
+ end
130
136
  end
131
137
 
132
138
  def test_post_message_notfound_error
@@ -136,11 +142,12 @@ class TypetalkOutputTest < Test::Unit::TestCase
136
142
  }
137
143
  stub(d.instance.log).error {|name, params|
138
144
  assert_equal "out_typetalk:", name
139
- assert_equal Fluent::TypetalkError, params[:error_class]
145
+ assert_equal Fluent::Plugin::TypetalkError, params[:error_class]
140
146
  assert_equal "failed to post, msg: , code: 404", params[:error]
141
147
  }
142
- d.emit({'message' => 'test1'})
143
- d.run()
148
+ d.run(default_tag: "test") do
149
+ d.feed({'message' => 'test1'})
150
+ end
144
151
  end
145
152
 
146
153
  def test_oauth2_error
@@ -150,11 +157,12 @@ class TypetalkOutputTest < Test::Unit::TestCase
150
157
  }
151
158
  stub(d.instance.log).error {|name, params|
152
159
  assert_equal "out_typetalk:", name
153
- assert_equal Fluent::TypetalkError, params[:error_class]
160
+ assert_equal Fluent::Plugin::TypetalkError, params[:error_class]
154
161
  assert_equal "failed to post, msg: Bearer error=\"invalid_scope\", code: 400", params[:error]
155
162
  }
156
- d.emit({'message' => 'test1'})
157
- d.run()
163
+ d.run(default_tag: "test") do
164
+ d.feed({'message' => 'test1'})
165
+ end
158
166
  end
159
167
 
160
168
  def test_throttle
@@ -165,11 +173,12 @@ class TypetalkOutputTest < Test::Unit::TestCase
165
173
  assert_equal "out_typetalk:", name
166
174
  assert_equal "number of posting message within 5.0(sec) reaches to the limit 1", params[:error]
167
175
  }
168
- d.emit({'message' => 'test1'})
169
- d.emit({'message' => 'test2'})
170
- sleep 5
171
- d.emit({'message' => 'test3'})
172
- d.run()
176
+ d.run(default_tag: "test") do
177
+ d.feed({'message' => 'test1'})
178
+ d.feed({'message' => 'test2'})
179
+ sleep 5
180
+ d.feed({'message' => 'test3'})
181
+ end
173
182
  end
174
183
 
175
184
  def test_truncate
@@ -177,10 +186,11 @@ class TypetalkOutputTest < Test::Unit::TestCase
177
186
  mock(d.instance.typetalk).post_message(1, '1')
178
187
  mock(d.instance.typetalk).post_message(1, '1'*3999)
179
188
  mock(d.instance.typetalk).post_message(1, '1'*3995 + ' ...')
180
- d.emit({'message' => '1'})
181
- d.emit({'message' => '1'*3999}) # not truncated
182
- d.emit({'message' => '1'*4000}) # should be truncated
183
- d.run()
189
+ d.run(default_tag: "test") do
190
+ d.feed({'message' => '1'})
191
+ d.feed({'message' => '1'*3999}) # not truncated
192
+ d.feed({'message' => '1'*4000}) # should be truncated
193
+ end
184
194
  end
185
195
 
186
196
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-typetalk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - tksmd
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-05-01 00:00:00.000000000 Z
12
+ date: 2017-06-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -31,90 +31,62 @@ dependencies:
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: '0'
34
+ version: 0.9.2
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
- version: '0'
41
+ version: 0.9.2
42
42
  - !ruby/object:Gem::Dependency
43
- name: rr
43
+ name: test-unit
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: 1.0.0
48
+ version: 3.1.0
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: 1.0.0
56
- - !ruby/object:Gem::Dependency
57
- name: test-unit
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - ">"
61
- - !ruby/object:Gem::Version
62
- version: '3'
63
- type: :development
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - ">"
68
- - !ruby/object:Gem::Version
69
- version: '3'
55
+ version: 3.1.0
70
56
  - !ruby/object:Gem::Dependency
71
57
  name: test-unit-rr
72
58
  requirement: !ruby/object:Gem::Requirement
73
59
  requirements:
74
60
  - - ">="
75
61
  - !ruby/object:Gem::Version
76
- version: '0'
62
+ version: 1.0.5
77
63
  type: :development
78
64
  prerelease: false
79
65
  version_requirements: !ruby/object:Gem::Requirement
80
66
  requirements:
81
67
  - - ">="
82
68
  - !ruby/object:Gem::Version
83
- version: '0'
69
+ version: 1.0.5
84
70
  - !ruby/object:Gem::Dependency
85
- name: mime-types
71
+ name: fluentd
86
72
  requirement: !ruby/object:Gem::Requirement
87
73
  requirements:
88
- - - "~>"
74
+ - - ">="
89
75
  - !ruby/object:Gem::Version
90
- version: '2.6'
76
+ version: 0.14.0
91
77
  - - "<"
92
78
  - !ruby/object:Gem::Version
93
- version: '2.99'
79
+ version: '2'
94
80
  type: :runtime
95
81
  prerelease: false
96
82
  version_requirements: !ruby/object:Gem::Requirement
97
- requirements:
98
- - - "~>"
99
- - !ruby/object:Gem::Version
100
- version: '2.6'
101
- - - "<"
102
- - !ruby/object:Gem::Version
103
- version: '2.99'
104
- - !ruby/object:Gem::Dependency
105
- name: fluentd
106
- requirement: !ruby/object:Gem::Requirement
107
83
  requirements:
108
84
  - - ">="
109
85
  - !ruby/object:Gem::Version
110
- version: '0'
111
- type: :runtime
112
- prerelease: false
113
- version_requirements: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
86
+ version: 0.14.0
87
+ - - "<"
116
88
  - !ruby/object:Gem::Version
117
- version: '0'
89
+ version: '2'
118
90
  - !ruby/object:Gem::Dependency
119
91
  name: typetalk
120
92
  requirement: !ruby/object:Gem::Requirement
@@ -158,7 +130,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
158
130
  requirements:
159
131
  - - ">="
160
132
  - !ruby/object:Gem::Version
161
- version: 1.9.3
133
+ version: '0'
162
134
  required_rubygems_version: !ruby/object:Gem::Requirement
163
135
  requirements:
164
136
  - - ">="
@@ -166,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
138
  version: '0'
167
139
  requirements: []
168
140
  rubyforge_project:
169
- rubygems_version: 2.6.6
141
+ rubygems_version: 2.6.11
170
142
  signing_key:
171
143
  specification_version: 4
172
144
  summary: fluent plugin to send message to typetalk