Fix Drop#key? so it can handle a nil argument (#6281)
Merge pull request 6281
This commit is contained in:
parent
3fab69e3c9
commit
bd31986ad6
|
@ -72,7 +72,7 @@ module Jekyll
|
||||||
def []=(key, val)
|
def []=(key, val)
|
||||||
if respond_to?("#{key}=")
|
if respond_to?("#{key}=")
|
||||||
public_send("#{key}=", val)
|
public_send("#{key}=", val)
|
||||||
elsif respond_to? key
|
elsif respond_to?(key.to_s)
|
||||||
if self.class.mutable?
|
if self.class.mutable?
|
||||||
@mutations[key] = val
|
@mutations[key] = val
|
||||||
else
|
else
|
||||||
|
@ -106,7 +106,7 @@ module Jekyll
|
||||||
if self.class.mutable
|
if self.class.mutable
|
||||||
@mutations.key?(key)
|
@mutations.key?(key)
|
||||||
else
|
else
|
||||||
respond_to?(key) || fallback_data.key?(key)
|
!key.nil? && (respond_to?(key) || fallback_data.key?(key))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,10 @@ class TestDrop < JekyllUnitTest
|
||||||
@drop = @document.to_liquid
|
@drop = @document.to_liquid
|
||||||
end
|
end
|
||||||
|
|
||||||
|
should "reject 'nil' key" do
|
||||||
|
refute @drop.key?(nil)
|
||||||
|
end
|
||||||
|
|
||||||
should "raise KeyError if key is not found and no default provided" do
|
should "raise KeyError if key is not found and no default provided" do
|
||||||
assert_raises KeyError do
|
assert_raises KeyError do
|
||||||
@drop.fetch("not_existing_key")
|
@drop.fetch("not_existing_key")
|
||||||
|
|
Loading…
Reference in New Issue