Changeset 5928
- Timestamp:
- 01/14/07 14:44:03 (2 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/1-2-pre-release/actionpack/CHANGELOG
r5906 r5928 1 1 *SVN* 2 3 * Allow exempt_from_layout :rhtml. #6742, #7026 [dcmanges, Squeegy] 2 4 3 5 * Fix parsing of array[] CGI parameters so extra empty values aren't included. #6252 [Nicholas Seckar, aiwilliams, brentrowland] branches/1-2-pre-release/actionpack/lib/action_controller/base.rb
r5699 r5928 408 408 # Don't render layouts for templates with the given extensions. 409 409 def exempt_from_layout(*extensions) 410 regexps = extensions.collect do |extension| 411 extension.is_a?(Regexp) ? extension : /\.#{Regexp.escape(extension.to_s)}$/ 412 end 413 @@exempt_from_layout.merge regexps 410 @@exempt_from_layout.merge extensions.collect { |extension| 411 if extension.is_a?(Regexp) 412 extension 413 else 414 /\.#{Regexp.escape(extension.to_s)}$/ 415 end 416 } 414 417 end 415 418 end … … 1191 1194 1192 1195 def template_exempt_from_layout?(template_name = default_template_name) 1193 @@exempt_from_layout.any? { |ext| template_name =~ ext } or 1194 @template.pick_template_extension(template_name) == :rjs 1195 rescue 1196 false 1196 extension = @template.pick_template_extension(template_name) rescue nil 1197 name_with_extension = !template_name.include?('.') && extension ? "#{template_name}.#{extension}" : template_name 1198 extension == :rjs || @@exempt_from_layout.any? { |ext| name_with_extension =~ ext } 1197 1199 end 1198 1200 branches/1-2-pre-release/actionpack/test/controller/layout_test.rb
r5126 r5928 76 76 def setup 77 77 @controller = LayoutTest.new 78 @request = ActionController::TestRequest.new 79 @response = ActionController::TestResponse.new 78 80 end 79 81 … … 103 105 ActionController::Base.exempt_from_layout /\.rdoc/ 104 106 assert @controller.send(:template_exempt_from_layout?, 'test.rdoc') 107 end 108 109 def test_rhtml_exempt_from_layout_status_should_prevent_layout_render 110 ActionController::Base.exempt_from_layout :rhtml 111 assert @controller.send(:template_exempt_from_layout?, 'test.rhtml') 112 113 get :hello 114 assert_equal 'hello.rhtml', @response.body 115 ActionController::Base.exempt_from_layout.delete(/\.rhtml$/) 105 116 end 106 117 end