From faa67bcd62e3d55e07301c86f95d77267fe2082a Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Tue, 10 Jan 2017 12:12:55 -0500 Subject: [PATCH 1/2] include: fix 'no implicit conversion of nil to String' This is when either 'dir' or 'file' is nil. --- lib/jekyll/tags/include.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/jekyll/tags/include.rb b/lib/jekyll/tags/include.rb index 67461750..cf052197 100644 --- a/lib/jekyll/tags/include.rb +++ b/lib/jekyll/tags/include.rb @@ -112,8 +112,8 @@ eos def locate_include_file(context, file, safe) includes_dirs = tag_includes_dirs(context) includes_dirs.each do |dir| - path = File.join(dir, file) - return path if valid_include_file?(path, dir, safe) + path = File.join(dir.to_s, file.to_s) + return path if valid_include_file?(path, dir.to_s, safe) end raise IOError, "Could not locate the included file '#{file}' in any of "\ "#{includes_dirs}. Ensure it exists in one of those directories and, "\ @@ -163,7 +163,7 @@ eos end def valid_include_file?(path, dir, safe) - !(outside_site_source?(path, dir, safe) || !File.exist?(path)) + !(outside_site_source?(path, dir, safe) || !File.file?(path)) end def outside_site_source?(path, dir, safe) From 02858fdf089bce0e4bb7901ef8e5b13d61e91c01 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Wed, 11 Jan 2017 12:05:56 -0500 Subject: [PATCH 2/2] include: improve boolean logic in #valid_include_file? --- lib/jekyll/tags/include.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/jekyll/tags/include.rb b/lib/jekyll/tags/include.rb index cf052197..ca74087d 100644 --- a/lib/jekyll/tags/include.rb +++ b/lib/jekyll/tags/include.rb @@ -163,7 +163,7 @@ eos end def valid_include_file?(path, dir, safe) - !(outside_site_source?(path, dir, safe) || !File.file?(path)) + !outside_site_source?(path, dir, safe) && File.file?(path) end def outside_site_source?(path, dir, safe)