mirror of
https://gitea.invidious.io/iv-org/shard-kemal.git
synced 2024-08-15 00:53:36 +00:00
fix content_for failing to capture the correct block input (#639)
This commit is contained in:
parent
d53d253620
commit
317d086b4c
5 changed files with 20 additions and 9 deletions
|
@ -1,5 +1,5 @@
|
|||
Hello <%= name %>
|
||||
|
||||
<% content_for "custom" do %>
|
||||
<h1>Hello from otherside</h1>
|
||||
<% content_for "meta" do %>
|
||||
<title>Kemal Spec</title>
|
||||
<% end %>
|
|
@ -1,6 +1,8 @@
|
|||
<html>
|
||||
<head>
|
||||
<%= yield_content "meta" %>
|
||||
</head>
|
||||
<body>
|
||||
<%= content %>
|
||||
<%= yield_content "custom" %>
|
||||
</body>
|
||||
</html>
|
|
@ -1,8 +1,10 @@
|
|||
<html>
|
||||
<head>
|
||||
<%= yield_content "meta" %>
|
||||
</head>
|
||||
<body>
|
||||
<%= content %>
|
||||
<%= yield_content "custom" %>
|
||||
<%= var1 %>
|
||||
<%= var2 %>
|
||||
<%= var1 %>
|
||||
<%= var2 %>
|
||||
</body>
|
||||
</html>
|
|
@ -56,8 +56,8 @@ describe "Views" do
|
|||
end
|
||||
request = HTTP::Request.new("GET", "/view/world")
|
||||
client_response = call_request_on_app(request)
|
||||
client_response.body.should contain("Hello world")
|
||||
client_response.body.should contain("<h1>Hello from otherside</h1>")
|
||||
client_response.body.scan("Hello world").size.should eq(1)
|
||||
client_response.body.should contain("<title>Kemal Spec</title>")
|
||||
end
|
||||
|
||||
it "does not render content_for that was not yielded" do
|
||||
|
|
|
@ -43,7 +43,14 @@ macro yield_content(key)
|
|||
if CONTENT_FOR_BLOCKS.has_key?({{key}})
|
||||
__caller_filename__ = CONTENT_FOR_BLOCKS[{{key}}][0]
|
||||
%proc = CONTENT_FOR_BLOCKS[{{key}}][1]
|
||||
%proc.call if __content_filename__ == __caller_filename__
|
||||
|
||||
if __content_filename__ == __caller_filename__
|
||||
%old_content_io, content_io = content_io, IO::Memory.new
|
||||
%proc.call
|
||||
%result = content_io.to_s
|
||||
content_io = %old_content_io
|
||||
%result
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue