Raised when attempting to divide an integer by 0.
42 / 0 #=> ZeroDivisionError: divided by 0
Note that only division by an exact 0 will raise the exception:
42 / 0.0 #=> Float::INFINITY 42 / -0.0 #=> -Float::INFINITY 0 / 0.0 #=> NaN
The Comparable
mixin is used by classes whose objects may be ordered. The class must define the <=>
operator, which compares the receiver against another object, returning a value less than 0, returning 0, or returning a value greater than 0, depending on whether the receiver is less than, equal to, or greater than the other object. If the other object is not comparable then the <=>
operator should return nil
. Comparable
uses <=>
to implement the conventional comparison operators (<
, <=
, ==
, >=
, and >
) and the method between?
.
class SizeMatters include Comparable attr :str def <=>(other) str.size <=> other.str.size end def initialize(str) @str = str end def inspect @str end end s1 = SizeMatters.new("Z") s2 = SizeMatters.new("YY") s3 = SizeMatters.new("XXX") s4 = SizeMatters.new("WWWW") s5 = SizeMatters.new("VVVVV") s1 < s2 #=> true s4.between?(s1, s3) #=> false s4.between?(s3, s5) #=> true [ s3, s2, s5, s4, s1 ].sort #=> [Z, YY, XXX, WWWW, VVVVV]
Copyright © 2000-2007 Minero Aoki
This program is free software. You can distribute/modify this program under the same terms of ruby.
FileUtils
Namespace for several file utility methods for copying, moving, removing, etc.
Module
Functions require 'fileutils' FileUtils.cd(dir, **options) FileUtils.cd(dir, **options) {|dir| block } FileUtils.pwd() FileUtils.mkdir(dir, **options) FileUtils.mkdir(list, **options) FileUtils.mkdir_p(dir, **options) FileUtils.mkdir_p(list, **options) FileUtils.rmdir(dir, **options) FileUtils.rmdir(list, **options) FileUtils.ln(target, link, **options) FileUtils.ln(targets, dir, **options) FileUtils.ln_s(target, link, **options) FileUtils.ln_s(targets, dir, **options) FileUtils.ln_sf(target, link, **options) FileUtils.cp(src, dest, **options) FileUtils.cp(list, dir, **options) FileUtils.cp_r(src, dest, **options) FileUtils.cp_r(list, dir, **options) FileUtils.mv(src, dest, **options) FileUtils.mv(list, dir, **options) FileUtils.rm(list, **options) FileUtils.rm_r(list, **options) FileUtils.rm_rf(list, **options) FileUtils.install(src, dest, **options) FileUtils.chmod(mode, list, **options) FileUtils.chmod_R(mode, list, **options) FileUtils.chown(user, group, list, **options) FileUtils.chown_R(user, group, list, **options) FileUtils.touch(list, **options)
Possible options
are:
:force
forced operation (rewrite files if exist, remove directories if not empty, etc.);
:verbose
print command to be run, in bash syntax, before performing it;
:preserve
preserve object’s group, user and modification time on copying;
:noop
no changes are made (usable in combination with :verbose
which will print the command to run)
Each method documents the options that it honours. See also ::commands
, ::options
and ::options_of
methods to introspect which command have which options.
All methods that have the concept of a “source” file or directory can take either one file or a list of files in that argument. See the method documentation for examples.
There are some ‘low level’ methods, which do not accept keyword arguments:
FileUtils.copy_entry(src, dest, preserve = false, dereference_root = false, remove_destination = false) FileUtils.copy_file(src, dest, preserve = false, dereference = true) FileUtils.copy_stream(srcstream, deststream) FileUtils.remove_entry(path, force = false) FileUtils.remove_entry_secure(path, force = false) FileUtils.remove_file(path, force = false) FileUtils.compare_file(path_a, path_b) FileUtils.compare_stream(stream_a, stream_b) FileUtils.uptodate?(file, cmp_list)
FileUtils::Verbose
This module has all methods of FileUtils
module, but it outputs messages before acting. This equates to passing the :verbose
flag to methods in FileUtils
.
FileUtils::NoWrite
This module has all methods of FileUtils
module, but never changes files/directories. This equates to passing the :noop
flag to methods in FileUtils
.
FileUtils::DryRun
This module has all methods of FileUtils
module, but never changes files/directories. This equates to passing the :noop
and :verbose
flags to methods in FileUtils
.
Timeout
long-running blocks
require 'timeout' status = Timeout::timeout(5) { # Something that should be interrupted if it takes more than 5 seconds... }
Timeout
provides a way to auto-terminate a potentially long-running operation if it hasn’t finished in a fixed amount of time.
Previous versions didn’t use a module for namespacing, however timeout
is provided for backwards compatibility. You should prefer Timeout.timeout
instead.
© 2000 Network Applied Communication Laboratory, Inc.
© 2000 Information-technology Promotion Agency, Japan
FIXME: This isn’t documented in Nutshell.
Since MonitorMixin.new_cond
returns a ConditionVariable
, and the example above calls while_wait and signal, this class should be documented.
POP3
authentication error.
Represents an SMTP
authentication error.
Raised when attempting to uninstall a gem that isn’t in GEM_HOME.
Mixin methods for –version and –platform Gem::Command
options.
A C union wrapper