From 833a229770431bdeed9166815997f17350c03d91 Mon Sep 17 00:00:00 2001 From: Thomas Reynolds Date: Thu, 1 Dec 2011 22:43:41 -0800 Subject: [PATCH] fix multi engine partials --- features/partials.feature | 2 +- .../different-engine-partial/source/layouts/layout.erb | 9 ++++++--- fixtures/different-engine-partial/source/shared/_erb.erb | 1 - .../different-engine-partial/source/shared/_header.erb | 1 + lib/middleman/core_extensions/rendering.rb | 6 ++++-- 5 files changed, 12 insertions(+), 7 deletions(-) delete mode 100644 fixtures/different-engine-partial/source/shared/_erb.erb create mode 100644 fixtures/different-engine-partial/source/shared/_header.erb diff --git a/features/partials.feature b/features/partials.feature index fad4ff0c..ddceef6b 100644 --- a/features/partials.feature +++ b/features/partials.feature @@ -37,5 +37,5 @@ Feature: Provide Sane Defaults for Partial Behavior Scenario: Partial and Layout use different engines Given the Server is running at "different-engine-partial" When I go to "/index.html" - Then I should see "ERb Main" + Then I should see "ERb Header" And I should see "Slim Footer" diff --git a/fixtures/different-engine-partial/source/layouts/layout.erb b/fixtures/different-engine-partial/source/layouts/layout.erb index 3065c6b2..b4c7f392 100644 --- a/fixtures/different-engine-partial/source/layouts/layout.erb +++ b/fixtures/different-engine-partial/source/layouts/layout.erb @@ -1,4 +1,7 @@ -<%= partial 'shared/erb' %> -<%= partial 'shared/footer' %> +<%= partial 'shared/header' %> -<% yield %> \ No newline at end of file +
+ <%= yield %> +
+ +<%= partial 'shared/footer' %> \ No newline at end of file diff --git a/fixtures/different-engine-partial/source/shared/_erb.erb b/fixtures/different-engine-partial/source/shared/_erb.erb deleted file mode 100644 index 8003e446..00000000 --- a/fixtures/different-engine-partial/source/shared/_erb.erb +++ /dev/null @@ -1 +0,0 @@ -ERb Main \ No newline at end of file diff --git a/fixtures/different-engine-partial/source/shared/_header.erb b/fixtures/different-engine-partial/source/shared/_header.erb new file mode 100644 index 00000000..57510a12 --- /dev/null +++ b/fixtures/different-engine-partial/source/shared/_header.erb @@ -0,0 +1 @@ +
ERb Header
\ No newline at end of file diff --git a/lib/middleman/core_extensions/rendering.rb b/lib/middleman/core_extensions/rendering.rb index 41ff1546..e5d587df 100644 --- a/lib/middleman/core_extensions/rendering.rb +++ b/lib/middleman/core_extensions/rendering.rb @@ -39,7 +39,6 @@ module Middleman::CoreExtensions::Rendering engine = extension[1..-1].to_sym @current_engine, engine_was = engine, @current_engine - @_out_buf, _buf_was = "", @_out_buf while ::Tilt[path] content = render_individual_file(path, locs, opts) @@ -56,7 +55,6 @@ module Middleman::CoreExtensions::Rendering content ensure @current_engine = engine_was - @_out_buf = _buf_was @content_blocks = nil end @@ -104,6 +102,8 @@ module Middleman::CoreExtensions::Rendering def render_individual_file(path, locs = {}, opts = {}, &block) path = path.to_s + @_out_buf, _buf_was = "", @_out_buf + body = cache.fetch(:raw_template, path) do File.read(path) end @@ -117,6 +117,8 @@ module Middleman::CoreExtensions::Rendering end template.render(self, locs, &block) + ensure + @_out_buf = _buf_was end # @private