Tak modul již mám připraven k použití a tak se podívám co s ním. Nejdříve jej musím importovat
require 'strongtyping' include StrongTyping
Tím jsm si zpřístupnil metody tohoto modulu. Ve svém programu mám metodu initialize
třídy Cons
def initialize(car, cdr) @car = car; @cdr = cdr end
Nyní využiji z připraceného modulu metodu expect
a zkontroluji typy předávaných parametrů car
a cdr
. Od těchto očekávám že jsou to objekty odvozené od třídy SExp
def initialize(car, cdr) expect car, SExp, cdr, SExp @car = car; @cdr = cdr end
Pokud budou mít oba předávané parametry správny typ, nic se nestane a výpočet bude dále pokračovat. Ale pokud aspoň jeden parametr nebude mít správny typ, bude vyvolána výjimka StrongTyping::ArgumentTypeError
.