0.04
No commit activity in last 3 years
No release in over 3 years
Locates a program file in the user's path. The which method takes a list of command names and searches the path for each executable file that would be run had these commands actually been invoked.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Dependencies
 Project Readme

which_works

Ruby UNIX-like which. Locates a program file in the user's path.

Gem Version Dependency Status Build Status Coverage Status

The which method takes a list of command names and searches the path for each executable file that would be run had these commands actually been invoked.

Which.which('ls')            #=> "/bin/ls"
Which.which('ls', 'screen')  #=> [ "/bin/ls", "/usr/bin/screen" ]
Which.which('unknown')       #=> nil

# you can also check an absolute path
Which.which('/usr/bin/svn')  #=> "/usr/bin/svn"
Which.which('/usr/bin/foo')  #=> nil

# the :all option returns all executable files,
# not just the first one found in the path
Which.which('svn', :all => true)   #=> [ "/opt/local/bin/svn", "/usr/bin/svn" ]

# the :array option always returns an array
Which.which('unknown', :array => true)       #=> []
Which.which('ls', :array => true)            #=> [ "/bin/ls" ]
Which.which('ls', 'screen', :array => true)  #=> [ "/bin/ls", "/usr/bin/screen" ]

# combined options
Which.which('ls', 'svn', :all => true, :array => true)
#=> [ "/bin/ls", "/opt/local/bin/svn", "/usr/bin/svn" ]

# you can change the default options
Which.options = { :all => true }
Which.options[:array] = true
Which.which('ls')       #=> [ "/bin/ls" ]
Which.which('svn')      #=> [ "/opt/local/bin/svn", "/usr/bin/svn" ]

# default options can be overridden as usual
Which.which('ls', :array => false)  #=> "/bin/ls"

# see the current default options
Which.options     #=> { :all => true, :array => true }

Meta

  • Author: Simon Oulevay (Alpha Hydrae)
  • License: MIT (see LICENSE.txt)