Ruby-Programmierung: Hilfe

Aus Wikibooks

Zurück zu Inhaltsverzeichnis.

Ruby-Doc.org[Bearbeiten]

Eine umfangreiche Dokumentation findet sich auf [1]. Dort sind viele Klassen mit ihren Methoden aufgeführt. Dort kann man nachschlagen, wenn man eine bestimmte Funktionalität sucht.

Integrierte Dokumentation[Bearbeiten]

Im Paketumfang von Ruby ist ri enthalten, ein Dokumentationsbetrachter für die Konsole.

Wird das Programm ohne Parameter aufgerufen, so zeigt es Hinweise zur Bedienung an. Zu beachten ist, dass ri seine Ausgabe immer über den in der Umgebungsvariable $PAGER eingestellten Ausgabefilter leitet.

Um einen Überblick über alle Klassen mit Dokumentation zu erhalten, ruft man ri mit dem Parameter -c (oder --classes) auf:

$ ri -c
---------------------------------------------- Known classes and modules

     Abbrev, ArgumentError, Array, BDB, BDB::Btree, BDB::Common,
     BDB::Cursor, BDB::Env, BDB::Hash, BDB::Lock, BDB::LockDead,
     BDB::LockError, BDB::LockGranted, BDB::LockHeld, BDB::Lockid,
     BDB::Lsn, BDB::Queue, BDB::Recno, BDB::Recnum, BDB::Sequence,
     BDB::Txn, Base64, Base64::Deprecated, Benchmark, Benchmark::Job,
     Benchmark::Report, Benchmark::Tms, Bignum, Binding, CGI,
...
     Iconv, Iconv::BrokenLibrary, Iconv::Failure,
     Iconv::IllegalSequence, Iconv::InvalidCharacter,
     Iconv::InvalidEncoding, Iconv::OutOfRange, IndexError, Integer,
     Interrupt, Jabber, Jabber::AuthenticationFailure, Jabber::Client,
     Jabber::Component, Jabber::Connection, Jabber::DiscoFeature,
     Jabber::DiscoIdentity, Jabber::DiscoItem, Jabber::Error,
     Jabber::ErrorException, Jabber::Helpers,
     Jabber::Helpers::FileSource, Jabber::Helpers::FileTransfer,
...
     Jabber::XMucUserInvite, Jabber::XMucUserItem, Jabber::XRoster,
     Jabber::XRosterItem, Kernel, LoadError, LocalJumpError, Logger,
     Logger::Application, Logger::Error, Logger::Formatter,
     Logger::LogDevice, Logger::LogDevice::LogDeviceMutex,
     Logger::Severity, Logger::ShiftingError, Marshal, MatchData, Math,
     Matrix, Matrix::Scalar, MediaWiki, MediaWiki::Article,
     MediaWiki::Category, MediaWiki::MiniBrowser, MediaWiki::Table,
     MediaWiki::Wiki, Method, Module, Mutex, NameError,
     NameError::message, NilClass, NoMemoryError, NoMethodError,
...
     Zlib::VersionError, Zlib::ZStream, fatal

Für die Übersicht über Methoden einer Klasse genügt ein Aufruf mit dem Klassenname als Parameter:

% ri String|cat
---------------------------------------------------------- Class: String
     A +String+ object holds and manipulates an arbitrary sequence of
     bytes, typically representing characters. String objects may be
     created using +String::new+ or as literals.

     Because of aliasing issues, users of strings should be aware of the
     methods that modify the contents of a +String+ object. Typically,
     methods with names ending in ``!'' modify their receiver, while
     those without a ``!'' return a new +String+. However, there are
     exceptions, such as +String#[]=+.

------------------------------------------------------------------------


Includes:
---------
     Comparable(<, <=, ==, >, >=, between?), Enumerable(all?, any?,
     collect, detect, each_cons, each_slice, each_with_index, entries,
     enum_cons, enum_slice, enum_with_index, find, find_all, grep,
     include?, inject, map, max, member?, min, partition, reject,
     select, sort, sort_by, to_a, to_set, zip)


Class methods:
--------------
     new


Instance methods:
-----------------
     %, *, +, <<, <=>, ==, =~, [], []=, capitalize, capitalize!,
     casecmp, center, chomp, chomp!, chop, chop!, concat, count, crypt,
     delete, delete!, downcase, downcase!, dump, each, each_byte,
     each_line, empty?, eql?, gsub, gsub!, hash, hex, include?, index,
     initialize_copy, insert, inspect, intern, length, ljust, lstrip,
     lstrip!, match, next, next!, oct, replace, reverse, reverse!,
     rindex, rjust, rstrip, rstrip!, scan, size, slice, slice!, split,
     squeeze, squeeze!, strip, strip!, sub, sub!, succ, succ!, sum,
     swapcase, swapcase!, to_f, to_i, to_s, to_str, to_sym, tr, tr!,
     tr_s, tr_s!, unpack, upcase, upcase!, upto

Um eine Funktion nachzuschlagen, wird dieser mit einem Punkt (.) an den Klassenname angehangen:

% ri Fixnum.to_s
------------------------------------------------------------ Fixnum#to_s
     fix.to_s( base=10 ) -> aString
------------------------------------------------------------------------
     Returns a string containing the representation of _fix_ radix
     _base_ (between 2 and 36).

        12345.to_s       #=> "12345"
        12345.to_s(2)    #=> "11000000111001"
        12345.to_s(8)    #=> "30071"
        12345.to_s(10)   #=> "12345"
        12345.to_s(16)   #=> "3039"
        12345.to_s(36)   #=> "9ix"

Da jedoch Instanzmethoden und Klassenmethoden (vgl. statische Methoden in Java) den gleichen Namen haben können, kann für Instanzmethoden ein Doppelkreuz (#) und Klassenmethoden zwei Doppelpunkte (::) verwendet werden.

Interactive Ruby Shell[Bearbeiten]

Wenn sie Linux/OSX verwenden geben sie irb im Terminal ein.

irb(main):001:0>