exceptiontrap 2.0.1 → 2.1.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
  SHA256:
3
- metadata.gz: d4613ddfba38ec1f735fafa7da8fe332b9d74867dae0e6f3ed0666ef2f14387e
4
- data.tar.gz: 24a85363cfac60501748bc86d497107b4932216550d87e3d29610ef6b06cd6fa
3
+ metadata.gz: 25618a77b83b7ef0c13663112662880e35f17a0af53f88e3c1421fe621aed816
4
+ data.tar.gz: a8d8f88e92861949b4ce464f6965287bcce8fc3a022e1a7ec13353202bbf0f9d
5
5
  SHA512:
6
- metadata.gz: dbb493a6883454ee949003ce2d9db020312503ae82b639793fbbf394cc5962de1bf2a08856d617a3c1fea5dab10cae2a1c173fa8b021b7fc719c2cc4c89b3182
7
- data.tar.gz: 59e795762b2c85e3a9c4a61536fd3487172d58b2ff4c1d0adf0fb79822801bde8a2c9bbe2bcf3b5a91db22cdf123eca03a1250580fe684b4b6d155fbecf4adc1
6
+ metadata.gz: fac4396f56131cb0cb791bc02eb5cb4f5be99b876965caae23f8d36615f38fa6a12e1ee1a1b1229623ad1266ac6053e4eccabfe148344cec379ee1bd97aee7c0
7
+ data.tar.gz: 48cb93606af8e72c75b6745592d73015cec4c0e379dbf2dfab00e2889fc27046a79fbb9af1dbf0b224c38cfa7c20aa2bf4df8e035681736620ff941e2646aac5
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- exceptiontrap (2.0.1)
4
+ exceptiontrap (2.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -52,7 +52,7 @@ end
52
52
 
53
53
  There is no automatic integration into [Resque](https://github.com/resque/resque) yet. Meanwhile you can let Exceptiontrap notifiy you about errors using its `notify` method inside Resque's `on_failure` hook.
54
54
 
55
- You can also create a module with Exceptiontrap enabled and integrate this.
55
+ You can also create a module with Exceptiontrap enabled and integrate it.
56
56
 
57
57
  ```ruby
58
58
  module ExceptiontrapJob
@@ -71,7 +71,7 @@ end
71
71
 
72
72
  ## Known Issues / Todo
73
73
 
74
- Optimize and insert the test suite to the gem.
74
+ Optimize and add the test suite.
75
75
 
76
76
 
77
- Copyright (c) 2018 [Torsten Bühl], released under the MIT license
77
+ Copyright (c) 2019 [Torsten Bühl], released under the MIT license
@@ -1,7 +1,7 @@
1
1
  # Exceptiontrap Config File
2
2
 
3
- # If ENV['api-key'] is set, it will be used instead of the following api-key
4
- # This happens for example, if you use the exceptiontrap addon on heroku
3
+ # If ENV['EXCEPTIONTRAP_API_KEY'] is set, it will be used instead of the following api-key
4
+ # This happens for example if you use the Exceptiontrap add-on on Heroku
5
5
  api-key: <%= api_key %>
6
6
  ssl: true
7
7
  timeout: 5000
@@ -16,4 +16,4 @@ ignoreExceptions:
16
16
  filterParams:
17
17
  - 'password'
18
18
  - 'password_confirmation'
19
- - 's3-key'
19
+ - 's3-key'
@@ -1,26 +1,7 @@
1
1
  module Exceptiontrap
2
+ # TODO: Rewrite this class
2
3
  class Data
3
4
  class << self
4
- # TODO: Remove the duplication or separate classes
5
- # Creates Notification Data for action controller requests (Rails 2)
6
- def rails2_data(exception, request, session, response)
7
- data = {
8
- 'notifier' => NOTIFIER_NAME,
9
- 'name' => exception.class.name,
10
- 'message' => exception.message,
11
- 'location' => location(exception),
12
- 'root' => application_root.to_s,
13
- 'app_environment' => application_environment,
14
- 'request_uri' => request.url || REQUEST_URI,
15
- 'request_params' => clean_params(request.params),
16
- 'request_session' => clean_params(extrap_session_data(session)),
17
- 'environment' => clean_params(request.env),
18
- 'trace' => clean_backtrace(exception.backtrace),
19
- 'request_components' => { :controller => request.params[:controller], :action => request.params[:action] }
20
- }
21
- end
22
-
23
- # Creates Notification Data for rack requests (Rails 3)
24
5
  def rack_data(exception, env = {})
25
6
  components = {}
26
7
  if env["action_dispatch.request.parameters"] != nil
@@ -41,8 +22,8 @@ module Exceptiontrap
41
22
  'app_environment' => application_environment,
42
23
  'request_uri' => rack_request_url(env),
43
24
  'request_params' => clean_params(env['action_dispatch.request.parameters']),
44
- 'request_session' => clean_params(extrap_session_data(env['rack.session'])),
45
- 'environment' => clean_params(env),
25
+ 'request_session' => clean_params(session_data(env)),
26
+ 'environment' => clean_params(strip_env(env)),
46
27
  'trace' => clean_backtrace(exception.backtrace),
47
28
  'request_components' => components
48
29
  }
@@ -86,8 +67,9 @@ module Exceptiontrap
86
67
  end
87
68
 
88
69
  # Deletes params from env / set in config file
89
- def remove_params
90
- remove_params = ['rack.request.form_hash', 'rack.request.form_vars']
70
+ def strip_env(env)
71
+ keys_to_remove = ['rack.request.form_hash', 'rack.request.form_vars', 'async.callback']
72
+ env.reject { |k,v| keys_to_remove.include?(k) }
91
73
  end
92
74
 
93
75
  # Replaces parameter values with a string / set in config file
@@ -112,9 +94,10 @@ module Exceptiontrap
112
94
  end
113
95
  end
114
96
 
115
- # Retrieve data
116
- def extrap_session_data(session)
97
+ def session_data(env)
98
+ session = env['action_dispatch.request.session']
117
99
  return if session == nil
100
+
118
101
  if session.respond_to?(:to_hash)
119
102
  session.to_hash
120
103
  else
@@ -134,18 +117,17 @@ module Exceptiontrap
134
117
  defined?(Rails.root) ? Rails.root : Dir.pwd
135
118
  end
136
119
 
137
- # Trims first underscore from keys, to prevent "malformed" rails XML-tags
120
+ # TODO: Refactor
138
121
  def normalize_data(hash)
139
122
  new_hash = {}
140
123
 
141
- # TODO: Do this nicer
142
124
  hash.each do |key, value|
143
- # key_s = key.to_s.dup
144
- # key_s.sub!("_", "") if key_s[0].chr == "_"
145
- # key_s.sub!("_", "") if key_s[0].chr == "_"
146
-
147
- if value.respond_to?(:to_hash) # if hash, normalize these too
148
- new_hash[key] = normalize_data(value.to_hash)
125
+ if value.respond_to?(:to_hash)
126
+ begin
127
+ new_hash[key] = normalize_data(value.to_hash)
128
+ rescue
129
+ new_hash[key] = value.to_s
130
+ end
149
131
  else
150
132
  new_hash[key] = value.to_s
151
133
  end
@@ -156,4 +138,4 @@ module Exceptiontrap
156
138
 
157
139
  end
158
140
  end
159
- end
141
+ end
@@ -8,10 +8,11 @@ module Exceptiontrap
8
8
  begin
9
9
  response = @app.call(env)
10
10
  rescue Exception => exception
11
- puts '[Exceptiontrap] Raised Exceptiontrap::Rack::Exception'
12
11
  puts "[Exceptiontrap] Caught Exception: #{exception.class.name}"
12
+
13
13
  data = Exceptiontrap::Data.rack_data(exception, env)
14
14
  Exceptiontrap::Notifier.notify(data)
15
+
15
16
  raise
16
17
  end
17
18
 
@@ -19,4 +20,4 @@ module Exceptiontrap
19
20
  end
20
21
 
21
22
  end
22
- end
23
+ end
@@ -8,7 +8,7 @@ module Exceptiontrap
8
8
  Exceptiontrap::Config.load(File.join(Rails.root, '/config/exceptiontrap.yml'))
9
9
  next if Exceptiontrap::disabled?
10
10
 
11
- app.config.middleware.insert_after ActionDispatch::ShowExceptions, Exceptiontrap::Rack
11
+ app.config.middleware.insert_after ActionDispatch::DebugExceptions, Exceptiontrap::Rack
12
12
  end
13
13
  end
14
14
  end
@@ -1,3 +1,3 @@
1
1
  module Exceptiontrap
2
- VERSION = '2.0.1'
2
+ VERSION = '2.1.0'
3
3
  end
data/lib/exceptiontrap.rb CHANGED
@@ -22,12 +22,6 @@ module Exceptiontrap
22
22
  'Accept' => 'application/json'
23
23
  }
24
24
 
25
- def self.notify(exception, params = {})
26
- return if disabled?
27
- data = Data.rack_data(exception, params)
28
- Notifier.notify(data)
29
- end
30
-
31
25
  def self.enabled?
32
26
  Config.enabled_environments.include?(Data.application_environment)
33
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exceptiontrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - tbuehl
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-02 00:00:00.000000000 Z
11
+ date: 2019-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake