I'm working on an open source Rails 4 project that uses PDF Tool Kit ('pdf-forms' gem) to auto-fill PDF forms based on info stored in the app's database. PDFtk requires binaries to be installed, and the instantiated PDFtk model requires a path to the binaries. The path needs to be dynamic so it will work on Heroku, Mac OS X, and Windows. I can find the path on a *nix machine with the 'which' command. But, Windows doesn't use 'which', it uses 'where'.
Is there a way to detect if the platform responds to a command, and if so, then execute command?
My best attempt is to detect platform with RbConfig (see below). However, some Windows platforms (e.g. Cygwin) respond to *nix commands. As a Mac user I'm not familiar with every platform for Windows.
def pdftk
  # Use path stored in Heroku env vars or else get path to local binaries
  @pdftk ||= PdfForms.new(ENV['PDFTK_PATH'] || local_path) 
end
def local_path
  os = RbConfig::CONFIG['arch']
  if /mswin/ =~ os
    path = `where pdftk` # Get pdftk filepath, Windows equiv of *nix 'which' command
  else
    path = `which pdftk` # Get pdftk filepath on POSIX systems
  end
  path
end
 
     
     
    