parent
f8f65f3de7
commit
19808c6464
|
|
@ -115,7 +115,7 @@ module Squib
|
||||||
thefile = file
|
thefile = file
|
||||||
thefile = "#{File.dirname(__FILE__)}/layouts/#{file}" unless File.exists?(file)
|
thefile = "#{File.dirname(__FILE__)}/layouts/#{file}" unless File.exists?(file)
|
||||||
if File.exists? thefile
|
if File.exists? thefile
|
||||||
yml = @layout.merge(YAML.load_file(thefile))
|
yml = @layout.merge(YAML.load_file(thefile) || {}) #load_file returns false on empty file
|
||||||
yml.each do |key, value|
|
yml.each do |key, value|
|
||||||
@layout[key] = recurse_extends(yml, key, {})
|
@layout[key] = recurse_extends(yml, key, {})
|
||||||
end
|
end
|
||||||
|
|
@ -157,7 +157,7 @@ module Squib
|
||||||
# :nodoc:
|
# :nodoc:
|
||||||
# @api private
|
# @api private
|
||||||
def has_extends?(yml, key)
|
def has_extends?(yml, key)
|
||||||
yml[key].key?('extends')
|
!!yml[key] && yml[key].key?('extends')
|
||||||
end
|
end
|
||||||
|
|
||||||
# Safeguard against malformed circular extends
|
# Safeguard against malformed circular extends
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
empty: #no rules actually set
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
# testing for an empty yaml file here
|
||||||
|
|
@ -207,6 +207,18 @@ describe Squib::Deck do
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'loads nothing on an empty layout file' do
|
||||||
|
d = Squib::Deck.new(layout: layout_file('empty.yml'))
|
||||||
|
expect(d.layout).to eq({})
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'handles extends on a rule with no args' do
|
||||||
|
d = Squib::Deck.new(layout: layout_file('empty-rule.yml'))
|
||||||
|
expect(d.layout).to eq({
|
||||||
|
'empty' => nil
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue