diff --git a/lib/jekyll/drops/drop.rb b/lib/jekyll/drops/drop.rb index 1ded11eb..09623ef9 100644 --- a/lib/jekyll/drops/drop.rb +++ b/lib/jekyll/drops/drop.rb @@ -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 diff --git a/test/test_drop.rb b/test/test_drop.rb index 00d21164..eb23feb0 100644 --- a/test/test_drop.rb +++ b/test/test_drop.rb @@ -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")