Added support for "extends" in layouts

This commit is contained in:
Andy Meneely
2014-07-29 16:18:01 -04:00
parent 75c01f7d9e
commit 373d841823
5 changed files with 46 additions and 19 deletions
+11 -1
View File
@@ -1,4 +1,5 @@
require 'yaml'
require 'pp'
require 'squib/card'
require 'squib/input_helpers'
require 'squib/constants'
@@ -86,7 +87,16 @@ module Squib
# @api private
def load_layout(file)
return if file.nil?
@layout = YAML.load_file(file)
prelayout = YAML.load_file(file)
@layout = {}
prelayout.each do |key, value|
if value.key? "extends"
@layout[key] = prelayout[value["extends"]].merge prelayout[key]
else
@layout[key] = value
end
end
Squib::logger.warn "Multi-level extends not supported. If you want them, contact the developer." if @layout.to_s.include? '"extends"=>'
end
##################
+1
View File
@@ -25,6 +25,7 @@ module Squib
end
module_function :needs
# @api private
def layoutify(opts)
unless opts[:layout].nil?
entry = @layout[opts[:layout].to_s]