/ptools

Extra methods (power tools) for the File class for Ruby

Primary LanguageRuby

== Description
  The ptools (power tools) library is an additional set of commands for the
  File class based on Unix command line tools.
   
== Prerequisites
  On MS Windows you will need the win32-file gem.

== Installation
  gem install ptools

== Synopsis
  require "ptools"

  File.which("ruby")         # '/usr/local/bin/ruby'
  File.whereis("ruby")       # ['/usr/local/bin/ruby','/opt/bin/ruby']

  File.head("myfile")        # Returns first 10 lines of 'myfile'
  File.tail("myfile",3)      # Returns last 3 lines of 'myfile'
  File.wc("myfile",'words')  # Returns the number of words in 'myfile'

  File.touch("newfile")      # "newfile" now exists
  File.null                  # '/dev/null' on Unix, 'NUL' on Windows
  File.binary?('some_file')  # true or false
  File.sparse?('some_file')  # true or false

  # Creates a copy of 'myfile' called 'newfile', in DOS format
  File.nl_convert("myfile", "newfile", "dos")
   
== Known Bugs
  The File.which and File.whereis methods may fail when using JRuby on Windows.
  See jruby/jruby#2291 for details.

  Please report any other issues on the github project page.

  http://www.github.com/djberg96/ptools

== Acknowledgements
  The File.which method was originally adopted from the FileWhich code posted
  by Michael Granger on the now defunct rubygarden.org website. That code was
  later replaced by a version based on the ruby-which library.

  The File.nl_convert method is based on the nlcvt program found at
  http://www.perl.com/language/ppt/src/nlcvt/nlcvt, written by Tom Christiansen.
    
  The binary?() method was based almost entirely on a blog post by Ryan
  Davis (who, in turn, based his code on Perl's -B switch).

  Thanks go to Matt Hoyle for help with the File.tail method.

== Future Plans
  Add whatever other tools people think might be useful.
   
== 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.

== Author
  Daniel J. Berger