wat_catcher 0.1.0 → 0.2.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: 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