From 3005582f15237393d6dd9df5e8b6429112b2e12a Mon Sep 17 00:00:00 2001
From: Dominyk Tiller <dominyktiller@gmail.com>
Date: Wed, 10 Aug 2016 16:46:58 +0100
Subject: [PATCH] gpg: combine detection logic

---
 Library/Homebrew/gpg.rb | 22 ++++++++--------------
 1 file changed, 8 insertions(+), 14 deletions(-)

diff --git a/Library/Homebrew/gpg.rb b/Library/Homebrew/gpg.rb
index 166985e6d3..a9ae0276b5 100644
--- a/Library/Homebrew/gpg.rb
+++ b/Library/Homebrew/gpg.rb
@@ -1,32 +1,26 @@
 require "utils"
 
 class Gpg
-  # Should ideally be using `GPGRequirement.new.gpg2`, etc to get path here but
-  # calling that directly leads to:
-  # requirement.rb:139:in `which_all': uninitialized constant Requirement::ORIGINAL_PATHS (NameError)
-  # when i.e. including the gpg syntax in wget. Not problematic if not used by formula code.
-  # For now, the path determination blob of code has been semi-modified for here.
-  # Look into this more.
-  def self.gpg
-    which("gpg") do |gpg|
+  def self.find_gpg(executable)
+    which_all(executable).detect do |gpg|
       gpg_short_version = Utils.popen_read(gpg, "--version")[/\d\.\d/, 0]
       next unless gpg_short_version
       Version.create(gpg_short_version.to_s) == Version.create("2.0")
     end
   end
 
+  def self.gpg
+    find_gpg("gpg")
+  end
+
   def self.gpg2
-    which("gpg2") do |gpg2|
-      gpg2_short_version = Utils.popen_read(gpg2, "--version")[/\d\.\d/, 0]
-      next unless gpg2_short_version
-      Version.create(gpg2_short_version.to_s) == Version.create("2.0")
-    end
+    find_gpg("gpg2")
   end
 
   GPG_EXECUTABLE = gpg2 || gpg
 
   def self.available?
-    File.exist?(GPG_EXECUTABLE.to_s) && File.executable?(GPG_EXECUTABLE)
+    File.exist?(GPG_EXECUTABLE.to_s) && File.executable?(GPG_EXECUTABLE.to_s)
   end
 
   def self.create_test_key(path)
-- 
GitLab