rails-footnotes 3.7.2 → 3.7.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/.rspec.example +1 -0
- data/.watchr.example +13 -0
- data/Gemfile +1 -1
- data/README.rdoc +9 -6
- data/Rakefile +5 -6
- data/lib/rails-footnotes.rb +4 -3
- data/lib/rails-footnotes/{notes/abstract_note.rb → abstract_note.rb} +4 -4
- data/lib/rails-footnotes/footnotes.rb +0 -6
- data/lib/rails-footnotes/notes/all.rb +1 -0
- data/lib/rails-footnotes/notes/assigns_note.rb +3 -5
- data/lib/rails-footnotes/notes/controller_note.rb +11 -28
- data/lib/rails-footnotes/notes/cookies_note.rb +1 -3
- data/lib/rails-footnotes/notes/env_note.rb +0 -2
- data/lib/rails-footnotes/notes/files_note.rb +1 -3
- data/lib/rails-footnotes/notes/filters_note.rb +4 -6
- data/lib/rails-footnotes/notes/general_note.rb +1 -3
- data/lib/rails-footnotes/notes/javascripts_note.rb +1 -3
- data/lib/rails-footnotes/notes/layout_note.rb +0 -2
- data/lib/rails-footnotes/notes/log_note.rb +4 -6
- data/lib/rails-footnotes/notes/params_note.rb +0 -2
- data/lib/rails-footnotes/notes/partials_note.rb +0 -2
- data/lib/rails-footnotes/notes/queries_note.rb +0 -2
- data/lib/rails-footnotes/notes/routes_note.rb +1 -3
- data/lib/rails-footnotes/notes/session_note.rb +0 -2
- data/lib/rails-footnotes/notes/stylesheets_note.rb +1 -3
- data/lib/rails-footnotes/notes/view_note.rb +0 -2
- data/lib/rails-footnotes/version.rb +1 -1
- data/rails-footnotes.gemspec +2 -2
- data/spec/abstract_note_spec.rb +80 -0
- data/spec/footnotes_spec.rb +215 -0
- data/{test/test_helper.rb → spec/spec_helper.rb} +7 -3
- metadata +17 -17
- data/lib/rails-footnotes/backtracer.rb +0 -36
- data/lib/rails-footnotes/notes/rpm_note.rb +0 -30
- data/test/footnotes_test.rb +0 -222
- data/test/notes/abstract_note_test.rb +0 -107
data/rails-footnotes.gemspec
CHANGED
@@ -16,9 +16,9 @@ Gem::Specification.new do |s|
|
|
16
16
|
|
17
17
|
s.add_dependency "rails", ">= 3.0.0"
|
18
18
|
|
19
|
-
s.add_development_dependency "autotest"
|
20
|
-
s.add_development_dependency "mocha"
|
21
19
|
s.add_development_dependency "rails", ">= 3.0.0"
|
20
|
+
s.add_development_dependency "rspec"
|
21
|
+
s.add_development_dependency "watchr"
|
22
22
|
|
23
23
|
s.files = `git ls-files`.split("\n")
|
24
24
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Footnotes::Notes::AbstractNote do
|
4
|
+
before do
|
5
|
+
@note = Footnotes::Notes::AbstractNote.new
|
6
|
+
Footnotes::Filter.notes = [:abstract]
|
7
|
+
end
|
8
|
+
|
9
|
+
it {described_class.should respond_to :start!}
|
10
|
+
it {described_class.should respond_to :close!}
|
11
|
+
it {described_class.should respond_to :title}
|
12
|
+
|
13
|
+
it {should respond_to :to_sym}
|
14
|
+
its(:to_sym) {should eql :abstract}
|
15
|
+
|
16
|
+
it { described_class.should be_included }
|
17
|
+
specify do
|
18
|
+
Footnotes::Filter.notes = []
|
19
|
+
described_class.should_not be_included
|
20
|
+
end
|
21
|
+
|
22
|
+
it { should respond_to :row }
|
23
|
+
it { should respond_to :legend }
|
24
|
+
it { should respond_to :link }
|
25
|
+
it { should respond_to :onclick }
|
26
|
+
it { should respond_to :stylesheet }
|
27
|
+
it { should respond_to :javascript }
|
28
|
+
|
29
|
+
it { should respond_to :valid? }
|
30
|
+
it { should be_valid }
|
31
|
+
|
32
|
+
it { should respond_to :has_fieldset? }
|
33
|
+
it { should_not have_fieldset }
|
34
|
+
|
35
|
+
specify { Footnotes::Filter.prefix = ''; should_not be_prefix }
|
36
|
+
specify do
|
37
|
+
Footnotes::Filter.prefix = 'txmt://open?url=file://%s&line=%d&column=%d'
|
38
|
+
should be_prefix
|
39
|
+
end
|
40
|
+
|
41
|
+
#TODO should be moved to builder
|
42
|
+
#helpers
|
43
|
+
specify { subject.escape('<').should eql '<' }
|
44
|
+
specify { subject.escape('&').should eql '&' }
|
45
|
+
specify { subject.escape('>').should eql '>' }
|
46
|
+
|
47
|
+
specify { subject.mount_table([]).should be_blank }
|
48
|
+
specify { subject.mount_table([['h1', 'h2', 'h3']], :class => 'table').should be_blank }
|
49
|
+
|
50
|
+
specify {
|
51
|
+
tab = <<-TABLE
|
52
|
+
<table class="table" >
|
53
|
+
<thead><tr><th>H1</th></tr></thead>
|
54
|
+
<tbody><tr><td>r1c1</td></tr></tbody>
|
55
|
+
</table>
|
56
|
+
TABLE
|
57
|
+
|
58
|
+
subject.mount_table([['h1'],['r1c1']], :class => 'table').should eql tab
|
59
|
+
}
|
60
|
+
|
61
|
+
specify {
|
62
|
+
tab = <<-TABLE
|
63
|
+
<table >
|
64
|
+
<thead><tr><th>H1</th><th>H2</th><th>H3</th></tr></thead>
|
65
|
+
<tbody><tr><td>r1c1</td><td>r1c2</td><td>r1c3</td></tr></tbody>
|
66
|
+
</table>
|
67
|
+
TABLE
|
68
|
+
subject.mount_table([['h1', 'h2', 'h3'],['r1c1', 'r1c2', 'r1c3']]).should eql tab
|
69
|
+
}
|
70
|
+
|
71
|
+
specify {
|
72
|
+
tab = <<-TABLE
|
73
|
+
<table >
|
74
|
+
<thead><tr><th>H1</th><th>H2</th><th>H3</th></tr></thead>
|
75
|
+
<tbody><tr><td>r1c1</td><td>r1c2</td><td>r1c3</td></tr><tr><td>r2c1</td><td>r2c2</td><td>r2c3</td></tr></tbody>
|
76
|
+
</table>
|
77
|
+
TABLE
|
78
|
+
subject.mount_table([['h1', 'h2', 'h3'], ['r1c1', 'r1c2', 'r1c3'], ['r2c1', 'r2c2', 'r2c3']])
|
79
|
+
}
|
80
|
+
end
|
@@ -0,0 +1,215 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require 'action_controller'
|
3
|
+
require 'action_controller/test_case'
|
4
|
+
|
5
|
+
class FootnotesController < ActionController::Base
|
6
|
+
attr_accessor :template, :performed_render
|
7
|
+
end
|
8
|
+
|
9
|
+
module Footnotes::Notes
|
10
|
+
class TestNote < AbstractNote
|
11
|
+
def self.to_sym; :test; end
|
12
|
+
def valid?; true; end
|
13
|
+
end
|
14
|
+
|
15
|
+
class NoteXNote < TestNote; end
|
16
|
+
class NoteYNote < TestNote; end
|
17
|
+
class NoteZNote < TestNote; end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "Footnotes" do
|
21
|
+
before do
|
22
|
+
@controller = FootnotesController.new
|
23
|
+
@controller.template = Object.new
|
24
|
+
@controller.request = ActionController::TestRequest.new
|
25
|
+
@controller.response = ActionController::TestResponse.new
|
26
|
+
@controller.response_body = $html.dup
|
27
|
+
@controller.params = {}
|
28
|
+
|
29
|
+
Footnotes::Filter.notes = [ :test ]
|
30
|
+
Footnotes::Filter.multiple_notes = false
|
31
|
+
@footnotes = Footnotes::Filter.new(@controller)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "footnotes_controller" do
|
35
|
+
index = @controller.response.body.index(/This is the HTML page/)
|
36
|
+
index.should eql 334
|
37
|
+
end
|
38
|
+
|
39
|
+
it "foonotes_included" do
|
40
|
+
footnotes_perform!
|
41
|
+
@controller.response_body.should_not eql $html
|
42
|
+
end
|
43
|
+
|
44
|
+
specify "footnotes_not_included_when_request_is_xhr" do
|
45
|
+
@controller.request.env['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest'
|
46
|
+
@controller.request.env['HTTP_ACCEPT'] = 'text/javascript, text/html, application/xml, text/xml, */*'
|
47
|
+
footnotes_perform!
|
48
|
+
@controller.response.body.should eql $html
|
49
|
+
end
|
50
|
+
|
51
|
+
specify "footnotes_not_included_when_content_type_is_javascript" do
|
52
|
+
@controller.response.headers['Content-Type'] = 'text/javascript'
|
53
|
+
footnotes_perform!
|
54
|
+
@controller.response.body.should eql $html
|
55
|
+
end
|
56
|
+
|
57
|
+
specify "footnotes_included_when_content_type_is_html" do
|
58
|
+
@controller.response.headers['Content-Type'] = 'text/html'
|
59
|
+
footnotes_perform!
|
60
|
+
@controller.response.body.should_not eql $html
|
61
|
+
end
|
62
|
+
|
63
|
+
specify "footnotes_included_when_content_type_is_nil" do
|
64
|
+
footnotes_perform!
|
65
|
+
@controller.response.body.should_not eql $html
|
66
|
+
end
|
67
|
+
|
68
|
+
specify "not_included_when_body_is_not_a_string" do
|
69
|
+
@controller.response.body = Proc.new { Time.now }
|
70
|
+
expect { footnotes_perform! }.should_not raise_exception
|
71
|
+
end
|
72
|
+
|
73
|
+
specify "notes_are_initialized" do
|
74
|
+
footnotes_perform!
|
75
|
+
test_note = @footnotes.instance_variable_get('@notes').first
|
76
|
+
test_note.class.name.should eql 'Footnotes::Notes::TestNote'
|
77
|
+
test_note.to_sym.should eql :test
|
78
|
+
end
|
79
|
+
|
80
|
+
specify "notes_links" do
|
81
|
+
note = Footnotes::Notes::TestNote.new
|
82
|
+
note.should_receive(:row).twice
|
83
|
+
@footnotes.instance_variable_set(:@notes, [note])
|
84
|
+
footnotes_perform!
|
85
|
+
end
|
86
|
+
|
87
|
+
specify "notes_fieldset" do
|
88
|
+
note = Footnotes::Notes::TestNote.new
|
89
|
+
note.should_receive(:has_fieldset?).exactly(3).times
|
90
|
+
@footnotes.instance_variable_set(:@notes, [note])
|
91
|
+
footnotes_perform!
|
92
|
+
end
|
93
|
+
|
94
|
+
specify "multiple_notes" do
|
95
|
+
Footnotes::Filter.multiple_notes = true
|
96
|
+
note = Footnotes::Notes::TestNote.new
|
97
|
+
note.should_receive(:has_fieldset?).twice
|
98
|
+
@footnotes.instance_variable_set(:@notes, [note])
|
99
|
+
footnotes_perform!
|
100
|
+
end
|
101
|
+
|
102
|
+
specify "notes_are_reset" do
|
103
|
+
note = Footnotes::Notes::TestNote.new
|
104
|
+
note.class.should_receive(:close!)
|
105
|
+
@footnotes.instance_variable_set(:@notes, [note])
|
106
|
+
@footnotes.send(:close!, @controller)
|
107
|
+
end
|
108
|
+
|
109
|
+
specify "links_helper" do
|
110
|
+
note = Footnotes::Notes::TestNote.new
|
111
|
+
@footnotes.send(:link_helper, note).should eql '<a href="#" onclick="">Test</a>'
|
112
|
+
|
113
|
+
note.should_receive(:link).once.and_return(:link)
|
114
|
+
@footnotes.send(:link_helper, note).should eql '<a href="link" onclick="">Test</a>'
|
115
|
+
end
|
116
|
+
|
117
|
+
specify "links_helper_has_fieldset?" do
|
118
|
+
note = Footnotes::Notes::TestNote.new
|
119
|
+
note.should_receive(:has_fieldset?).once.and_return(true)
|
120
|
+
@footnotes.send(:link_helper, note).should eql '<a href="#" onclick="Footnotes.hideAllAndToggle(\'test_debug_info\');return false;">Test</a>'
|
121
|
+
end
|
122
|
+
|
123
|
+
specify "links_helper_onclick" do
|
124
|
+
note = Footnotes::Notes::TestNote.new
|
125
|
+
note.should_receive(:onclick).twice.and_return(:onclick)
|
126
|
+
@footnotes.send(:link_helper, note).should eql '<a href="#" onclick="onclick">Test</a>'
|
127
|
+
|
128
|
+
note.should_receive(:has_fieldset?).once.and_return(true)
|
129
|
+
@footnotes.send(:link_helper, note).should eql '<a href="#" onclick="onclick">Test</a>'
|
130
|
+
end
|
131
|
+
|
132
|
+
specify "insert_style" do
|
133
|
+
@controller.response.body = "<head></head><split><body></body>"
|
134
|
+
@footnotes = Footnotes::Filter.new(@controller)
|
135
|
+
footnotes_perform!
|
136
|
+
@controller.response.body.split('<split>').first.include?('<!-- Footnotes Style -->').should be
|
137
|
+
end
|
138
|
+
|
139
|
+
specify "insert_footnotes_inside_body" do
|
140
|
+
@controller.response.body = "<head></head><split><body></body>"
|
141
|
+
@footnotes = Footnotes::Filter.new(@controller)
|
142
|
+
footnotes_perform!
|
143
|
+
@controller.response.body.split('<split>').last.include?('<!-- End Footnotes -->').should be
|
144
|
+
end
|
145
|
+
|
146
|
+
specify "insert_footnotes_inside_holder" do
|
147
|
+
@controller.response.body = "<head></head><split><div id='footnotes_holder'></div>"
|
148
|
+
@footnotes = Footnotes::Filter.new(@controller)
|
149
|
+
footnotes_perform!
|
150
|
+
@controller.response.body.split('<split>').last.include?('<!-- End Footnotes -->').should be
|
151
|
+
end
|
152
|
+
|
153
|
+
specify "insert_text" do
|
154
|
+
@footnotes.send(:insert_text, :after, /<head>/, "Graffiti")
|
155
|
+
after = " <head>Graffiti"
|
156
|
+
@controller.response.body.split("\n")[2].should eql after
|
157
|
+
|
158
|
+
@footnotes.send(:insert_text, :before, /<\/body>/, "Notes")
|
159
|
+
after = " Notes</body>"
|
160
|
+
@controller.response.body.split("\n")[12].should eql after
|
161
|
+
end
|
162
|
+
|
163
|
+
describe 'Hooks' do
|
164
|
+
before {Footnotes::Filter.notes = [:note_x, :note_y, :note_z]}
|
165
|
+
context 'before' do
|
166
|
+
specify do
|
167
|
+
Footnotes.setup {|config| config.before {|controller, filter| filter.notes -= [:note_y] }}
|
168
|
+
Footnotes::Filter.start!(@controller)
|
169
|
+
Footnotes::Filter.notes.should eql [:note_x, :note_z]
|
170
|
+
end
|
171
|
+
end
|
172
|
+
context "after" do
|
173
|
+
specify do
|
174
|
+
Footnotes.setup {|config| config.after {|controller, filter| filter.notes -= [:note_y] }}
|
175
|
+
Footnotes::Filter.start!(@controller)
|
176
|
+
Footnotes::Filter.notes.should eql [:note_x, :note_z]
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
protected
|
182
|
+
def footnotes_perform!
|
183
|
+
template_expects('html')
|
184
|
+
@controller.performed_render = true
|
185
|
+
|
186
|
+
Footnotes::Filter.start!(@controller)
|
187
|
+
@footnotes.add_footnotes!
|
188
|
+
end
|
189
|
+
|
190
|
+
def template_expects(format)
|
191
|
+
if @controller.template.respond_to?(:template_format)
|
192
|
+
@controller.template.stub(:template_format).and_return(format)
|
193
|
+
else
|
194
|
+
@controller.template.stub(:format).and_return(format)
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
$html = <<HTML
|
199
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
200
|
+
<html>
|
201
|
+
<head>
|
202
|
+
<title>HTML to XHTML Example: HTML page</title>
|
203
|
+
<link rel="Stylesheet" href="htmltohxhtml.css" type="text/css" media="screen">
|
204
|
+
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
205
|
+
</head>
|
206
|
+
<body>
|
207
|
+
<p>This is the HTML page. It works and is encoded just like any HTML page you
|
208
|
+
have previously done. View <a href="htmltoxhtml2.htm">the XHTML version</a> of
|
209
|
+
this page to view the difference between HTML and XHTML.</p>
|
210
|
+
<p>You will be glad to know that no changes need to be made to any of your CSS files.</p>
|
211
|
+
</body>
|
212
|
+
</html>
|
213
|
+
HTML
|
214
|
+
|
215
|
+
end
|
@@ -1,11 +1,15 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
SimpleCov.start
|
3
|
+
|
1
4
|
require 'rubygems'
|
2
|
-
require 'test/unit'
|
3
|
-
require 'mocha'
|
4
5
|
|
5
6
|
ENV['RAILS_ENV'] = 'test'
|
6
7
|
|
7
8
|
require 'active_support'
|
8
9
|
require 'active_support/all' unless Class.respond_to?(:cattr_accessor)
|
9
10
|
require 'rails-footnotes/footnotes'
|
10
|
-
require 'rails-footnotes/
|
11
|
+
require 'rails-footnotes/abstract_note'
|
11
12
|
require "rails-footnotes"
|
13
|
+
|
14
|
+
RSpec.configure do |config|
|
15
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: rails-footnotes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 3.7.
|
5
|
+
version: 3.7.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Keenan Brock
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-05-
|
13
|
+
date: 2011-05-18 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -24,18 +24,18 @@ dependencies:
|
|
24
24
|
type: :runtime
|
25
25
|
version_requirements: *id001
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
|
-
name:
|
27
|
+
name: rails
|
28
28
|
prerelease: false
|
29
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 3.0.0
|
35
35
|
type: :development
|
36
36
|
version_requirements: *id002
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
38
|
+
name: rspec
|
39
39
|
prerelease: false
|
40
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
@@ -46,14 +46,14 @@ dependencies:
|
|
46
46
|
type: :development
|
47
47
|
version_requirements: *id003
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
49
|
+
name: watchr
|
50
50
|
prerelease: false
|
51
51
|
requirement: &id004 !ruby/object:Gem::Requirement
|
52
52
|
none: false
|
53
53
|
requirements:
|
54
54
|
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
56
|
+
version: "0"
|
57
57
|
type: :development
|
58
58
|
version_requirements: *id004
|
59
59
|
description: Every Rails page has footnotes that gives information about your application and links back to your editor.
|
@@ -67,6 +67,8 @@ extra_rdoc_files: []
|
|
67
67
|
|
68
68
|
files:
|
69
69
|
- .gitignore
|
70
|
+
- .rspec.example
|
71
|
+
- .watchr.example
|
70
72
|
- CHANGELOG
|
71
73
|
- Gemfile
|
72
74
|
- Gemfile.lock
|
@@ -74,9 +76,9 @@ files:
|
|
74
76
|
- README.rdoc
|
75
77
|
- Rakefile
|
76
78
|
- lib/rails-footnotes.rb
|
77
|
-
- lib/rails-footnotes/
|
79
|
+
- lib/rails-footnotes/abstract_note.rb
|
78
80
|
- lib/rails-footnotes/footnotes.rb
|
79
|
-
- lib/rails-footnotes/notes/
|
81
|
+
- lib/rails-footnotes/notes/all.rb
|
80
82
|
- lib/rails-footnotes/notes/assigns_note.rb
|
81
83
|
- lib/rails-footnotes/notes/controller_note.rb
|
82
84
|
- lib/rails-footnotes/notes/cookies_note.rb
|
@@ -91,15 +93,14 @@ files:
|
|
91
93
|
- lib/rails-footnotes/notes/partials_note.rb
|
92
94
|
- lib/rails-footnotes/notes/queries_note.rb
|
93
95
|
- lib/rails-footnotes/notes/routes_note.rb
|
94
|
-
- lib/rails-footnotes/notes/rpm_note.rb
|
95
96
|
- lib/rails-footnotes/notes/session_note.rb
|
96
97
|
- lib/rails-footnotes/notes/stylesheets_note.rb
|
97
98
|
- lib/rails-footnotes/notes/view_note.rb
|
98
99
|
- lib/rails-footnotes/version.rb
|
99
100
|
- rails-footnotes.gemspec
|
100
|
-
-
|
101
|
-
-
|
102
|
-
-
|
101
|
+
- spec/abstract_note_spec.rb
|
102
|
+
- spec/footnotes_spec.rb
|
103
|
+
- spec/spec_helper.rb
|
103
104
|
homepage: http://github.com/josevalim/rails-footnotes
|
104
105
|
licenses: []
|
105
106
|
|
@@ -128,7 +129,6 @@ signing_key:
|
|
128
129
|
specification_version: 3
|
129
130
|
summary: Every Rails page has footnotes that gives information about your application and links back to your editor.
|
130
131
|
test_files:
|
131
|
-
-
|
132
|
-
-
|
133
|
-
-
|
134
|
-
has_rdoc:
|
132
|
+
- spec/abstract_note_spec.rb
|
133
|
+
- spec/footnotes_spec.rb
|
134
|
+
- spec/spec_helper.rb
|
@@ -1,36 +0,0 @@
|
|
1
|
-
module Footnotes
|
2
|
-
module Extensions
|
3
|
-
module Exception
|
4
|
-
def self.included(base)
|
5
|
-
base.class_eval do
|
6
|
-
alias_method_chain :clean_backtrace, :links
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
def add_links_to_backtrace(lines)
|
11
|
-
lines.collect do |line|
|
12
|
-
expanded = line.gsub('#{RAILS_ROOT}', Rails.root)
|
13
|
-
if match = expanded.match(/^(.+):(\d+):in/) || match = expanded.match(/^(.+):(\d+)\s*$/)
|
14
|
-
file = File.expand_path(match[1])
|
15
|
-
line_number = match[2]
|
16
|
-
html = %[<a href="#{Footnotes::Filter.prefix(file, line_number, 1)}">#{line}</a>]
|
17
|
-
else
|
18
|
-
line
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def clean_backtrace_with_links
|
24
|
-
unless ::Footnotes::Filter.prefix.blank?
|
25
|
-
add_links_to_backtrace(clean_backtrace_without_links)
|
26
|
-
else
|
27
|
-
clean_backtrace_without_links
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
if Rails.version < '3.0'
|
35
|
-
Exception.send :include, Footnotes::Extensions::Exception
|
36
|
-
end
|