Interactive Ruby Shell

A röviden csak IRB, egy ún. REPL eszköz, aminek a segítségével könnyen és gyorsan lehet ruby kódot tesztelni, kísérletezni a nyelvvel. A REPL lényege, hogy egy végtelen ciklus során a következő ismétlődik: felhasználói parancs beolvasása, értelmezés, eredmény kiírása. Az IRB a telepítés során már fel is kerül a gépedre, így egy terminálban az "irb" paranccsal elindítható.

Tartalom

Ajánlott olvasmányok

Futtatás parancssorbóltartalom

Az "irb" parancs a következő formátumban indítható el. A [] elhagyható részeket jelöl. A []-eket nem kell begépelni, csak egy vagy több szóközzel elválasztott opciót.

irb [irb-opciok] [ruby_szkript_fajl] [opciok]

A következő táblázatban láthatóak a megadható opciók. A dőlt betűvel szedett szavakat (pl. modul-nev) le kell cserélni egy konkrét értékre.

OpcióLeírás
-f Az .irbrc fájl olvasásának elhagyása
-m Matematikai mód - törtek és mátrixok elérhetőek lesznek
-d Hibakeresés bekapcsolása (%DEBUG%=true)
-r modul-nev A megnevezett modul az induláskor betöltésre kerül
--inspect Az "inspect" használata kimenethez. Alapértelmett, kivéve matek módban
--noinspect Az "inspect" használatának tiltása kimenethez.
--readline A Readline kiegészítő használata. Ez a parancs előzményekhez kell.
--noreadline A Readline kiegészítő tiltása.
--prompt mod A parancssor (beviteli) módot változtatja.
Módok: "default", "simple", "xmp", "inf-ruby"
--prompt-mode mod Ugyanaz mint a --prompt
--inf-ruby Az IRB inf-ruby parancssoros módban indul, és a --readline tiltásra kerül.
--simple-prompt Ugyanazt a hatást éri el mint: "--prompt simple"
--noprompt Parancssor elhagyása.
--tracer Részletek megjelenítése a parancsok végrehajtását illetően.
--back-trace-limit n Hiba visszakereső sorok maximális (n) számát limitálja. Alapérték: 16
--irb_debug n A hibakereső szintjét (n) befolyásolja. Ez csak az irb fejlesztésekor hasznos.
-v IRB verzió megjelenítése
--version IRB verzió megjelenítése

Például ha azt szeretnénk, hogy:

  • Az .irbrc fájl ne legyen betöltve
  • A parancssor egyszerű legyen
  • Egy általunk írt forrás (hasznos.rb) legyen betöltve
  • A hasznos.rb-ből pedig a Matek nevű modul is legyen betöltve

A következő módon kéne elindítani az IRB-t:

irb -f -r Matek hasznos.rb --simple-prompt

Leggyakrabban az irb-t simán opciók nélkül fogod futtatni, de nem árt tisztában lenni a lehetséges opciókkal amik befolyásolhatják az irb működését.

Inicializációs fájltartalom

Az IRB képes egy indító fájlból konfigurációs beállításokat, valamint ruby parancsokat betölteni. Ezek a beállítások hatással lesznek a teljes IRB munkamentre, a ruby parancsok pedig automatikusan végrehajtódnak az indulás során.

Alapértelmezés szerint az IRB a következő fájlokat fogja keresni erre a célra - és ha valamelyiket megtalálja, az be lesz töltve. A soron következőket már nem fogja betölteni.

  • .irbrc (a telepítési mappában)
  • .irbrc (az aktuális mappában)
  • irb.rc
  • _irbrc
  • %irbrc% (környezeti változóként)

A Windows-ban érdemes az irb.rc vagy _irbrc fájlnév használata, mivel a fájlnév nélküli, csak kiterjesztést tartalmazó fájlok nem készíthetők könnyedén. Ha mégis az .irbrc mellett döntesz, használhatod a Total Commander, vagy Notepad++ programokat a fájl lementéséhez.

A következő konfigurációs lehetőségek lehetnek az inicializációs fájlban. A | jellel elválasztott lehetőségek közül csak az egyiket kell választani, pl.: true | false (igaz, hamis)

ParancsLeírás
IRB.conf[:IRB_NAME] = "irb" Az IRB név felülírása valami másra
IRB.conf[:USE_TRACER] = true|false Részletek megjelenítése
IRB.conf[:IGNORE_SIGINT] = true|false A SIGINT megszakítás figyelmen kívül hagyása (normál esetben CTRL+C, de windowsban nem lehet küldeni). Ennek hatására csak az "exit" paranccsal lehet kilépni.
IRB.conf[:INSPECT_MODE] = nil|:pp|:yaml|:marshal A vizsgáló ilyen formátumban jeleníti meg az információkat. A nil az alapértelmezett formátumot eredményezi.
IRB.conf[:BACK_TRACE_LIMIT] = 16 Hiba visszakereső sorok maximális (n) számát limitálja. Alapérték: 16
IRB.conf[:USE_READLINE] = nil|modul_nev A sorolvasó nil-el kikapcsolható, vagy lecserélhető egy modul megnevezésével (pl. "Readline").
IRB.conf[:PROMPT_MODE] = :DEFAULT|:SIMPLE|:XMP|:INF_RUBY A parancssor (beviteli) módot változtatja.
IRB.conf[:DEBUG_LEVEL] = 0 A hibakereső szintjét befolyásolja.
IRB.conf[:MATH_MODE] = true|false Matematikai mód - törtek és mátrixok elérhetőek lesznek
IRB.conf[:USE_LOADER] = true|false Forrás betöltő engedélyezése/tiltása.
IRB.conf[:IGNORE_EOF] = true|false Fájl vége ASCII karakter (EOF) figyelmen kívül hagyása.
IRB.conf[:IRB_RC] = nil Inicializációs kódrészlet adható meg egy Proc objektum képében. Érdekessége ennek, hogy eleve egy ilyen fájlban vagyunk, tehát akár lehet láncolni is az ilyen típusú fájlokat.
IRB.conf[:VERBOSE] = true|false Részletes üzenetek bekapcsolása

Parancsoktartalom

Az IRB parancssorában bármilyen Ruby kifejezést be lehet gépelni, majd az ENTER leütése után az végrehajtódik, és láthatod is az eredményt.

Érdemes megjegyezni, hogy a Ruby nyelvben minden kifejezésnek van visszatérési értéke. Így például egy konstans egész számnak a szám maga, a true konstansnak a true és így tovább.

Ha egy többsoros kifejezést írsz, például egy metódust, akkor az első sor bevitele után az IRB nem hajtja a sort azonnal végre, hanem elkezdi számozni a sorokat, és várja a kifejezés lezárását. A korábban bevitt metódusok a program részeivé válnak, így azokat elég meghívni, nem kell őket újra meg újra begépelni.

Vannak azonban IRB specifikus parancsok is, amik különböző hatást váltanak ki. A | jellel elválaszott parancsok szinonímák, elég egyet megadni.

ParancsLeírás
exit | quit | irb_exit Kilépés az adott IRB munkamenetből.
conf | irb_context Megjeleníti az aktuális konfigurációt. A konfiguráció módosításához a conf objektumot kell módosítani.
cb | irb_change_binding [objektum] Létrehoz és elindít egy új kötést, aminek saját hatásköre van helyi változók számára. Ha objektum is meg van adva, akkor az lesz a self.
irb [objektum] Elindít egy irb almunkamentet. Ha objektum is meg van adva, akkor az lesz a self.
jobs | irb_jobs Kilistázza az irb almunkameneteket.
fg n | irb_fg n Átváltás a megadott (n) irb almunkamenetre. Az n lehet egy irb munkamenet szám, thread id, irb objektum, vagy self (az az objektum ami a jelenlegi munkamenetet nyitotta)
kill n | irb_kill n Leállít egy irb almunkamenetet. Az n lehetséges értékei megegyezik az fg paranccsal.

A conf objektum megyezik az inicializációs fájlban lévővel, így a táblázatban ezek nincsenek külön feltüntetve. pl.: conf.inspect_mode = true | false

Parancssor testreszabásatartalom

Az IRB alapértelmezett parancssora a kezdeti lépések megtételének elősegítésére lett kitalálva:

irb(main):001:0>

De, a parancssor szövege, különböző alkotóelemekből egyénre szabható. A lehetséges kinézetek a következő hash típusú változóban vannak tárolva:

IRB.conf[:PROMPT]

Tehát saját kinézet hozzáadásához először is egy új elemet kell beszúrni ebbe a változóba. Ezt a következőképpen lehet elérni:

IRB.conf[:PROMPT][:SAJAT_PROMPT] = { # a prompt neve
:PROMPT_I => "...",                # szokasos prompt
:PROMPT_S => "...",                # prompt folytatólagos string-hez
:PROMPT_C => "...",                # prompt folytatólagos kifejezéshez
:RETURN => "    ==>%s\n"           # visszatérési értékek formátuma
}

A # karakter után lévő szövegek csak megjegyzések a ruby-ban. Nincsenek hatással a programra.

Az új kinézetet az IRB lementi. Így tehát az IRB indító opciókkal ki is lehet választani:

irb --prompt sajat-prompt

A konfigurációs fájlban pedig így lehet megnevezni:

IRB.conf[:PROMPT_MODE] = :SAJAT_PROMPT

A korábbi példán szereplő "..." részek szöveges sémák, oda tetszőleges szöveg beírható. Egyes hivatkozások beszúra esetén, azok futásidőben lecserélésre kerülnek valamilyen dinamikusan lekérdezett értékkel:

HivatkozásCsere erre
%N Jelenlegi parancs
%m "self.to_s" visszatérési értéke
%M "self.inspect" visszatérési értéke
%l Elválasztó típusa. Több soron folytatódó string-ek és kifejezések esetén sor eleji indikátor karakter.
%ni Sor behúzás (sor eleji szóköz) mértéke. Az első n opcionális, a mértékre lehet lecserélni.
%nn Jelenlegi sor száma. Az első n-t a mértékre lehet lecserélni, pl: %03n
%% Egyetlen százalékjel "%"

Például, ha az alapértelmezett parancssort szeretnénk lemásolni, azt így tehetnénk meg:

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"
}

Megkötésektartalom

Az IRB működési elvéből kifolyólag az eval metódussal bevezetésre kerülő változók azonnal hozzáadódnak a jelenlegi látókörhöz. Míg egy ruby forrás futtatása esetén az értelmező hibát észlel (a változó nincs definiálva), addig az IRB-ben ez teljesen korrekt:

eval "a = 5"
puts a

Ha követni szeretnéd a ruby értelmező viselkedését, elég csupán az eval hívást egy begin-end blokkba tenni. Ekkor az IRB is dobni fogja a hibát:

begin
  eval "a = 5"
  puts a
end
NameError: undefined local variable or method `a'

Zene

Google keresés

Váltó

Digitális Táregység


Számrendszer

#=

IMDb Keresés

Kód

Karakter

Szín

Szín kódtábla

Webmaster: GoobeMaster
Érvényes XHTML és CSS
Minden jog fenntartva! ® 2010 - 2017
Jogtulajdonos: United Voxels Ltd. (United Kingdom)

Check Google Page Rank

Technikai háttér: