= Description
  A Ruby interface for gathering process table information. This is a pure
  Ruby implementation that unpacks data out of your /proc filesystem.

= Synopsis
  require 'sys/proctable'
  include Sys

  # Everything
  ProcTable.ps{ |p|
    puts p.pid.to_s
    puts p.comm
    ...
  }

  or

  # Just one process
  p = ProcTable.ps(2123)
  puts p.pid.to_s
  puts p.comm
  ...

  or

  # Return the results as an array of ProcTableStructs
  a = ProcTable.ps()
  a.each do |p|
     puts a.pid
     ...
  end

= Constants
VERSION
  Returns the current version number for this library (as a string).

= Class Methods
ProcTable.fields
  Returns an array of fields available on the current OS.

ProcTable.ps(pid=nil)
ProcTable.ps { |s| ... }
  If no pid's or processes are included as arguments, in block form it
  returns a struct of type ProcTableStruct for every process in the proc
  table.  Otherwise it returns an array of ProcTableStruct's.

  If a process id is provided, a single ProcTable struct is returned, or
  nil if the pid is not found.

= Exception Classes
ProcTable::Error < StandardError
  Raised if the /proc field is unreadable and/or unmounted.

= Supported fields
  You can view the supported fields with the "fields()" class method.

= Future Plans
  Have the flags fields return meaningful values.

= Notes
  The "comm" field isn't really part of the psinfo struct.  It is just a copy
  (i.e. is identical to) the "fname" field.  It exists to provide a degree
  of consistency between all of the platforms.

= Known Bugs
  None known.  Please log any bugs on the project page at
  http://www.rubyforge.org/projects/sysutils

= License
  Artistic 2.0

= Copyright
  (C) 2003-2014 Daniel J. Berger
  All Rights Reserved

= Warranty
  This package is provided "as is" and without any express or
  implied warranties, including, without limitation, the implied
  warranties of merchantability and fitness for a particular purpose.

= Authors
  Rick Ohnemus
  Daniel J. Berger

= See Also
  ps, proc
