open( filename, options = Hash.new ) { |faster_csv| ... }
open( filename, mode = "rb", options = Hash.new )
open( filename, options = Hash.new )
This method opens an IO object, and wraps that with CSV. This is intended as the primary interface for writing a CSV file.
You must pass a filename and may optionally add a
mode for Ruby's open().  You may also pass an optional Hash containing any options ::new understands as the final argument.
This method works like Ruby's open() call, in that it will pass a CSV object to a provided block and close it when the block terminates, or it will return the CSV object when no block is provided. (Note: This is different from the Ruby 1.8 CSV library which passed rows to the block. Use ::foreach for that behavior.)
You must provide a mode with an embedded Encoding designator unless your data is in Encoding.default_external.
CSV will check the Encoding of the underlying IO object (set by the mode you pass) to
determine how to parse the data.   You may provide a second Encoding to have the data transcoded as it is read
just as you can with a normal call to IO.open.  For example,
"rb:UTF-32BE:UTF-8" would read UTF-32BE data from
the file but transcode it to UTF-8 before CSV parses
it.
An opened CSV object will delegate to many IO methods for convenience. You may call:
- 
binmode()
 - 
binmode?()
 - 
close()
 - 
close_read()
 - 
close_write()
 - 
closed?()
 - 
eof()
 - 
eof?()
 - 
external_encoding()
 - 
fcntl()
 - 
fileno()
 - 
flock()
 - 
flush()
 - 
fsync()
 - 
internal_encoding()
 - 
ioctl()
 - 
isatty()
 - 
path()
 - 
pid()
 - 
pos()
 - 
pos=()
 - 
reopen()
 - 
seek()
 - 
stat()
 - 
sync()
 - 
sync=()
 - 
tell()
 - 
to_i()
 - 
to_io()
 - 
truncate()
 - 
tty?()
 
Please login to continue.