Fix Drop#key? so it can handle a nil argument (#6281)

Merge pull request 6281
This commit is contained in:
Parker Moore 2017-08-08 23:10:38 -04:00 committed by jekyllbot
parent 3fab69e3c9
commit bd31986ad6
2 changed files with 6 additions and 2 deletions

View File

@ -72,7 +72,7 @@ module Jekyll
def []=(key, val)
if respond_to?("#{key}=")
public_send("#{key}=", val)
elsif respond_to? key
elsif respond_to?(key.to_s)
if self.class.mutable?
@mutations[key] = val
else
@ -106,7 +106,7 @@ module Jekyll
if self.class.mutable
@mutations.key?(key)
else
respond_to?(key) || fallback_data.key?(key)
!key.nil? && (respond_to?(key) || fallback_data.key?(key))
end
end

View File

@ -15,6 +15,10 @@ class TestDrop < JekyllUnitTest
@drop = @document.to_liquid
end
should "reject 'nil' key" do
refute @drop.key?(nil)
end
should "raise KeyError if key is not found and no default provided" do
assert_raises KeyError do
@drop.fetch("not_existing_key")