From bd31986ad6073d8174549fc75820a003cbd46b25 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Tue, 8 Aug 2017 23:10:38 -0400 Subject: [PATCH] Fix Drop#key? so it can handle a nil argument (#6281) Merge pull request 6281 --- lib/jekyll/drops/drop.rb | 4 ++-- test/test_drop.rb | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) 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")