diff --git a/lib/jekyll/external.rb b/lib/jekyll/external.rb index e41bce27..04dbb6f2 100644 --- a/lib/jekyll/external.rb +++ b/lib/jekyll/external.rb @@ -39,6 +39,7 @@ module Jekyll def require_with_graceful_fail(names) Array(names).each do |name| begin + Jekyll.logger.debug("Requiring #{name}") require name rescue LoadError => e Jekyll.logger.error "Dependency Error:", <<-MSG diff --git a/lib/jekyll/plugin_manager.rb b/lib/jekyll/plugin_manager.rb index bc541617..11db89d1 100644 --- a/lib/jekyll/plugin_manager.rb +++ b/lib/jekyll/plugin_manager.rb @@ -24,12 +24,7 @@ module Jekyll # # Returns nothing. def require_gems - site.gems.each do |gem| - if plugin_allowed?(gem) - Jekyll.logger.debug("PluginManager:", "Requiring #{gem}") - require gem - end - end + Jekyll::External.require_with_graceful_fail(site.gems.select { |gem| plugin_allowed?(gem) }) end def self.require_from_bundler @@ -70,10 +65,9 @@ module Jekyll # Returns nothing. def require_plugin_files unless site.safe - plugins_path.each do |plugins| - Dir[File.join(plugins, "**", "*.rb")].sort.each do |f| - require f - end + plugins_path.each do |plugin_search_path| + plugin_files = Utils.safe_glob(plugin_search_path, File.join("**", "*.rb")) + Jekyll::External.require_with_graceful_fail(plugin_files) end end end