section id="strongtyping" xreflabel="StrongTyping" condition="author"
Odkazy a zdroje:
StrongTyping is a little ruby module that provides a convenient way for ruby methods to check parameter types, and also dynamically query them. In addition to merely checking a single set of types, it allows easy overloading based on a number of different templates.
Mějme funkci
def foo(a, b) ... endNow let's say this function wants 'a' to always be a String, and 'b' should be Numeric:
require 'strongtyping' include StrongTyping def foo(a, b) expect(a, String, b, Numeric) ... endOverloading is just as easy:
require 'strongtyping' include StrongTyping def bar(*args) overload(args, String, String) { | s1, s2 | ... return } overload(args, String, Integer) { | s, i | ... return } overload_default args end
Uvádím popis modulu strongtyping
v kapitole Extrémní programování protože se domnívám že má k této tématice nejblíž.
Ruby je jazyk s dynamickými typy. To znamená že typ není svázán s proměnnou/parametrem. U předávaných parametrů tedy není typ znám a když předáme metodě takový typ který není logikou zpracování očekáván nastane výjimka způsobená chybou při práci s hodnotou. Modul StrongTyping
nám dává nástroj pro snadnou kontrolu typu předávané hodnoty.