whoops 0.1.9 → 0.1.10

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.
@@ -14,8 +14,6 @@ class EventsController < ApplicationController
14
14
  :page => params[:page],
15
15
  :per_page => 20
16
16
  )
17
-
18
- puts 'test'
19
17
  end
20
18
 
21
19
  def show
@@ -11,7 +11,7 @@ class Whoops::Event
11
11
 
12
12
  validates_presence_of :message
13
13
 
14
- before_save :set_keywords
14
+ before_save :set_keywords, :sanitize_details
15
15
 
16
16
  def self.record(params)
17
17
  params = params.with_indifferent_access
@@ -37,6 +37,39 @@ class Whoops::Event
37
37
  add_details_to_keywords(keywords_array)
38
38
  self.keywords = keywords_array.join(" ")
39
39
  end
40
+
41
+ def sanitize_details
42
+ if details.is_a? Hash
43
+ sanitized_details = {}
44
+ details.each do |key, value|
45
+ if key =~ /\./
46
+ key = key.gsub(/\./, "_")
47
+ end
48
+
49
+ if value.is_a? Hash
50
+ child_keys = all_keys([value])
51
+ if child_keys.any?{ |child_key| child_key =~ /\./ }
52
+ value = value.to_s
53
+ end
54
+ end
55
+
56
+ sanitized_details[key] = value
57
+ end
58
+
59
+ self.details = sanitized_details
60
+ end
61
+ end
62
+
63
+ def all_keys(values)
64
+ keys = []
65
+ values.each do |value|
66
+ if value.is_a? Hash
67
+ keys |= value.keys
68
+ keys |= all_keys(value.values)
69
+ end
70
+ end
71
+ keys
72
+ end
40
73
 
41
74
  private
42
75
 
@@ -53,6 +86,5 @@ class Whoops::Event
53
86
  i.to_a.flatten - i.keys
54
87
  end.flatten!
55
88
  end
56
-
57
89
  end
58
90
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: whoops
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 15
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 9
10
- version: 0.1.9
9
+ - 10
10
+ version: 0.1.10
11
11
  platform: ruby
12
12
  authors:
13
13
  - Daniel Higginbotham
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-09-22 00:00:00 -04:00
18
+ date: 2011-09-29 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency