Ruby

Významná časť projektu je napísaná v jazyku Ruby. Konkrétne sa používa jeho implementácia JRuby, ktorá umožňuje jednoduché používanie Java tried. Okrem skriptov, ktoré agent spúšťa sám u neho môže ľubovolný Ruby kód vykonať test framework odoslaním súboru cez TFTP, viď príslušná sekcia v dokumente Komunikácia agenta s test frameworkom.

V Ruby sú implementované high skilly popísané v časti Plánovanie_a_vykonávanie_pohybov, nastavenia čiastočne popísané v časti Command_line_argumenty, registrácia observerov v súbore dependencies.rb, popísaná v časti Hlavný_cyklus_agenta a plánovače. Skripty v scripts/extensions registrujú niektoré globálne premenné a syntaktické skratky pre zjednodušenie (aj keď niekedy za cenu prehľadnosti) písania skriptov.

Skripty sú spravovné triedou Script'', ktorá vykonáva zadaný kód v metóde execute. V súčasnosti sú všetky volané zo skriptu scripts/boot.rb, ktorá sa vykoná po zavolaní ScriptBoot.boot''. Táto istá metóda sa volá aj pri preplánovaní.

Plánovacie skripty

Pôvodne bolo v pláne implementovať zložitejšiu metódu plánovania založenú na postupoch z umelej inteligencie. Agent však nebol v takom stave, aby niečo také bolo reálne možné - neobsahoval dostatok jednotlivých vyšších pohybov, ani sa tieto nedali jednoducho implementovať tak, aby vracali určité výsledky. Preto je plánovanie zatiaľ vykonávané spustením kódu uloženého v Ruby triedach umiestnených v scripts/plan. Plánovače sú popísané v dokumente Plánovače.

Pre podporu preplánovania by mal v príslušnom Ruby súbore po definícii triedy kód ktorý nejakým spôsobom resetne plánovač. Tento kód sa totiž spustí vždy pri vykonaní celého skriptu, čo sa deje práve pri preplánovaní.