diff options
author | Michael Koziarski <michael@koziarski.com> | 2008-01-27 20:48:13 +0000 |
---|---|---|
committer | Michael Koziarski <michael@koziarski.com> | 2008-01-27 20:48:13 +0000 |
commit | aecb7fbefcb1471080c3ad33a4a2e8601fabb503 (patch) | |
tree | 599a594a04797b404aabfaa5ff37dc25dda2fca1 /actionpack | |
parent | c155fe9a3910fe3ab2e9cabe0ceb1c44fab31d72 (diff) | |
download | rails-aecb7fbefcb1471080c3ad33a4a2e8601fabb503.tar.gz rails-aecb7fbefcb1471080c3ad33a4a2e8601fabb503.tar.bz2 rails-aecb7fbefcb1471080c3ad33a4a2e8601fabb503.zip |
Correct line numbers from template errors. Closes #10937 [Aleksey Kondratenko]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8744 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_view/template_handlers/compilable.rb | 2 | ||||
-rw-r--r-- | actionpack/test/controller/render_test.rb | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/actionpack/lib/action_view/template_handlers/compilable.rb b/actionpack/lib/action_view/template_handlers/compilable.rb index 2446436530..e4a36b8d15 100644 --- a/actionpack/lib/action_view/template_handlers/compilable.rb +++ b/actionpack/lib/action_view/template_handlers/compilable.rb @@ -25,7 +25,7 @@ module ActionView begin file_name = 'compiled-template' if file_name.blank? - ActionView::Base::CompiledTemplates.module_eval(render_source, file_name, line_offset) + ActionView::Base::CompiledTemplates.module_eval(render_source, file_name, -line_offset) rescue Exception => e # errors from template code if @view.logger @view.logger.debug "ERROR: compiling #{render_symbol} RAISED #{e}" diff --git a/actionpack/test/controller/render_test.rb b/actionpack/test/controller/render_test.rb index c258ae216b..4768dffba2 100644 --- a/actionpack/test/controller/render_test.rb +++ b/actionpack/test/controller/render_test.rb @@ -86,6 +86,15 @@ class TestController < ActionController::Base render :xml => "<blah/>", :content_type => "application/atomsvc+xml" end + def render_line_offset + begin + render :inline => '<% raise %>', :locals => {:foo => 'bar'} + rescue => exc + end + line = exc.backtrace.first + render :text => line + end + def heading head :ok end @@ -225,6 +234,13 @@ class RenderTest < Test::Unit::TestCase assert_template "test/hello_world" end + def test_line_offset + get :render_line_offset + line = @response.body + assert(line =~ %r{:(\d+):}) + assert_equal "1", $1 + end + def test_render_with_forward_slash get :render_hello_world_with_forward_slash assert_template "test/hello_world" |