Ruby-Programmierung: Arbeits- und Entwicklungsumgebung
Aus Wikibooks
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>