parent
f8f65f3de7
commit
19808c6464
|
|
@ -115,7 +115,7 @@ module Squib
|
|||
thefile = file
|
||||
thefile = "#{File.dirname(__FILE__)}/layouts/#{file}" unless File.exists?(file)
|
||||
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|
|
||||
@layout[key] = recurse_extends(yml, key, {})
|
||||
end
|
||||
|
|
@ -157,7 +157,7 @@ module Squib
|
|||
# :nodoc:
|
||||
# @api private
|
||||
def has_extends?(yml, key)
|
||||
yml[key].key?('extends')
|
||||
!!yml[key] && yml[key].key?('extends')
|
||||
end
|
||||
|
||||
# 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
|
||||
|
||||
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
|
||||
|
|
|
|||
Loading…
Reference in New Issue