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 commit46b8bceedd
, reversing changes made to2f58795e78
.
This commit is contained in:
parent
fb883318c8
commit
666d3fd0c1
3 changed files with 4 additions and 76 deletions
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
Loading…
Reference in a new issue