wat_catcher 0.1.0 → 0.2.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: cc313703208b28f0ebeb5456be66d62f38ca9873
4
- data.tar.gz: 79a0d4e383b5cdd7c7678f7721f3e87c13f4d0de
3
+ metadata.gz: 3e96646c31ecf9a0473cc40c7b79aa1324d03e83
4
+ data.tar.gz: c04e03599a4ae71659bad0330254bd9297c85d0f
5
5
  SHA512:
6
- metadata.gz: c4799cbdf9b74f9823f950f1b0fd19cb0d50a2bc9daddd273c6b099be5dfb5a6797dbc7c989b65e326e4e255d9a96fcf0ae5aed0269240a6cce02c29178fcc0c
7
- data.tar.gz: e6945f9a2e9a6c9687331cbc13d3a4eaa9585d2eea26085f48254ef0921d9914d2bbbb4cda3a8b8cb5a09443e8410c6a3f6c8ed9e81bd6c38e223e022832b26a
6
+ metadata.gz: 5e80033c1674f7c944526847fedf560c6065c1d12102e73b4114e69e2d80104258a98f73dfd9f10b5b24eaa633506c5f168f44419625b106d035d98a9a3be251
7
+ data.tar.gz: df20ba615c49ad9e45af4963246c701b5e21eb97bd7700150773cec160f8047a53e61ff63452b597ea2d496c360795d0c29fc7dc394d6a45751212cace880043
@@ -6,30 +6,8 @@ module WatCatcher
6
6
 
7
7
  def call(env)
8
8
  @app.call(env)
9
- rescue
10
- excpt = $!
11
- request = env["action_controller.instance"].request
12
- params = request.filtered_parameters
13
- session = request.session.as_json
14
- page_url = request.url
15
-
16
- # Build the clean url (hide the port if it is obvious)
17
- url = "#{request.scheme}://#{request.host}"
18
- url << ":#{request.port}" unless [80, 443].include?(request.port)
19
- url << request.fullpath
20
-
21
- ::WatCatcher::SidekiqPoster.perform_async(
22
- "#{WatCatcher.configuration.host}/wats",
23
- {
24
- wat: {
25
- page_url: page_url,
26
- request_params: params,
27
- session: session,
28
- backtrace: excpt.backtrace.to_a,
29
- message: excpt.message,
30
- error_class: excpt.class.to_s
31
- }
32
- })
9
+ rescue Exception => exception
10
+ SidekiqPoster.report(exception, request: env["action_controller.instance"].request)
33
11
  raise
34
12
  end
35
13
  end
@@ -5,17 +5,7 @@ module WatCatcher
5
5
  yield
6
6
  rescue => excpt
7
7
  raise if msg["class"] == WatCatcher::SidekiqPoster.to_s
8
- SidekiqPoster.perform_async(
9
- "#{WatCatcher.configuration.host}/wats",
10
- {
11
- wat: {
12
- backtrace: excpt.backtrace.to_a,
13
- message: excpt.message,
14
- error_class: excpt.class.to_s,
15
- sidekiq_msg: msg
16
-
17
- }
18
- })
8
+ WatCatcher::SidekiqPoster.report(excpt, sidekiq: msg)
19
9
  raise
20
10
  end
21
11
  end
@@ -4,9 +4,40 @@ module WatCatcher
4
4
  class SidekiqPoster
5
5
  include Sidekiq::Worker
6
6
 
7
+ def self.report(exception, request: nil, sidekiq: nil)
8
+ params = {
9
+ wat: {
10
+ backtrace: exception.backtrace.to_a,
11
+ message: exception.message,
12
+ error_class: exception.class.to_s,
13
+ app_env: ::Rails.env.to_s
14
+ }
15
+ }
16
+
17
+ if request
18
+ request_params = request.filtered_parameters
19
+ session = request.session.as_json
20
+ page_url = request.url
21
+
22
+ params.merge!({
23
+ page_url: page_url,
24
+ request_params: request_params,
25
+ session: session,
26
+ })
27
+ end
28
+
29
+ if sidekiq
30
+ params[:wat].merge!({
31
+ sidekiq_msg: sidekiq
32
+ })
33
+ end
34
+
35
+ ::WatCatcher::SidekiqPoster.perform_async("#{WatCatcher.configuration.host}/wats", params)
36
+ end
37
+
7
38
  def perform(url, params)
8
39
  HTTPClient.post_content(url,
9
- body: params["wat"].merge({"app_env" => ::Rails.env.to_s}).to_json,
40
+ body: params["wat"].to_json,
10
41
  header: {"Content-Type" => "application/json; charset=utf-8"})
11
42
  end
12
43
  end
@@ -1,3 +1,3 @@
1
1
  module WatCatcher
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wat_catcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Constantine