|
|||
irb
läuft von der Komandozeile aus.
irb [irb-options][ruby_script][options] |
Kommandozeilen-Optionen für irb
|
~/.irbrc
, .irbrc
, irb.rc
,
_irbrc
und $irbrc
.
Innerhalb der Initialisierungs-Datei kann man jeglichen Ruby-Code laufen lassen.
Man kann desweiteren jeden Konfigurierungs-Wert setzen, der in Tabelle B.2 auf Seite
524 angegeben ist.
irb Konfigurierung-Werte
|
IRB.conf[:IRB_RC]
auf ein Proc
-Objekt zu setzen. Dann wird
diese Prozedur jedes Mal aufgerufen, wenn der irb-Kontext sich ändert und bekommt
den neuen Kontext als Parametr mit. Man kann das nutzen, um die Konfiguration
abhängig vom Kontext dynamisch zu ändern.
exit, quit, irb_exit
cb
die Bindungen verändert hat (siehe unten), wird dieser Bindungs-Modus verlassen.
conf, irb_context
conf
bewirken.
conf.back_trace_limit n
conf.debug_level = N
conf.ignore_eof = true/false
conf.ignore_sigint= true/false
conf.inf_ruby_mode = true/false
true
, ändert den Prompt und schaltet den Readline-Support aus,
womit Ruby im inf-ruby-mode
arbeiten kann .
[Im inf-ruby-mode
kann man im Emacs beim Editieren mit
Ruby interagieren. Siehe die Datei inf_ruby.el
im
misc
-Verzeichnis der Distribution.]
Der Default-Wert ist false.
conf.inspect_mode = true/false/nil
true |
Zeige Inspect an (default). |
false |
Zeige to_s an. |
nil |
Inspect-Modus für Nicht-Math-Modus, Nicht-Inspect-Modus für Math-Modus. |
conf.irb_level
cb
).
conf.math_mode
conf.use_loader = true/false
load
/require
.
conf.prompt_c
conf.prompt_i
conf.prompt_s
conf.rc = true/false
~/.irbrc
benutzt werden soll.
conf.use_prompt = true/false
conf.use_readline = true/false/nil
true |
Benutze Readline. |
false |
Benutze Readline nicht. |
nil |
Benuzte Readline außer im inf-ruby-mode (default). |
conf.verbose=true/false
cb, irb_change_binding [obj]
irb [obj]
jobs, irb_jobs
fg n, irb_fg n
irb-Unter-Session-Nummer |
thread id |
irb-Objekt |
self (das obj, das eine spezeille Unter-Session gestartet hat) |
kill n, irb_kill n
irb_fg
beschriebenen
Werte sein.
IRB.conf[:PROMPT] |
.irbrc
):
IRB.conf[:PROMPT][:MY_PROMPT] = { # name of prompt mode :PROMPT_I => "...", # normal prompt :PROMPT_S => "...", # prompt for continuing strings :PROMPT_C => "...", # prompt for continuing statement :RETURN => " ==>%s\n" # format to return value } |
% irb --prompt my-prompt
Oder man setzt den folgenden Konfigurations-Wert:
IRB.conf[:PROMPT_MODE] = :MY_PROMPT |
PROMPT_I
, PROMPT_S
und PROMPT_C
geben das Format für jeden dieser Prompt-Strings an. Innerhalb des Prompt-Formats
kann es die folgenden Flags geben, die den angegebenen Text erzeugen:
Flag | Beschreibung | |||||||
%N |
Aktuelles Komando. | |||||||
%m |
to_s des Haupt-Objekts (self). |
|||||||
%M |
inspect des Haupt-Objekts (self). |
|||||||
%l |
Begrenzungs-Zeichen. In Strings, die über eine Zeile hinausgehen, zeigt
%l den Typ des Begrenzers am Anfang des Strings an, damit man
weiß, wie man ihn beenden soll. Der Begrenzer ist einer von
" , ' , / , ] oder ` . |
|||||||
%ni |
Level der Einrückung. Die optionale Zahl n gibt die Breite für printf an,
wie beiprintf("%nd") . |
|||||||
%nn |
Aktuelle Zeilen-Nummer (n wie beim Level der Einrückung). | |||||||
%% |
Ein literales Prozent-Zeichen. | |||||||
IRB.conf[:PROMPT_MODE][:DEFAULT] = { :PROMPT_I => "%N(%m):%03n:%i> ", :PROMPT_S => "%N(%m):%03n:%i%l ", :PROMPT_C => "%N(%m):%03n:%i* ", :RETURN => "%s\n" } |
eval "a = 0" a |
prog.rb:2: undefined local variable or method `a' |
irb(main):001:0> eval "a = 0" 0 irb(main):002:0> a 0In irb wurde die Zuweisung ausgeführt, bevor die zweite Zeile betrachtet wird, deshalb wird ``a'' zutreffend als lokale Variable erkannt. Wenn man das Ruby-Verhalten genauer abbilden will, kann man diese Anweisungen in ein
begin
/end
-Paar setzen.
irb(main):001:0> begin irb(main):002:1* eval "a = 0" irb(main):003:1> a irb(main):004:1> end NameError: undefined local variable or method `a' (irb):3:in `irb_binding'
rtags
ist ein Kommando, mit dem eine TAGS
-Datei für entweder
den emacs- oder den vi-Editor erzeugt werden kann.
rtags [-vi][files]... |
TAGS
-Datei passend für den emacs erzeugt (siehe
etags.el). Die -vi
-Option erzeugt eine TAGS
-Datei für den vi.
rtags muss genauso installiert werden wie irb (das heißt, man muss irb im
Bibliotheks-Pfad installieren und einen Link von
irb/rtags.rb
nach bin/rtags
setzen).
require "irb/xmp" xmp <<END artist = "Doc Severinsen" artist END |
artist = "Doc Severinsen" ==>"Doc Severinsen" artist ==>"Doc Severinsen" |
require "irb/xmp" x = XMP.new x.puts <<END artist = "Louis Prima" END x.puts <<END artist END |
artist = "Louis Prima" ==>"Louis Prima" artist ==>"Louis Prima" |
xmp code_string, abinding XMP.new(abinding) |
IRB::Frame
-Klasse repräsentiert den Stack des Interpreters
und erlaubt den einfachen Zugriff auf die effektive
Bindungs
-Umgebung auf verschiedenen Stack-Leveln.
IRB::Frame.top(n = 0) |
Liefert ein Binding
für den n-ten Kontext von oben. Der 0-te Kontext ist der oberste, zuletzt benutzte
Frame. |
|||||||
IRB::Frame.bottom(n = 0) |
Liefert ein Binding für den n-ten Kontext von unten.
Der 0-te Kontext ist der unterste, ursprünglich Frame. |
|||||||
IRB::Frame.sender |
Liefert das Objekt (den Absender), das die aktuelle Methode aufgerufen hat. | |||||||
require 'irb/frame' def outie b = IRB::Frame.top(1) eval "p my_local", b end def innie my_local = 102.7 outie end innie |
102.7 |