class ScoobyDoo
Public Class Methods
where_are_you(cmd)
click to toggle source
# File lib/scoobydoo.rb, line 6 def self.where_are_you(cmd) return nil if (cmd.nil? || cmd.empty?) return @@cache[cmd] if (@@cache.has_key?(cmd)) if (cmd.include?(File::SEPARATOR)) exe = Pathname.new(cmd).expand_path return (exe.executable? && !exe.directory?) ? exe : nil end exts = ENV["PATHEXT"] ? ENV["PATHEXT"].split(";") : [""] ENV["PATH"].split(File::PATH_SEPARATOR).each do |path| exts.each do |ext| exe = File.join(path, "#{cmd}#{ext}") if (File.executable?(exe) && !File.directory?(exe)) @@cache[cmd] = exe return exe end end end return nil end