1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Revert "Merge pull request #7033 from kron4eg/master". Not a a fan at all of what this makes ERB files look like.

This reverts commit 46b8bceedd, reversing
changes made to 2f58795e78.
This commit is contained in:
David Heinemeier Hansson 2012-08-07 11:44:24 -05:00
parent fb883318c8
commit 666d3fd0c1
3 changed files with 4 additions and 76 deletions

View file

@ -1,17 +1,5 @@
## Rails 4.0.0 (unreleased) ## ## Rails 4.0.0 (unreleased) ##
* Restored support for the "%" ERb/Erubis _trim mode_. This can be activated with:
config.action_view.erb_trim_mode = "%" # or "%-" whitespace trim
With that mode active, you can use a single percent sign at the beginning of a line to engage Ruby mode (without inserting results). It allows for template code like this:
% if current_user.try(:admin?)
<%= render "edit_links" %>
% end
*James Edward Gray II*
* `javascript_include_tag :all` will now not include `application.js` if the file does not exists. *Prem Sichanugrist* * `javascript_include_tag :all` will now not include `application.js` if the file does not exists. *Prem Sichanugrist*
* Send an empty response body when call `head` with status between 100 and 199, 204, 205 or 304. * Send an empty response body when call `head` with status between 100 and 199, 204, 205 or 304.

View file

@ -37,10 +37,6 @@ module ActionView
end end
end end
class ErubisWithPercentLine < Erubis
include ::Erubis::PercentLineEnhancer
end
class ERB class ERB
# Specify trim mode for the ERB compiler. Defaults to '-'. # Specify trim mode for the ERB compiler. Defaults to '-'.
# See ERB documentation for suitable values. # See ERB documentation for suitable values.
@ -80,12 +76,10 @@ module ActionView
# Always make sure we return a String in the default_internal # Always make sure we return a String in the default_internal
erb.encode! erb.encode!
mode = self.class.erb_trim_mode.to_s self.class.erb_implementation.new(
implementation = self.class.erb_implementation erb,
if mode.include? "%" and implementation == Erubis :trim => (self.class.erb_trim_mode == "-")
implementation = ErubisWithPercentLine ).src
end
implementation.new(erb, :trim => mode.include?("-")).src
end end
private private

View file

@ -1,54 +0,0 @@
require "abstract_unit"
class HandlersTest < ActiveSupport::TestCase
HANDLER = ActionView::Template::Handlers::ERB
Template = Struct.new(:source)
extend ActiveSupport::Testing::Declarative
test "content is not trimmed without a trim mode" do
with_erb_trim_mode nil do
assert_equal(" \ntest", render(" <% 'IGNORED' %> \ntest"))
end
end
test "content around tags is trimmed if the trim mode includes a dash" do
with_erb_trim_mode '-' do
assert_equal("test", render(" <% 'IGNORED' %> \ntest"))
end
end
test "percent lines are normal content without a trim mode" do
with_erb_trim_mode nil do
assert_equal( "% if false\noops\n% end\n",
render("% if false\noops\n% end\n") )
end
end
test "percent lines count as ruby if trim mode includes a percent" do
with_erb_trim_mode "%" do
assert_equal("", render("% if false\noops\n% end\n"))
end
end
test "both trim modes can be used at the same time" do
with_erb_trim_mode "%-" do
assert_equal( "test", render( "% if false\noops\n% end\n" +
" <% 'IGNORED' %> \ntest" ) )
end
end
private
def with_erb_trim_mode(mode)
@old_erb_trim_mode = HANDLER.erb_trim_mode
HANDLER.erb_trim_mode = mode
yield
ensure
HANDLER.erb_trim_mode = @old_erb_trim_mode
end
def render(template)
eval("output_buffer = nil; " + HANDLER.call(Template.new(template)))
end
end