Perl's -t and -B file tests in ruby?

Does ruby have file tests like Perl's:

-t : file (mostly STDIN) is attached to a tty
-B : file is binary

···

--
Wybo

Does ruby have file tests like Perl's:
-t : file (mostly STDIN) is attached to a tty

uln% ri IO#tty?
---------------------------------------------------------------- IO#tty?
     ios.isatty => true or false
     ios.tty? => true or false

···

------------------------------------------------------------------------
     Returns +true+ if _ios_ is associated with a terminal device (tty),
     +false+ otherwise.

        File.new("testfile").isatty #=> false
        File.new("/dev/tty").isatty #=> true

uln%

-B : file is binary

Define what is a binary file ?

Guy Decoux

ts <decoux@moulon.inra.fr> writes:

> -B : file is binary

Define what is a binary file ?

In this context, Perl essentially means that the file has a lot of
non-ASCII characters. From the perlfunc man page

    -T File is an ASCII text file (heuristic guess).
    -B File is a "binary" file (opposite of -T).

and

    The "-T" and "-B" switches work as follows. The
    first block or so of the file is examined for odd
    characters such as strange control codes or char-
    acters with the high bit set. If too many strange
    characters (>30%) are found, it's a "-B" file,
    otherwise it's a "-T" file. Also, any file con-
    taining null in the first block is considered a
    binary file. If "-T" or "-B" is used on a file-
    handle, the current IO buffer is examined rather
    than the first block. Both "-T" and "-B" return
    true on a null file, or a file at EOF when testing
    a filehandle. Because you have to read a file to
    do the "-T" test, on most occasions you want to
    use a "-f" against the file first, as in "next
    unless -f $file && -T $file".

In this context, Perl essentially means that the file has a lot of
non-ASCII characters.

Well, this is fine for english but what do you for other languages ?

The author of this P language is an "anglois" and perhaps he can see the
problem :slight_smile:

Guy Decoux

ts <decoux@moulon.inra.fr> writes:
>
> > -B : file is binary
>
> Define what is a binary file ?

In this context, Perl essentially means that the file has a lot of
non-ASCII characters. From the perlfunc man page

    -T File is an ASCII text file (heuristic guess).
    -B File is a "binary" file (opposite of -T).

and

    The "-T" and "-B" switches work as follows. The
    first block or so of the file is examined for odd
    characters such as strange control codes or char-
    acters with the high bit set. If too many strange

In Larry Wall's Reference here ^ he adds:
      (that don't look like UTF-8)

···

On Mon, 31 Jan 2005, Tim Heaney wrote:

    characters (>30%) are found, it's a "-B" file,
    otherwise it's a "-T" file. Also, any file con-
    taining null in the first block is considered a
    binary file. If "-T" or "-B" is used on a file-
    handle, the current IO buffer is examined rather
    than the first block. Both "-T" and "-B" return
    true on a null file, or a file at EOF when testing
    a filehandle. Because you have to read a file to
    do the "-T" test, on most occasions you want to
    use a "-f" against the file first, as in "next
    unless -f $file && -T $file".

--
Wybo

The author of this P language is an "anglois" and perhaps he can see the

                                                              ^^^^^^
                                                              he can't

problem :slight_smile:

sorry,

Guy Decoux

In Larry Wall's Reference here ^ he adds:
      (that don't look like UTF-8)

He is definitively an "anglois" : he know only ASCII and UTF-8

Guy Decoux