Ruby-Programmierung: Arbeits- und Entwicklungsumgebung

Aus Wikibooks

Wechseln zu: Navigation, Suche

Zurück zu Ruby-Programmierung Hauptmenü

Inhaltsverzeichnis

[Bearbeiten] Editoren

Zum Programmieren mit Ruby sind nur der Interpreter und ein einfacher Texteditor nötig. Als Editor eignet sich im Grunde jeder Editor, der Textdateien im Klartext speichern kann. Trotzdem empfiehlt sich ein Editor, der den Programmierer bei seiner Aufgabe unterstützt. Der Editor sollte mindestens die Einrückung beibehalten und die Syntax farbig hervorheben können. Auch hier gibt es eine gute Auswahl an freien Editoren.

[Bearbeiten] Cross-platform

[Bearbeiten] Linux/Unix

[Bearbeiten] OSX

[Bearbeiten] Windows

[Bearbeiten] Integrierte Dokumentation

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.

[Bearbeiten] Interactive Ruby Shell

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

irb(main):001:0>



Wikibooks buchseite.svg Zurück zu Installation | One wikibook.svg Hoch zu Inhaltsverzeichnis | Wikibooks buchseite.svg Vor zu Beispielprogramme
Persönliche Werkzeuge