fluent-plugin-typetalk 0.0.10 → 0.1.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: 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