exception_notification-ikachan 0.1.0 → 0.1.1

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: 174d70e10eacc6df6566279d6eed3f8f7cb7aae5
4
- data.tar.gz: 83a1c7f985f431272dadf45ce13196d490a6e1b0
3
+ metadata.gz: d6b7bf509704cee5b7374e4a87570dfb12956ccc
4
+ data.tar.gz: 60b3b2cd16bf6e7c9b3f0ea42e8598fcc69c44ad
5
5
  SHA512:
6
- metadata.gz: f58b929cca9b113f786485fb9b87eb95174a27dedb0ad045014d16b6c0b6ecd2bbdb25abb661d58fa1b018444afc4537ecb7b6d794a9aa62861917ad8f8ab6b6
7
- data.tar.gz: 7104a68e2760be7033df27d9b85ad5a710e59ea78982ef9fa9e037ca25f8bd441ff7b4346da47af81d79d3497d031c21a6db002113e43ee6d71876eeabcc4260
6
+ metadata.gz: 7c103dbb780ae535b67112d45986c85098fb9293185682567bff81c927d77980ff9fc12939d655efb2865abc297c96565239d1780de2b92cb28b3f1349b514eb
7
+ data.tar.gz: 95bf030d7fcb49993681ec0984e0544ff26483ff2e2e6e98c323ea07424b4445befdbb78d43c90d797a323578541f71736aa0d53104b0201d129804f324af287
@@ -1,5 +1,5 @@
1
1
  module ExceptionNotification
2
2
  class Ikachan
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
@@ -12,7 +12,9 @@ module ExceptionNotifier
12
12
  def notice_all(channels, message)
13
13
  channels.each do |channel|
14
14
  join(channel)
15
- notice(channel, message)
15
+ message.each_line do |line|
16
+ notice(channel, line)
17
+ end
16
18
  end
17
19
  end
18
20
 
@@ -62,7 +64,7 @@ module ExceptionNotifier
62
64
  message: exception.message,
63
65
  occurred: (exception.backtrace.first rescue nil),
64
66
  }
65
- params.merge!(build_params_from_request(options[:env])) if options[:env]
67
+ params.merge!(build_params_from_request(options[:env]))
66
68
  @message = message_format % params
67
69
  end
68
70
 
@@ -87,7 +89,8 @@ module ExceptionNotifier
87
89
  end
88
90
  end
89
91
 
90
- def build_params_from_request(env)
92
+ def build_params_from_request(env=nil)
93
+ return default_params_from_request unless env
91
94
  request = request_klass.new(env)
92
95
  dest = {}
93
96
  @request_param_names.map{|n| [n, n.sub(/^request_/, '')] }.each do |param_name, attribute|
@@ -96,6 +99,12 @@ module ExceptionNotifier
96
99
  dest
97
100
  end
98
101
 
102
+ def default_params_from_request
103
+ @request_param_names.each_with_object({}) do |name, dest|
104
+ dest[name.to_sym] = ''
105
+ end
106
+ end
107
+
99
108
  # alias
100
109
  VERSION = ExceptionNotification::Ikachan::VERSION
101
110
  end
@@ -59,6 +59,13 @@ describe ExceptionNotifier::IkachanNotifier do
59
59
  notifier.build_message(exception, {env: {'PATH_INFO' => '/foo/bar'}})
60
60
  expect(notifier.message).to eq("/foo/bar")
61
61
  end
62
+
63
+ it "should not raise error without env" do
64
+ expect {
65
+ notifier.build_message(exception)
66
+ }.not_to raise_error
67
+ expect(notifier.message).to eq("")
68
+ end
62
69
  end
63
70
 
64
71
  describe "message with more request info" do
@@ -122,20 +129,42 @@ describe ExceptionNotifier::IkachanNotifier do
122
129
  {
123
130
  base_url: 'ikachan.udzura.jp',
124
131
  channel: '#udzura',
125
- message_format: '%{class}: %{message}'
132
+ message_format: message_format
126
133
  }
127
134
  end
128
135
  let(:exception) { StandardError.new("Hello, exception!")}
129
136
 
130
- it "should notice message to ikachan" do
131
- stub_join = stub_request(:post, "http://ikachan.udzura.jp/join").
132
- with(body: {"channel" => "#udzura"})
133
- stub_notice = stub_request(:post, "http://ikachan.udzura.jp/notice").
134
- with(body: {"channel" => "#udzura", "message" => "StandardError: Hello, exception!"})
137
+ describe 'single line' do
138
+ let(:message_format){ '%{class}: %{message}' }
139
+
140
+ it "should notice message to ikachan" do
141
+ stub_join = stub_request(:post, "http://ikachan.udzura.jp/join").
142
+ with(body: {"channel" => "#udzura"})
143
+ stub_notice = stub_request(:post, "http://ikachan.udzura.jp/notice").
144
+ with(body: {"channel" => "#udzura", "message" => "StandardError: Hello, exception!"})
135
145
 
136
- notifier.call(exception, {})
137
- stub_join.should have_been_requested.once
138
- stub_notice.should have_been_requested.once
146
+ notifier.call(exception, {})
147
+ stub_join.should have_been_requested.once
148
+ stub_notice.should have_been_requested.once
149
+ end
150
+ end
151
+
152
+ describe 'multiple line' do
153
+ let(:message_format){ <<-EOFormat }
154
+ %{class}
155
+ %{message}
156
+ extra info
157
+ EOFormat
158
+ it "should notice message to ikachan" do
159
+ stub_join = stub_request(:post, "http://ikachan.udzura.jp/join").
160
+ with(body: {"channel" => "#udzura"})
161
+ stub_notice = stub_request(:post, "http://ikachan.udzura.jp/notice").
162
+ with(body: {"channel" => "#udzura", "message" => an_instance_of(String)})
163
+
164
+ notifier.call(exception, {})
165
+ stub_join.should have_been_requested.once
166
+ stub_notice.should have_been_requested.times(3)
167
+ end
139
168
  end
140
169
  end
141
170
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exception_notification-ikachan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Uchio KONDO