exceptional 2.0.20 → 2.0.21

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.
@@ -57,17 +57,23 @@ module Exceptional
57
57
  end
58
58
 
59
59
  def self.sanitize_hash(hash)
60
+
60
61
  case hash
61
62
  when Hash
62
- hash.inject({}) do |result, (key, value)|
63
+ hash.inject({}) do |result, (key, value)|
63
64
  result.update(key => sanitize_hash(value))
64
65
  end
65
- when Fixnum, Array, String, Bignum
66
+ when Array
67
+ hash.collect{|value| sanitize_hash(value)}
68
+ when Fixnum, String, Bignum
66
69
  hash
67
70
  else
68
71
  hash.to_s
69
72
  end
70
- rescue
73
+ rescue Exception => e
74
+ Exceptional.logger.error(hash)
75
+ Exceptional.logger.error(e.message)
76
+ Exceptional.logger.error(e.backtrace)
71
77
  {}
72
78
  end
73
79
 
@@ -1,3 +1,3 @@
1
1
  module Exceptional
2
- VERSION = '2.0.20'
2
+ VERSION = '2.0.21'
3
3
  end
@@ -105,6 +105,17 @@ describe Exceptional::ControllerExceptionData, 'with request/controller/params'
105
105
  input = {'crazy' => crazy, :simple => '123', :some_hash => {'1' => '2'}, :array => ['1', '2']}
106
106
  Exceptional::ControllerExceptionData.sanitize_hash(input).should == {'crazy' => crazy.to_s, :simple => '123', :some_hash => {'1' => '2'}, :array => ['1', '2']}
107
107
  end
108
+
109
+ it "allow if non jsonable objects are hidden in an array" do
110
+ class Bonkers
111
+ def to_json
112
+ no.can.do!
113
+ end
114
+ end
115
+ crazy = Bonkers.new
116
+ input = {'crazy' => [crazy]}
117
+ Exceptional::ControllerExceptionData.sanitize_hash(input).should == {'crazy' => [crazy.to_s]}
118
+ end
108
119
 
109
120
  it "ArgumentError bug with file object" do
110
121
  file = File.new(File.expand_path('../../fixtures/favicon.png',__FILE__))
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exceptional
3
3
  version: !ruby/object:Gem::Version
4
- hash: 39
4
+ hash: 37
5
5
  prerelease: false
6
6
  segments:
7
7
  - 2
8
8
  - 0
9
- - 20
10
- version: 2.0.20
9
+ - 21
10
+ version: 2.0.21
11
11
  platform: ruby
12
12
  authors:
13
13
  - Contrast
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-09 00:00:00 +01:00
18
+ date: 2010-08-10 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies: []
21
21