Make frontmatter always return a hash, and freeze it. This reduces the need for nil checks and prevents users from accidentally trying to modify frontmatter data which may be cached elsewhere.

This commit is contained in:
Ben Hollis 2012-03-25 12:43:11 -07:00
parent c69fac9028
commit 92713dfe92
2 changed files with 5 additions and 7 deletions

View file

@ -139,7 +139,7 @@ module Middleman::CoreExtensions::FrontMatter
if result
data, content = result
data = ::Middleman.recursively_enhance(data)
data = ::Middleman.recursively_enhance(data).freeze
file = file.sub(@app.source_dir, "")
@local_data[file] = [data, content]
path = File.join(@app.source_dir, file)
@ -164,12 +164,12 @@ module Middleman::CoreExtensions::FrontMatter
# Get the frontmatter for a given path
# @param [String] path
# @return [Hash, nil]
# @return [Hash]
def data(path)
if @local_data.has_key?(path.to_s)
@local_data[path.to_s]
else
nil
{}.freeze
end
end