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 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: []