module Nuggets::File::WhichMixin
Constants
- DEFAULT_EXTENSIONS
Public Instance Methods
which(executable[, extensions]) → aString or +nil+
click to toggle source
Returns executable if it's executable, or the full path to executable found in PATH, or nil otherwise. Checks executable with each extension in extensions appended in turn.
Inspired by Gnuplot.which – thx, Gordon!
# File lib/nuggets/file/which_mixin.rb 43 def which(executable, extensions = DEFAULT_EXTENSIONS) 44 extensions |= [''] 45 46 if env = ::ENV['PATH'] 47 dirs = env.split(self::PATH_SEPARATOR) 48 dirs.map! { |dir| expand_path(dir) } 49 end 50 51 extensions.find { |extension| 52 file = "#{executable}#{extension}" 53 return file if file?(file) && executable?(file) 54 55 dirs.find { |dir| 56 path = join(dir, file) 57 return path if file?(path) && executable?(path) 58 } if dirs 59 } 60 end
which_command(commands) → aString or +nil+
click to toggle source
Returns the first of commands that is executable (according to which).
# File lib/nuggets/file/which_mixin.rb 66 def which_command(commands, extensions = DEFAULT_EXTENSIONS) 67 commands.find { |command| which(command.to_s[/\S+/], extensions) } 68 end