fluent-plugin-ikachan 0.2.0 → 0.2.1

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.
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  Gem::Specification.new do |gem|
3
3
  gem.name = "fluent-plugin-ikachan"
4
- gem.version = "0.2.0"
4
+ gem.version = "0.2.1"
5
5
  gem.authors = ["TAGOMORI Satoshi"]
6
6
  gem.email = ["tagomoris@gmail.com"]
7
7
  gem.summary = %q{output plugin for IRC-HTTP gateway 'ikachan'}
@@ -83,7 +83,9 @@ class Fluent::IkachanOutput < Fluent::Output
83
83
 
84
84
  messages.each do |msg|
85
85
  begin
86
- res = Net::HTTP.post_form(@notice_uri, {'channel' => @channel, 'message' => msg})
86
+ msg.split("\n").each do |m|
87
+ res = Net::HTTP.post_form(@notice_uri, {'channel' => @channel, 'message' => m})
88
+ end
87
89
  rescue
88
90
  $log.warn "out_ikachan: failed to send notice to #{@host}:#{@port}, #{@channel}, message: #{msg}"
89
91
  end
@@ -91,7 +93,9 @@ class Fluent::IkachanOutput < Fluent::Output
91
93
 
92
94
  privmsg_messages.each do |msg|
93
95
  begin
94
- res = Net::HTTP.post_form(@privmsg_uri, {'channel' => @channel, 'message' => msg})
96
+ msg.split("\n").each do |m|
97
+ res = Net::HTTP.post_form(@privmsg_uri, {'channel' => @channel, 'message' => m})
98
+ end
95
99
  rescue
96
100
  $log.warn "out_ikachan: failed to send privmsg to #{@host}:#{@port}, #{@channel}, message: #{msg}"
97
101
  end
@@ -117,7 +121,7 @@ class Fluent::IkachanOutput < Fluent::Output
117
121
  end
118
122
  end
119
123
 
120
- message % values
124
+ (message % values).gsub(/\\n/, "\n")
121
125
  end
122
126
 
123
127
  end
@@ -36,6 +36,19 @@ class IkachanOutputTest < Test::Unit::TestCase
36
36
  tag_key tag
37
37
  ]
38
38
 
39
+ # Please notice that the line feed is "\n" in fluentd config file, not "\\n" as belows:
40
+ CONFIG_LINE_FEED = %[
41
+ host localhost
42
+ channel morischan
43
+ message out_ikachan: %s [%s] %s\\nRETURN
44
+ out_keys tag,time,msg
45
+ privmsg_message out_ikachan: %s [%s] %s\\nRETURN
46
+ privmsg_out_keys tag,time,msg
47
+ time_key time
48
+ time_format %Y/%m/%d %H:%M:%S
49
+ tag_key tag
50
+ ]
51
+
39
52
  def create_driver(conf=CONFIG,tag='test')
40
53
  Fluent::Test::OutputTestDriver.new(Fluent::IkachanOutput, tag).configure(conf)
41
54
  end
@@ -47,6 +60,8 @@ class IkachanOutputTest < Test::Unit::TestCase
47
60
  assert_equal '#morischan', d.instance.channel
48
61
  d = create_driver(CONFIG_PRIVMSG_ONLY)
49
62
  assert_equal '#morischan', d.instance.channel
63
+ d = create_driver(CONFIG_LINE_FEED)
64
+ assert_equal '#morischan', d.instance.channel
50
65
  end
51
66
 
52
67
  # CONFIG = %[
@@ -148,6 +163,59 @@ class IkachanOutputTest < Test::Unit::TestCase
148
163
  assert_equal "out_ikachan: test [#{ts}] privmsg message from fluentd out_ikachan: testing second line", @posted[1][:message]
149
164
  end
150
165
 
166
+ # CONFIG = %[
167
+ # host localhost
168
+ # channel morischan
169
+ # message out_ikachan: %s [%s] %s\nRETURN
170
+ # out_keys tag,time,msg
171
+ # privmsg_message out_ikachan: %s [%s] %s\nRETURN
172
+ # privmsg_out_keys tag,time,msg
173
+ # time_key time
174
+ # time_format %Y/%m/%d %H:%M:%S
175
+ # tag_key tag
176
+ # ]
177
+ def test_line_feed
178
+ d = create_driver(CONFIG_LINE_FEED)
179
+ t = Time.now
180
+ time = t.to_i
181
+ ts = t.strftime(d.instance.time_format)
182
+ d.run do
183
+ d.emit({'msg' => "both notice and privmsg message from fluentd out_ikachan: testing now\ntesting second line"}, time)
184
+ end
185
+
186
+ assert_equal 6, @posted.length
187
+
188
+ i = 0
189
+ assert_equal 'notice', @posted[i][:method]
190
+ assert_equal '#morischan', @posted[i][:channel]
191
+ assert_equal "out_ikachan: test [#{ts}] both notice and privmsg message from fluentd out_ikachan: testing now", @posted[i][:message]
192
+
193
+ i += 1
194
+ assert_equal 'notice', @posted[i][:method]
195
+ assert_equal '#morischan', @posted[i][:channel]
196
+ assert_equal "testing second line", @posted[i][:message]
197
+
198
+ i += 1
199
+ assert_equal 'notice', @posted[i][:method]
200
+ assert_equal '#morischan', @posted[i][:channel]
201
+ assert_equal "RETURN", @posted[i][:message]
202
+
203
+ i += 1
204
+ assert_equal 'privmsg', @posted[i][:method]
205
+ assert_equal '#morischan', @posted[i][:channel]
206
+ assert_equal "out_ikachan: test [#{ts}] both notice and privmsg message from fluentd out_ikachan: testing now", @posted[i][:message]
207
+
208
+ i += 1
209
+ assert_equal 'privmsg', @posted[i][:method]
210
+ assert_equal '#morischan', @posted[i][:channel]
211
+ assert_equal "testing second line", @posted[i][:message]
212
+
213
+ i += 1
214
+ assert_equal 'privmsg', @posted[i][:method]
215
+ assert_equal '#morischan', @posted[i][:channel]
216
+ assert_equal "RETURN", @posted[i][:message]
217
+ end
218
+
151
219
  # setup / teardown for servers
152
220
  def setup
153
221
  Fluent::Test.setup
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-ikachan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-08 00:00:00.000000000 Z
12
+ date: 2013-03-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd