Dex_Rack 0.1.8 → 0.1.9
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.
- data/Dex_Rack.gemspec +5 -3
- data/lib/Dex_Rack.rb +2 -25
- data/lib/Dex_Rack/version.rb +1 -1
- data/lib/Dex_Rack/views/record.rb +28 -11
- data/spec/Dex_App.rb +16 -4
- data/spec/lib/main.rb +1 -0
- metadata +39 -7
data/Dex_Rack.gemspec
CHANGED
@@ -11,8 +11,8 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.homepage = "https://github.com/da99/Dex_Rack"
|
12
12
|
s.summary = %q{A Rack app to display Dex exceptions.}
|
13
13
|
s.description = %q{
|
14
|
-
It is a web-frontend for Dex.
|
15
|
-
Update and view exceptions logged with the Dex gem.
|
14
|
+
It is a web-frontend for Dex.
|
15
|
+
Update and view exceptions logged with the Dex gem.
|
16
16
|
}
|
17
17
|
|
18
18
|
s.files = `git ls-files`.split("\n")
|
@@ -22,9 +22,10 @@ Update and view exceptions logged with the Dex gem.
|
|
22
22
|
|
23
23
|
s.add_development_dependency 'bacon'
|
24
24
|
s.add_development_dependency 'rake'
|
25
|
-
s.add_development_dependency 'Bacon_Colored'
|
26
25
|
s.add_development_dependency 'pry'
|
27
26
|
s.add_development_dependency 'rack-test'
|
27
|
+
s.add_development_dependency 'Bacon_Colored'
|
28
|
+
s.add_development_dependency 'Bacon_Rack'
|
28
29
|
|
29
30
|
# Specify any dependencies here; for example:
|
30
31
|
s.add_runtime_dependency 'sinatra'
|
@@ -34,4 +35,5 @@ Update and view exceptions logged with the Dex gem.
|
|
34
35
|
s.add_runtime_dependency 'chronic_duration'
|
35
36
|
s.add_runtime_dependency 'Dex', ">= 0.2.2"
|
36
37
|
s.add_runtime_dependency 'escape_utils'
|
38
|
+
s.add_runtime_dependency 'Backtrace_Array'
|
37
39
|
end
|
data/lib/Dex_Rack.rb
CHANGED
@@ -4,6 +4,7 @@ require 'markaby'
|
|
4
4
|
require 'chronic_duration'
|
5
5
|
require 'cgi'
|
6
6
|
require 'escape_utils'
|
7
|
+
require 'Backtrace_Array'
|
7
8
|
|
8
9
|
class Dex_Rack
|
9
10
|
|
@@ -51,7 +52,7 @@ class Dex_Rack
|
|
51
52
|
vars[:status_class] = status.downcase
|
52
53
|
vars[:status_word] = status
|
53
54
|
r[:human_time] = human_time(r[:created_at])
|
54
|
-
r[:backtrace] =
|
55
|
+
r[:backtrace] = Backtrace_Array(r[:backtrace])
|
55
56
|
vars[:table_keys] << :human_time
|
56
57
|
layout vars, :record
|
57
58
|
else
|
@@ -152,30 +153,6 @@ class Dex_Rack
|
|
152
153
|
EscapeUtils.escape_html( str.encode('UTF-8') )
|
153
154
|
end
|
154
155
|
|
155
|
-
def backtrace_to_html s
|
156
|
-
last_file = nil
|
157
|
-
str = ""
|
158
|
-
s.split("\n").each { |l|
|
159
|
-
|
160
|
-
file, num, code = l.split(':')
|
161
|
-
|
162
|
-
str.<< %!
|
163
|
-
<div class="file">#{escape_html file}</div>
|
164
|
-
! if file != last_file
|
165
|
-
|
166
|
-
str.<< %!
|
167
|
-
<div class="line">
|
168
|
-
<span class="num">#{num}</span>
|
169
|
-
<span class="code">#{escape_html code}</span>
|
170
|
-
</div>!
|
171
|
-
|
172
|
-
last_file = file
|
173
|
-
|
174
|
-
}
|
175
|
-
|
176
|
-
str
|
177
|
-
end
|
178
|
-
|
179
156
|
def human_time t
|
180
157
|
target = Time.now.utc.to_i - t.to_i
|
181
158
|
if target < 61
|
data/lib/Dex_Rack/version.rb
CHANGED
@@ -34,19 +34,36 @@ div.content! {
|
|
34
34
|
}
|
35
35
|
end
|
36
36
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
37
|
+
unless vars[:record][:backtrace].empty?
|
38
|
+
|
39
|
+
div.toggle_backtrace! {
|
40
|
+
div {
|
41
|
+
a.button.show_backtrace!(:href=>"#show") { "Show Backtrace" }
|
42
|
+
}
|
43
|
+
div.omega {
|
44
|
+
a.button.hide_backtrace!(:href=>"#hide") { "Hide Backtrace" }
|
45
|
+
}
|
43
46
|
}
|
44
|
-
}
|
45
47
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
48
|
+
|
49
|
+
|
50
|
+
div.backtrace! {
|
51
|
+
h3 "Backtrace:"
|
52
|
+
div.body {
|
53
|
+
vars[:record][:backtrace].each { |file, lines|
|
54
|
+
div.file file.to_s
|
55
|
+
div.lines {
|
56
|
+
lines.each { |l|
|
57
|
+
div.line {
|
58
|
+
span.num("#{l.first}:")
|
59
|
+
span.code l[1].to_s
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
end
|
50
67
|
|
51
68
|
|
52
69
|
}
|
data/spec/Dex_App.rb
CHANGED
@@ -76,10 +76,22 @@ describe "get /:id" do
|
|
76
76
|
|
77
77
|
behaves_like 'Test DB'
|
78
78
|
|
79
|
-
it "
|
80
|
-
|
81
|
-
|
82
|
-
|
79
|
+
it "renders record" do
|
80
|
+
id = Dex.insert(except "rand err")
|
81
|
+
get "/#{id}"
|
82
|
+
renders 200, %r"rand err"
|
83
|
+
end
|
84
|
+
|
85
|
+
it "renders non-standard backtrace: <<< Rack App" do
|
86
|
+
id = Dex.insert(except("rand"), :backtrace=>"<<< Rack App")
|
87
|
+
get "/#{id}"
|
88
|
+
renders 200, %r"<<< Rack App"
|
89
|
+
end
|
90
|
+
|
91
|
+
it "renders non-standard backtrace: file:13:code:1:2:3:" do
|
92
|
+
id = Dex.insert(except("rand"), :backtrace=>"file:13:code:1:2:3:")
|
93
|
+
get "/#{id}"
|
94
|
+
renders 200, %r">code:1:2:3"
|
83
95
|
end
|
84
96
|
|
85
97
|
end # === get /:id
|
data/spec/lib/main.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Dex_Rack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bacon
|
@@ -44,7 +44,7 @@ dependencies:
|
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
47
|
+
name: pry
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
@@ -60,7 +60,7 @@ dependencies:
|
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
63
|
+
name: rack-test
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
@@ -76,7 +76,23 @@ dependencies:
|
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
79
|
+
name: Bacon_Colored
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: Bacon_Rack
|
80
96
|
requirement: !ruby/object:Gem::Requirement
|
81
97
|
none: false
|
82
98
|
requirements:
|
@@ -203,8 +219,24 @@ dependencies:
|
|
203
219
|
- - ! '>='
|
204
220
|
- !ruby/object:Gem::Version
|
205
221
|
version: '0'
|
206
|
-
|
207
|
-
|
222
|
+
- !ruby/object:Gem::Dependency
|
223
|
+
name: Backtrace_Array
|
224
|
+
requirement: !ruby/object:Gem::Requirement
|
225
|
+
none: false
|
226
|
+
requirements:
|
227
|
+
- - ! '>='
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :runtime
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
none: false
|
234
|
+
requirements:
|
235
|
+
- - ! '>='
|
236
|
+
- !ruby/object:Gem::Version
|
237
|
+
version: '0'
|
238
|
+
description: ! "\n It is a web-frontend for Dex. \n Update and view exceptions
|
239
|
+
logged with the Dex gem.\n "
|
208
240
|
email:
|
209
241
|
- i-hate-spam-45671204@mailinator.com
|
210
242
|
executables: []
|