flail 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- flail (0.0.5)
4
+ flail (0.0.6)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
@@ -30,6 +30,27 @@ class Flail
30
30
  end
31
31
  end
32
32
 
33
+ def clean_unserializable_data(data, stack = [])
34
+ return "[possible infinite recursion halted]" if stack.any? {|item| item == data.object_id}
35
+
36
+ if data.respond_to?(:to_hash)
37
+ data.to_hash.inject({}) do |result, (key, value)|
38
+ result.merge(key => clean_unserializable_data(value, stack + [data.object_id]))
39
+ end
40
+ elsif data.respond_to?(:to_ary)
41
+ data.to_ary.collect do |value|
42
+ clean_unserializable_data(value, stack + [data.object_id])
43
+ end
44
+ else
45
+ data.to_s
46
+ end
47
+ end
48
+
49
+ def clean_rack_env(data)
50
+ data.delete("rack.request.form_vars")
51
+ data
52
+ end
53
+
33
54
 
34
55
  #
35
56
  # Handling the exception
@@ -43,16 +64,21 @@ class Flail
43
64
  info = {}
44
65
 
45
66
  # rack env
46
- info[:rack] = @env.except('flail.request', 'flail.request.data', 'rack.errors', 'rack.input')
67
+ info[:rack] = clean_rack_env(clean_unserializable_data(@env))
68
+
47
69
  info[:class_name] = @exception.class.to_s # @exception class
48
70
  info[:message] = @exception.to_s # error message
49
71
  info[:trace] = @exception.backtrace # backtrace of error
50
72
  info[:target_url] = request_data[:target_url] # url of request
51
73
  info[:referer_url] = request_data[:referer_url] # referer
52
- info[:parameters] = request_data[:parameters] # request parameters
53
74
  info[:user_agent] = request_data[:user_agent] # user agent
54
75
  info[:user] = request_data[:user] # current user
55
- info[:session_data]= request_data[:session_data] # session
76
+
77
+ # request parameters
78
+ info[:parameters] = clean_unserializable_data(request_data[:parameters])
79
+
80
+ # session
81
+ info[:session_data]= clean_unserializable_data(request_data[:session_data])
56
82
 
57
83
  # special variables
58
84
  info[:environment] = Flail.configuration.env
data/lib/flail/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Flail
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: