Type:
Class

ARGF is a stream designed for use in scripts that process files given as command-line arguments or passed in via STDIN.

The arguments passed to your script are stored in the ARGV Array, one argument per element. ARGF assumes that any arguments that aren't filenames have been removed from ARGV. For example:

$ ruby argf.rb --verbose file1 file2

ARGV  #=> ["--verbose", "file1", "file2"]
option = ARGV.shift #=> "--verbose"
ARGV  #=> ["file1", "file2"]

You can now use ARGF to work with a concatenation of each of these named files. For instance, ARGF.read will return the contents of file1 followed by the contents of file2.

After a file in ARGV has been read ARGF removes it from the Array. Thus, after all files have been read ARGV will be empty.

You can manipulate ARGV yourself to control what ARGF operates on. If you remove a file from ARGV, it is ignored by ARGF; if you add files to ARGV, they are treated as if they were named on the command line. For example:

ARGV.replace ["file1"]
ARGF.readlines # Returns the contents of file1 as an Array
ARGV           #=> []
ARGV.replace ["file2", "file3"]
ARGF.read      # Returns the contents of file2 and file3

If ARGV is empty, ARGF acts as if it contained STDIN, i.e. the data piped to your script. For example:

$ echo "glark" | ruby -e 'p ARGF.read'
"glark\n"
rewind
  • References/Ruby on Rails/Ruby/Classes/ARGF

ARGF.rewind â 0 Instance Public methods Positions the current file to the

2025-01-10 15:47:30
getbyte
  • References/Ruby on Rails/Ruby/Classes/ARGF

ARGF.getbyte â Fixnum or nil Instance Public methods Gets the next 8-bit byte

2025-01-10 15:47:30
to_write_io
  • References/Ruby on Rails/Ruby/Classes/ARGF

ARGF.to_write_io â io Instance Public methods Returns

2025-01-10 15:47:30
inplace_mode
  • References/Ruby on Rails/Ruby/Classes/ARGF

ARGF.inplace_mode â String Instance Public methods Returns the file extension

2025-01-10 15:47:30
write
  • References/Ruby on Rails/Ruby/Classes/ARGF

ARGF.write(string) â integer Instance Public methods Writes string

2025-01-10 15:47:30
gets
  • References/Ruby on Rails/Ruby/Classes/ARGF

ARGF.gets(sep=$/) â stringARGF.gets(limit) â stringARGF.gets(sep, limit) â string Instance

2025-01-10 15:47:30
each_char
  • References/Ruby on Rails/Ruby/Classes/ARGF

ARGF.each_char {|char| block } â ARGFARGF.each_char â an_enumerator Instance Public methods

2025-01-10 15:47:30
seek
  • References/Ruby on Rails/Ruby/Classes/ARGF

ARGF.seek(amount, whence=IO::SEEK_SET) â 0 Instance Public methods Seeks

2025-01-10 15:47:30
argv
  • References/Ruby on Rails/Ruby/Classes/ARGF

ARGF.argv â ARGV Instance Public methods Returns the ARGV array

2025-01-10 15:47:30
to_i
  • References/Ruby on Rails/Ruby/Classes/ARGF

ARGF.to_i â fixnum Instance Public methods Returns an integer representing

2025-01-10 15:47:30