From 1e244c18abb985479c28f5561295dcd6a0a8ef10 Mon Sep 17 00:00:00 2001 From: Daniel Vandersluis Date: Wed, 2 Dec 2020 10:15:11 -0500 Subject: [PATCH] [Fix #9145] Fix issues with SuggestExtensions when bundler is not available, or when there is no gemfile. --- changelog/fix_fix_issues_with_suggestextensions_when.md | 1 + lib/rubocop/cli/command/suggest_extensions.rb | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 changelog/fix_fix_issues_with_suggestextensions_when.md diff --git a/changelog/fix_fix_issues_with_suggestextensions_when.md b/changelog/fix_fix_issues_with_suggestextensions_when.md new file mode 100644 index 00000000000..9a6c3ef33d7 --- /dev/null +++ b/changelog/fix_fix_issues_with_suggestextensions_when.md @@ -0,0 +1 @@ +* [#9145](https://github.com/rubocop-hq/rubocop/issues/9145): Fix issues with SuggestExtensions when bundler is not available, or when there is no gemfile. ([@dvandersluis][]) diff --git a/lib/rubocop/cli/command/suggest_extensions.rb b/lib/rubocop/cli/command/suggest_extensions.rb index 955974baf2e..88df9772374 100644 --- a/lib/rubocop/cli/command/suggest_extensions.rb +++ b/lib/rubocop/cli/command/suggest_extensions.rb @@ -12,8 +12,12 @@ class SuggestExtensions < Base self.command_name = :suggest_extensions def self.dependent_gems + return [] unless defined?(Bundler) + # This only includes gems in Gemfile, not in lockfile Bundler.load.dependencies.map(&:name) + rescue Bundler::GemfileNotFound + [] end def run @@ -54,6 +58,8 @@ def current_formatter end def extensions + return [] unless dependent_gems.any? + @extensions ||= begin extensions = @config_store.for_pwd.for_all_cops['SuggestExtensions'] || {} extensions.select { |_, v| (Array(v) & dependent_gems).any? }.keys - dependent_gems @@ -66,7 +72,7 @@ def puts(*args) end def dependent_gems - self.class.dependent_gems + @dependent_gems ||= self.class.dependent_gems end end end