Sha256: 80ffaa2ea259f19d70a323a6c81d18192f7c0f27e9f3a6d68c3b3e8f4ff409e6

Contents?: true

Size: 602 Bytes

Versions: 3

Compression:

Stored size: 602 Bytes

Contents

module Acouchi
  class Which
    def self.find_executable *aliases
      if executable = aliases.find {|a| which? a}
        executable
      else
        raise %{Couldn't find any matches for the aliases "#{aliases.join(", ")}"}
      end
    end

    private
      def self.which? command
        exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
        ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
          exts.each { |ext|
            exe = "#{path}/#{command}#{ext}"
            return exe if File.executable? exe
          }
        end
        return nil
      end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
acouchi-0.0.7 lib/acouchi/which.rb
acouchi-0.0.6 lib/acouchi/which.rb
acouchi-0.0.5 lib/acouchi/which.rb