Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 8744

Show
Ignore:
Timestamp:
01/27/08 20:48:13 (9 months ago)
Author:
nzkoz
Message:

Correct line numbers from template errors. Closes #10937 [Aleksey Kondratenko]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/actionpack/lib/action_view/template_handlers/compilable.rb

    r8689 r8744  
    2626        begin 
    2727          file_name = 'compiled-template' if file_name.blank? 
    28           ActionView::Base::CompiledTemplates.module_eval(render_source, file_name, line_offset) 
     28          ActionView::Base::CompiledTemplates.module_eval(render_source, file_name, -line_offset) 
    2929        rescue Exception => e  # errors from template code 
    3030          if @view.logger 
  • trunk/actionpack/test/controller/render_test.rb

    r8683 r8744  
    8585  def render_xml_with_custom_content_type 
    8686    render :xml => "<blah/>", :content_type => "application/atomsvc+xml" 
     87  end 
     88 
     89  def render_line_offset 
     90    begin 
     91      render :inline => '<% raise %>', :locals => {:foo => 'bar'} 
     92    rescue => exc 
     93    end 
     94    line = exc.backtrace.first 
     95    render :text => line 
    8796  end 
    8897 
     
    226235  end 
    227236 
     237  def test_line_offset 
     238    get :render_line_offset 
     239    line = @response.body 
     240    assert(line =~ %r{:(\d+):}) 
     241    assert_equal "1", $1 
     242  end 
     243 
    228244  def test_render_with_forward_slash 
    229245    get :render_hello_world_with_forward_slash