custos_notifier 0.1 → 0.2

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.
@@ -85,7 +85,7 @@ module CustosNotifier
85
85
  @server = `hostname -s`.chomp
86
86
  @source = ""
87
87
  @process_id = $$
88
- @parameters = rack_env(:params).inspect || {}.inspect
88
+ @parameters = rack_env(:params) || {}
89
89
  @request_uri = rack_env(:url) || ""
90
90
  @document_root = rack_env(:env) { |env| env["DOCUMENT_ROOT"] } || ""
91
91
  @content_length = rack_env(:env) { |env| env["DOCUMENT_ROOT"] } || ""
@@ -120,7 +120,7 @@ module CustosNotifier
120
120
  :process_id => @process_id,
121
121
  :request => {
122
122
  :uri => @request_uri,
123
- :parameters => @parameters,
123
+ :parameters => filter(@parameters).inspect,
124
124
  :document_root => @document_root,
125
125
  :content_length => @content_length,
126
126
  :http_accept => @http_accept,
@@ -170,6 +170,30 @@ module CustosNotifier
170
170
  end
171
171
  end
172
172
 
173
+
174
+ def filter(hash)
175
+ unless filters.empty?
176
+ hash.each do |key, value|
177
+ if filter_key?(key)
178
+ hash[key] = "[FILTERED]"
179
+ elsif value.respond_to?(:to_hash)
180
+ filter(hash[key])
181
+ end
182
+ end
183
+ end
184
+ hash
185
+ end
186
+
187
+
188
+ def filters
189
+ @filters ||= @args[:rack_env]["action_dispatch.parameter_filter"] || []
190
+ end
191
+
192
+
193
+ def filter_key?(key)
194
+ filters.any? {|filter| key.to_s.include? filter.to_s }
195
+ end
196
+
173
197
  end
174
198
 
175
199
  end
@@ -29,10 +29,31 @@ module CustosNotifier
29
29
  @app.call(env)
30
30
  rescue Exception => raised
31
31
  CustosNotifier.notify(raised, :rack_env => env)
32
- [500, {"Content-Type" => "text/html"},"Something went wrong"]
32
+ if rails_3_app?
33
+ if rails_3_not_dev?
34
+ [500, {"Content-Type" => "text/html"}, File.read(File.join Rails.root, "public/500.html")]
35
+ else
36
+ raise
37
+ end
38
+ else
39
+ [500, {"Content-Type" => "text/html"},"Something went wrong"]
40
+ end
33
41
  end
34
42
  end
35
43
 
44
+
45
+ protected
46
+
47
+
48
+ def rails_3_app?
49
+ defined?(Rails).nil? != true
50
+ end
51
+
52
+
53
+ def rails_3_not_dev?
54
+ !%w(development test).include?(Rails.env)
55
+ end
56
+
36
57
  end
37
58
 
38
59
  end
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: custos_notifier
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
9
- version: "0.1"
8
+ - 2
9
+ version: "0.2"
10
10
  platform: ruby
11
11
  authors:
12
12
  - Sebastian Nowak
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-06-08 00:00:00 +02:00
17
+ date: 2011-07-01 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency