#--
# ===============================================================================
# Copyright (c) 2005, 2006 Christopher Kleckner
# All rights reserved
#
# This file is part of the Rio library for ruby.
#
# Rio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# Rio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Rio; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# ===============================================================================
#++
#
# To create the documentation for Rio run the command
# ruby build_doc.rb
# from the distribution directory. Then point your browser at the 'doc/rdoc' directory.
#
# Suggested Reading
# * RIO::Doc::SYNOPSIS
# * RIO::Doc::INTRO
# * RIO::Doc::HOWTO
# * RIO::Rio
#
# Rio is pre-alpha software.
# The documented interface and behavior is subject to change without notice.
module RIO
class Rio
# Calls FileTest#blockdev?
# rio('afile').blockdev? => true or false
# Returns +true+ if the named file is a block device.
def blockdev?() target.blockdev?() end
# Calls FileTest#chardev?
# rio('afile').chardev? => true or false
# Returns +true+ if the named file is a character device.
def chardev?() target.chardev? end
# Calls FileTest#directory?
# rio('afile').directory? => true or false
# Returns +true+ if the named file is a directory, +false+ otherwise.
def directory?() target.directory? end
# Alias for #directory?
def dir?() target.dir? end
# Calls FileTest#exist?
# rio('afile').exist?() => true or false
# Returns +true+ if the named file exists.
def exist?() target.exist? end
# Calls FileTest#file?
# rio('afile').file? => true or false
# Returns +true+ if the named file exists and is a regular file.
def file?() target.file? end
# Calls FileTest#socket?
# rio('afile').socket? => true or false
# Returns +true+ if the named file is a socket.
def socket?() target.socket? end
# Calls FileTest#symlink?
# rio('afile').symlink? => true or false
# Returns +true+ if the named file is a symbolic link.
def symlink?() target.symlink? end
# Returns +true+ if a Rio is not #closed?
def open?() target.open?() end
# Calls IO#closed?
# ario.closed? => true or false
# Returns +true+ if _ario_ is completely closed (for duplex streams,
# both reader and writer), +false+ otherwise.
def closed?() target.closed?() end
# call-seq:
# fnmatch?( pattern, [flags] ) => (true or false)
#
# Calls File#fnmatch?
#
# Returns true if Rio#path matches pattern. The
# pattern is not a regular expression; instead it follows rules
# similar to shell filename globbing. It may contain the following
# metacharacters:
#
# flags is a bitwise OR of the FNM_xxx
parameters.
# The same glob pattern and flags are used by Dir::glob
.
#
# rio('cat').fnmatch?('cat') #=> true
# rio('category').fnmatch?('cat') #=> false
# rio('cats').fnmatch?('c{at,ub}s') #=> false
# rio('cubs').fnmatch?('c{at,ub}s') #=> false
# rio('cat').fnmatch?('c{at,ub}s') #=> false
#
# rio('cat').fnmatch?('c?t') #=> true
# rio('cat').fnmatch?('c\?t') #=> false
# rio('cat').fnmatch?('c??t') #=> false
# rio('cats').fnmatch?('c*') #=> true
#
# rio('cat').fnmatch?('c*t') #=> true
# rio('cat').fnmatch?('c\at') #=> true
# rio('cat').fnmatch?('c\at',File::FNM_NOESCAPE) #=> false
# rio('a/b').fnmatch?('a?b') #=> true
# rio('a/b').fnmatch?('a?b',File::FNM_PATHNAME) #=> false
#
# rio('.profile').fnmatch?('*') #=> false
# rio('.profile').fnmatch?('*',File::FNM_DOTMATCH) #=> true
# rio('dave/.profile').fnmatch?('*') #=> true
# rio('dave/.profile').fnmatch?('*',File::FNM_DOTMATCH) #=> true
# rio('dave/.profile').fnmatch?('*',File::FNM_PATHNAME) #=> false
#
def fnmatch?(*args) target.fnmatch?(*args) end
# Calls File#ftype
#
# Identifies the type of the named file; the return string is one of 'file’, 'directory’,
# 'characterSpecial’, 'blockSpecial’, 'fifo’, 'link’, 'socket’, or 'unknown’.
def ftype(*args) target.ftype(*args) end
# Calls File#stat
def stat(*args) target.stat(*args) end
# Calls File#lstat
def lstat(*args) target.lstat(*args) end
# Calls FileTest#pipe?
# rio('afile').pipe? => true or false
# Returns +true+ if the named file is a pipe.
def pipe?() target.pipe?() end
# Calls File#atime
#
# Returns the last access time (a Time object) for the file system object referenced
def atime(*args) target.atime(*args) end
# Calls File#ctime
#
# Returns the change time for Rios that reference file system object (that is,
# the time directory information about the file was changed, not the file itself).
def ctime(*args) target.ctime(*args) end
# Calls File#mtime
#
# Returns the modification time for Rio that reference file system objects
def mtime(*args) target.mtime(*args) end
# Calls File#executable?
#
# Returns true if the file is executable by the effective user id of this process.
def executable?(*args) target.executable?(*args) end
# Calls File#executable_real?
#
# Returns true if the file is executable by the real user id of this process.
def executable_real?(*args) target.executable_real?(*args) end
# Calls FileTest#readable?
# rio('afile').readable? => true or false
# Returns +true+ if the named file is readable by the effective user
# id of this process.
def readable?(*args) target.readable?(*args) end
# Calls FileTest#readable_real?
# rio('afile').readable_real? => true or false
# Returns +true+ if the named file is readable by the real user id of
# this process.
def readable_real?(*args) target.readable_real?(*args) end
# Calls FileTest#writable?
# rio('afile').writable? => true or false
# Returns +true+ if the named file is writable by the effective user
# id of this process.
def writable?(*args) target.writable?(*args) end
# Calls FileTest#writable_real?
# rio('afile').writable_real? => true or false
# Returns +true+ if the named file is writable by the real user id of
# this process.
def writable_real?(*args) target.writable_real?(*args) end
# Calls FileTest#sticky?
# rio('afile').sticky? => true or false
# Returns +true+ if the named file is a has the sticky bit set.
def sticky?(*args) target.sticky?(*args) end
# Calls FileTest#owned?
# rio('afile').owned? => true or false
# Returns +true+ if the named file exists and the effective used id
# of the calling process is the owner of the file.
def owned?(*args) target.owned?(*args) end
# Calls FileTest#grpowned?
# rio('afile').grpowned? => true or false
# Returns +true+ if the named file exists and the effective group id
# of the calling process is the owner of the file. Returns +false+ on
# Windows.
def grpowned?(*args) target.grpowned?(*args) end
# Calls FileTest#setgid?
# rio('afile').setgid? => true or false
# Returns +true+ if the named file is a has the setgid bit set.
def setgid?(*args) target.setgid?(*args) end
# Calls FileTest#setuid?
# rio('afile').setuid? => true or false
# Returns +true+ if the named file is a has the setuid bit set.
def setuid?(*args) target.setuid?(*args) end
# Calls FileTest#size
# rio('afile').size => integer
# Returns the size of _afile_.
# To get the length of the Rio's string representation use Rio#length
def size(*args) target.size(*args) end
# Calls FileTest#size?
# rio('afile').size? => integer or nil
# Returns +nil+ if _afile_ doesn't exist or has zero size, the
# size of the file otherwise.
def size?(*args) target.size?(*args) end
# Calls FileTest#zero?
# rio('afile').zero? => true or false
# Returns +true+ if the named file exists and has a zero size.
def zero?(*args) target.zero?(*args) end
# Returns true if the rio represents and absolute path or URI. Alias for Rio#absolute?
#
# rio('/tmp').abs? # >> true
# rio('.ssh').abs? # >> false
# rio('file:///tmp').abs? # >> true
# rio('http://www.ruby-doc.org/').abs? # >> true
#
def abs?() target.abs?() end
# Returns true if the Rio represents and absolute path or URI. Calls URI#absolute?
#
# rio('/tmp').absolute? # >> true
# rio('.ssh').absolute? # >> false
# rio('file:///tmp').absolute? # >> true
# rio('http://www.ruby-doc.org/').absolute? # >> true
#
def absolute?() target.absolute?() end
# Calls Pathname#mountpoint?
#
# Returns +true+ if self points to a mountpoint.
def mountpoint?() target.mountpoint?() end
# Calls Pathname#root?
#
# #root? is a predicate for root directories. I.e. it returns +true+ if the
# pathname consists of consecutive slashes.
#
# It doesn't access the actual filesystem. So it may return +false+ for some
# pathnames which points to roots such as /usr/...
#
def root?() target.root?() end
end
end