Dex_Rack 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
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] = backtrace_to_html(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
@@ -1,5 +1,5 @@
1
1
  require "sinatra/base"
2
2
 
3
3
  class Dex_Rack < Sinatra::Base
4
- VERSION = "0.1.8"
4
+ VERSION = "0.1.9"
5
5
  end
@@ -34,19 +34,36 @@ div.content! {
34
34
  }
35
35
  end
36
36
 
37
- div.toggle_backtrace! {
38
- div {
39
- a.button.show_backtrace!(:href=>"#show") { "Show Backtrace" }
40
- }
41
- div.omega {
42
- a.button.hide_backtrace!(:href=>"#hide") { "Hide Backtrace" }
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
- h3 "Backtrace:"
47
- div.backtrace! {
48
- vars[:record][:backtrace]
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 "displays record" do
80
- id = Dex.insert(except "rand err")
81
- get "/#{id}"
82
- should_render "rand err"
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"&lt;&lt;&lt; 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
@@ -16,6 +16,7 @@ $LOAD_PATH.unshift( Gem_Dir + "/lib" )
16
16
  Bacon.summary_on_exit
17
17
 
18
18
  require 'Bacon_Colored'
19
+ require 'Bacon_Rack'
19
20
  require 'pry'
20
21
  require 'rack/test'
21
22
  require 'Dex_Rack'
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.8
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-09 00:00:00.000000000 Z
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: Bacon_Colored
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: pry
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: rack-test
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
- description: ! "\nIt is a web-frontend for Dex. \nUpdate and view exceptions logged
207
- with the Dex gem.\n "
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: []