ixtlan-error-handler 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
data/lib/ixtlan/errors/dumper.rb
CHANGED
@@ -73,6 +73,9 @@ module Ixtlan
|
|
73
73
|
@to_emails,
|
74
74
|
exception,
|
75
75
|
"#{@base_url}/#{error.id}" ).deliver
|
76
|
+
true
|
77
|
+
else
|
78
|
+
false
|
76
79
|
end
|
77
80
|
end
|
78
81
|
|
@@ -122,7 +125,7 @@ module Ixtlan
|
|
122
125
|
if(@last_cleanup.nil? || @last_cleanup < (now - 1))
|
123
126
|
@last_cleanup = now
|
124
127
|
begin
|
125
|
-
delete_all( now -
|
128
|
+
delete_all( now - keep_dumps )
|
126
129
|
logger.info "cleaned error dumps"
|
127
130
|
rescue Exception => e
|
128
131
|
logger.warn "error cleaning up error dumps: #{e.message}"
|
@@ -143,4 +146,4 @@ module Ixtlan
|
|
143
146
|
end
|
144
147
|
end
|
145
148
|
end
|
146
|
-
end
|
149
|
+
end
|
@@ -82,11 +82,11 @@ module Ixtlan
|
|
82
82
|
|
83
83
|
def dump_error(exception)
|
84
84
|
Rails.configuration.error_dumper.dump( exception,
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
85
|
+
request.env,
|
86
|
+
response.headers,
|
87
|
+
session,
|
88
|
+
params )
|
89
89
|
end
|
90
90
|
end
|
91
91
|
end
|
92
|
-
end
|
92
|
+
end
|
@@ -22,32 +22,14 @@ class Error
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
module ActionMailer
|
28
|
-
class Base
|
29
|
-
|
30
|
-
def self.method_missing(method, *args)
|
31
|
-
self.new
|
32
|
-
end
|
33
|
-
|
34
|
-
def self.deliver(val = nul)
|
35
|
-
@delivered = val if val
|
36
|
-
@delivered
|
37
|
-
end
|
38
|
-
def deliver
|
39
|
-
self.class.deliver(true)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
25
|
+
require 'pony'
|
26
|
+
Pony.options = { :via => :test }
|
45
27
|
|
46
|
-
require 'ixtlan/errors/
|
28
|
+
require 'ixtlan/errors/dumper'
|
47
29
|
require 'date'
|
48
30
|
require 'logger'
|
49
31
|
|
50
|
-
class Controller
|
32
|
+
class Controller < Hash
|
51
33
|
|
52
34
|
def request
|
53
35
|
self
|
@@ -105,26 +87,29 @@ end
|
|
105
87
|
|
106
88
|
DataMapper.setup(:default, "sqlite3::memory:")
|
107
89
|
DataMapper.finalize
|
108
|
-
DataMapper.
|
90
|
+
DataMapper.auto_migrate!
|
109
91
|
|
110
|
-
describe Ixtlan::Errors::
|
92
|
+
describe Ixtlan::Errors::Dumper do
|
111
93
|
|
112
94
|
before :each do
|
113
|
-
@dumper = Ixtlan::Errors::
|
95
|
+
@dumper = Ixtlan::Errors::Dumper.new
|
96
|
+
@dumper.model = Error
|
114
97
|
@dumper.base_url = "http://localhost"
|
115
98
|
@controller = Controller.new
|
116
99
|
end
|
117
100
|
|
118
101
|
it "should dump env and not send notification" do
|
119
|
-
|
120
|
-
|
102
|
+
send = @dumper.dump(StandardError.new("dump it"), @controller.request, @controller.response, @controller.session, @controller.params)
|
103
|
+
send.should be_false
|
104
|
+
|
121
105
|
@dumper.from_email = "asd"
|
122
|
-
|
123
|
-
|
106
|
+
send = @dumper.dump(StandardError.new("dump it"), @controller.request, @controller.response, @controller.session, @controller.params)
|
107
|
+
send.should be_false
|
108
|
+
|
124
109
|
@dumper.from_email = nil
|
125
110
|
@dumper.to_emails = "dsa"
|
126
|
-
|
127
|
-
|
111
|
+
send = @dumper.dump(StandardError.new("dump it"), @controller.request, @controller.response, @controller.session, @controller.params)
|
112
|
+
send.should be_false
|
128
113
|
end
|
129
114
|
|
130
115
|
it "should clean up error dumps" do
|
@@ -132,16 +117,19 @@ describe Ixtlan::Errors::ErrorDumper do
|
|
132
117
|
Error.all.size.should > 0
|
133
118
|
@dumper.keep_dumps = 0
|
134
119
|
Error.all.size.should == 0
|
135
|
-
|
120
|
+
|
121
|
+
@dumper.dump(StandardError.new("dump it"), @controller.request, @controller.response, @controller.session, @controller.params)
|
136
122
|
Error.all.size.should == 1
|
137
|
-
|
123
|
+
|
124
|
+
@dumper.dump(StandardError.new("dump it"), @controller.request, @controller.response, @controller.session, @controller.params)
|
138
125
|
Error.all.size.should == 2
|
139
126
|
end
|
140
127
|
|
141
128
|
it "should send notifications" do
|
142
129
|
@dumper.to_emails = "das"
|
143
130
|
@dumper.from_email = "asd"
|
144
|
-
|
145
|
-
|
131
|
+
|
132
|
+
send = @dumper.dump(StandardError.new("dump it"), @controller.request, @controller.response, @controller.session, @controller.params)
|
133
|
+
send.should be_true
|
146
134
|
end
|
147
135
|
end
|
data/spec/error_handler_spec.rb
CHANGED
metadata
CHANGED
@@ -1,101 +1,158 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ixtlan-error-handler
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
- 1
|
10
|
+
version: 0.3.1
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Christian Meier
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2012-12-29 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: slf4r
|
16
|
-
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
24
|
none: false
|
18
|
-
requirements:
|
25
|
+
requirements:
|
19
26
|
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 11
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
- 4
|
32
|
+
- 2
|
21
33
|
version: 0.4.2
|
22
34
|
type: :runtime
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
26
37
|
name: rspec
|
27
|
-
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
40
|
none: false
|
29
|
-
requirements:
|
41
|
+
requirements:
|
30
42
|
- - ~>
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 21
|
45
|
+
segments:
|
46
|
+
- 2
|
47
|
+
- 11
|
48
|
+
version: "2.11"
|
33
49
|
type: :development
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
37
52
|
name: rake
|
38
|
-
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
55
|
none: false
|
40
|
-
requirements:
|
56
|
+
requirements:
|
41
57
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 75
|
60
|
+
segments:
|
61
|
+
- 10
|
62
|
+
- 0
|
63
|
+
- 2
|
43
64
|
version: 10.0.2
|
44
65
|
type: :development
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
66
|
+
version_requirements: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
48
68
|
name: dm-core
|
49
|
-
|
69
|
+
prerelease: false
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
71
|
none: false
|
51
|
-
requirements:
|
72
|
+
requirements:
|
52
73
|
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 31
|
76
|
+
segments:
|
77
|
+
- 1
|
78
|
+
- 2
|
79
|
+
- 0
|
54
80
|
version: 1.2.0
|
55
81
|
type: :development
|
56
|
-
|
57
|
-
|
58
|
-
- !ruby/object:Gem::Dependency
|
82
|
+
version_requirements: *id004
|
83
|
+
- !ruby/object:Gem::Dependency
|
59
84
|
name: dm-migrations
|
60
|
-
|
85
|
+
prerelease: false
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
87
|
none: false
|
62
|
-
requirements:
|
88
|
+
requirements:
|
63
89
|
- - ~>
|
64
|
-
- !ruby/object:Gem::Version
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
hash: 31
|
92
|
+
segments:
|
93
|
+
- 1
|
94
|
+
- 2
|
95
|
+
- 0
|
65
96
|
version: 1.2.0
|
66
97
|
type: :development
|
67
|
-
|
68
|
-
|
69
|
-
- !ruby/object:Gem::Dependency
|
98
|
+
version_requirements: *id005
|
99
|
+
- !ruby/object:Gem::Dependency
|
70
100
|
name: dm-sqlite-adapter
|
71
|
-
|
101
|
+
prerelease: false
|
102
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
72
103
|
none: false
|
73
|
-
requirements:
|
104
|
+
requirements:
|
74
105
|
- - ~>
|
75
|
-
- !ruby/object:Gem::Version
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
hash: 31
|
108
|
+
segments:
|
109
|
+
- 1
|
110
|
+
- 2
|
111
|
+
- 0
|
76
112
|
version: 1.2.0
|
77
113
|
type: :development
|
114
|
+
version_requirements: *id006
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: pony
|
78
117
|
prerelease: false
|
79
|
-
|
80
|
-
|
118
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
120
|
+
requirements:
|
121
|
+
- - ~>
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
hash: 7
|
124
|
+
segments:
|
125
|
+
- 1
|
126
|
+
- 4
|
127
|
+
version: "1.4"
|
128
|
+
type: :development
|
129
|
+
version_requirements: *id007
|
130
|
+
- !ruby/object:Gem::Dependency
|
81
131
|
name: copyright-header
|
82
|
-
|
132
|
+
prerelease: false
|
133
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
83
134
|
none: false
|
84
|
-
requirements:
|
135
|
+
requirements:
|
85
136
|
- - ~>
|
86
|
-
- !ruby/object:Gem::Version
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
hash: 25
|
139
|
+
segments:
|
140
|
+
- 1
|
141
|
+
- 0
|
142
|
+
- 7
|
87
143
|
version: 1.0.7
|
88
144
|
type: :development
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
to specific pages
|
93
|
-
email:
|
145
|
+
version_requirements: *id008
|
146
|
+
description: dump errors on filesystem and notify developers, map different errors to specific pages
|
147
|
+
email:
|
94
148
|
- m.kristian@web.de
|
95
149
|
executables: []
|
150
|
+
|
96
151
|
extensions: []
|
152
|
+
|
97
153
|
extra_rdoc_files: []
|
98
|
-
|
154
|
+
|
155
|
+
files:
|
99
156
|
- MIT-LICENSE
|
100
157
|
- README.textile
|
101
158
|
- lib/ixtlan-error-handler.rb
|
@@ -122,37 +179,43 @@ files:
|
|
122
179
|
- lib/ixtlan/errors/rack.rb
|
123
180
|
- lib/ixtlan/errors/serializer.rb
|
124
181
|
- spec/error_handler_spec.rb
|
182
|
+
- spec/dumper_spec.rb
|
125
183
|
- spec/error_dumper_spec.rb~
|
126
184
|
- spec/error_handler_spec.rb~
|
127
|
-
- spec/error_dumper_spec.rb
|
128
185
|
homepage: http://github.com/mkristian/ixtlan-error-handler
|
129
|
-
licenses:
|
186
|
+
licenses:
|
130
187
|
- MIT
|
131
188
|
post_install_message:
|
132
|
-
rdoc_options:
|
189
|
+
rdoc_options:
|
133
190
|
- --main
|
134
191
|
- README.textile
|
135
|
-
require_paths:
|
192
|
+
require_paths:
|
136
193
|
- lib
|
137
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
194
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
138
195
|
none: false
|
139
|
-
requirements:
|
140
|
-
- -
|
141
|
-
- !ruby/object:Gem::Version
|
142
|
-
|
143
|
-
|
196
|
+
requirements:
|
197
|
+
- - ">="
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
hash: 3
|
200
|
+
segments:
|
201
|
+
- 0
|
202
|
+
version: "0"
|
203
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
204
|
none: false
|
145
|
-
requirements:
|
146
|
-
- -
|
147
|
-
- !ruby/object:Gem::Version
|
148
|
-
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
hash: 3
|
209
|
+
segments:
|
210
|
+
- 0
|
211
|
+
version: "0"
|
149
212
|
requirements: []
|
213
|
+
|
150
214
|
rubyforge_project:
|
151
|
-
rubygems_version: 1.8.
|
215
|
+
rubygems_version: 1.8.15
|
152
216
|
signing_key:
|
153
217
|
specification_version: 3
|
154
218
|
summary: dump errors on filesystem and notify developers
|
155
|
-
test_files:
|
219
|
+
test_files:
|
156
220
|
- spec/error_handler_spec.rb
|
157
|
-
- spec/
|
158
|
-
has_rdoc:
|
221
|
+
- spec/dumper_spec.rb
|