Cache frontmatter repeated calling of recursively_enhance

This commit is contained in:
Thomas Reynolds 2013-05-23 13:31:38 -07:00
parent dbbf84016f
commit 424fee0722
2 changed files with 7 additions and 4 deletions

View file

@ -181,7 +181,7 @@ module Middleman::CoreExtensions
module ResourceInstanceMethods module ResourceInstanceMethods
def ignored? def ignored?
if !proxy? && data["ignored"] == true if !proxy? && raw_data[:ignored] == true
true true
else else
super super
@ -199,13 +199,16 @@ module Middleman::CoreExtensions
# This page's frontmatter # This page's frontmatter
# @return [Hash] # @return [Hash]
def data def data
@enhanced_data ||= {}
@enhanced_data[raw_data] ||= begin
::Middleman::Util.recursively_enhance(raw_data).freeze ::Middleman::Util.recursively_enhance(raw_data).freeze
end end
end
# Override Resource#content_type to take into account frontmatter # Override Resource#content_type to take into account frontmatter
def content_type def content_type
# Allow setting content type in frontmatter too # Allow setting content type in frontmatter too
fm_type = data[:content_type] fm_type = raw_data[:content_type]
return fm_type if fm_type return fm_type if fm_type
super super

View file

@ -13,7 +13,7 @@ class Middleman::Extensions::DirectoryIndexes < ::Middleman::Extension
File.extname(index_file) != resource.ext File.extname(index_file) != resource.ext
# Check if frontmatter turns directory_index off # Check if frontmatter turns directory_index off
next if resource.data[:directory_index] == false next if resource.raw_data[:directory_index] == false
# Check if file metadata (options set by "page" in config.rb) turns directory_index off # Check if file metadata (options set by "page" in config.rb) turns directory_index off
next if resource.metadata[:options][:directory_index] == false next if resource.metadata[:options][:directory_index] == false