Skip to content

What's Here for class IO #4440

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
May 4, 2021
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 148 additions & 0 deletions io.c
Original file line number Diff line number Diff line change
Expand Up @@ -13331,6 +13331,154 @@ set_LAST_READ_LINE(VALUE val, ID _x, VALUE *_y)
* require 'io/console'
* rows, columns = $stdout.winsize
* puts "Your screen is #{columns} wide and #{rows} tall"
*
* == What's Here
*
* First, what's elsewhere. \Class \IO includes the module Enumerable,
* which provides dozens of additional methods.
*
* Here, class \IO provides methods that are useful for:
*
* - {Creating}[#class-IO-label-Creating]
* - {Reading}[#class-IO-label-Reading]
* - {Writing}[#class-IO-label-Writing]
* - {Positioning}[#class-IO-label-Positioning]
* - {Iterating}[#class-IO-label-Iterating]
* - {Settings}[#class-IO-label-Settings]
* - {Querying}[#class-IO-label-Querying]
* - {Buffering}[#class-IO-label-Buffering]
* - {Low-Level Access}[#class-IO-label-Low-Level+Access]
* - {Other}[#class-IO-label-Other]
*
* === Creating
*
* - ::new (aliased as ::for_fd):: Creates and returns a new \IO object for the given
* integer file descriptor.
* - ::open:: Creates a new \IO object.
* - ::pipe:: Creates a connected pair of reader and writer \IO objects.
* - ::popen:: Creates an \IO object to interact with a subprocess.
* - ::select:: Selects which given \IO instances are ready for reading,
* writing, or have pending exceptions.
*
* === Reading
*
* - ::binread:: Returns a binary string with all or a subset of bytes
* from the given file.
* - ::read:: Returns a string with all or a subset of bytes from the given file.
* - ::readlines:: Returns an array of strings, which are the lines from the given file.
* - #getbyte:: Returns the next 8-bit byte read from +self+ as an integer.
* - #getc:: Returns the next character read from +self+ as a string.
* - #gets:: Returns the line read from +self+.
* - #pread:: Returns all or the next _n_ bytes read from +self+,
* not updating the receiver's offset.
* - #read:: Returns the next _n_ bytes read from +self+ for a given _n_.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Returns all or the next _n_ bytes ...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change is still needed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change to include all or the next _n_ is still needed. Maybe all remaining or the next _n_ is even better, since if the current position is not the start of the file, it is more accurate.

* - #read_nonblock:: the next _n_ bytes read from +self+ for a given _n_,
* in non-block mode.
* - #readbyte:: Returns the next byte read from +self+;
* same as #getbyte, but raises an exception on end-of-file.
* - #readchar:: Returns the next character read from +self+;
* same as #getc, but raises an exception on end-of-file.
* - #readline:: Returns the next line read from +self+;
* same as #getline, but raises an exceptin of end-of-file.
* - #readlines:: Returns an array of all lines read read from +self+.
* - #readpartial:: Returns up to the given number of bytes from +self+.
*
* === Writing
*
* - ::binwrite:: Writes the given string to the file at the given filepath,
in binary mode.
* - ::write:: Writes the given string to +self+.
* - {::<<}[#method-i-3C-3C]:: Appends the given string to +self+.
* - #print:: Prints last read line or given objects to +self+.
* - #printf:: Writes to +self+ based on the given format string and objects.
* - #putc:: Writes a character to +self+.
* - #puts:: Writes lines to +self+, making sure line ends with a newline.
* - #pwrite:: Writes the given string at the given offset,
* not updating the receiver's offset.
* - #write:: Writes one or more given strings to +self+.
* - #write_nonblock:: Writes one or more given strings to +self+ in non-blocking mode.
*
* === Positioning
*
* - #lineno:: Returns the current line number in +self+.
* - #lineno=:: Sets the line number is +self+.
* - #pos=:: Sets the byte offset in +self+.
* - #reopen:: Reassociates +self+ with a new or existing \IO stream.
* - #rewind:: Positions +self+ to the beginning of input.
* - #seek:: Sets the offset for +self+ relative to given position.
* - #pos (aliased as #tell):: Returns the current byte offset in +self+.
*
* === Iterating
*
* - ::foreach:: Yields each line of given file to the block.
* - #each (aliased as #each_line):: Calls the given block
* with each successive line in +self+.
* - #each_byte:: Calls the given block with each successive byte in +self+
* as an integer.
* - #each_char:: Calls the given block with each successive character in +self+
* as a string.
* - #each_codepoint:: Calls the given block with each successive codepoint in +self+
* as an integer.
*
* === Settings
*
* - #autoclose=:: Sets whether +self+ auto-closes.
* - #binmode:: Sets +self+ to binary mode.
* - #close:: Closes +self+.
* - #close_on_exec=:: Sets the close-on-exec flag.
* - #close_read:: Closes +self+ for reading.
* - #close_write:: Closes +self+ for writing.
* - #set_encoding:: Sets the encoding for +self+.
* - #set_encoding_by_bom:: Sets the encoding for +self+, based on its
* Unicode byte-order-mark.
* - #sync=:: Sets the sync-mode to the given value.
*
* === Querying
*
* - #autoclose?:: Returns whether +self+ auto-closes.
* - #binmode?:: Returns whether +self+ is in binary mode.
* - #close_on_exec?:: Returns the close-on-exec flag for +self+.
* - #closed?:: Returns whether +self+ is closed.
* - #eof? (aliased as #eof):: Returns whether +self+ is at end-of-file.
* - #external_encoding:: Returns the external encoding object for +self+.
* - #fileno (aliased as #to_i):: Returns the integer file descriptor for +self+
* - #internal_encoding:: Returns the internal encoding object for +self+.
* - #pid:: Returns the process ID of a child process associated with +self+,
* if +self+ was created by ::popen.
* - #stat:: Returns the File::Stat object containing status information for +self+.
* - #sync:: Returns whether +self+ is in sync-mode.
* - #tty (aliased as #isatty):: Returns whether +self+ is a terminal.
*
* === Buffering
*
* - #fdatasync:: Immediately writes all buffered data in +self+ to disk.
* - #flush:: Flushes any buffered data within +self+ to the underlying
* operating system.
* - #fsync:: Immediately writes all buffered data and attributes in +self+ to disk.
* - #ungetbyte:: Prepends buffer for +self+ with given integer byte or string.
* - #ungetc:: Prepends buffer for +self+ with given string.
*
* === Low-Level Access
*
* - ::sysopen:: Opens the file given by its path,
* returning the integer file descriptor.
* - #advise:: Announces the intention to access data from +self+ in a specific way.
* - #fcntl:: Passes a low-level command to the file specified
* by the given file descriptor.
* - #ioctl:: Passes a low-level command to the device specified
* by the given file descriptor.
* - #sysread:: Returns up to the next _n_ bytes read from self using a low-level read.
* - #sysseek:: Sets the offset for +self+.
* - #syswrite:: Writes the given string to +self+ using a low-level write.
*
* === Other
*
* - ::copy_stream:: Copies data from a source to a destination,
* each of which is a filepath or an \IO-like object.
* - ::try_convert:: Returns a new \IO object resulting from converting
* the given object.
* - #inspect:: Returns the string representation of +self+.
*
*/

void
Expand Down
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy