DSpec / Templates + Delegates

Ruun ruunhb at googlemail.com
Tue Mar 30 04:58:39 PDT 2010


Hi everyone,

for my coming projects i was searching for a BDD-Framework similar like 
Ruby/RSpec or Scala/ScalaTest.
Unfortanetly, i didn't find either an implementation on dsource.org or 
something about here on the mailing list (Especially
for D2).

After looking into the old source of Tango-based DUnit, some postings 
here on the mailing list about assertions / unittests, i started a small 
try with Phobos D2 and i'm currently really amazed how clear the API can 
be by using templates + delegates + alias.

If someone is interested, i recently hosted a project DSpec on 
dsource.org and provide an experimantel example there
http://www.dsource.org/projects/dspec/
(Current source can be also found)

I'm not sure if something similar is possible in D1 and honestly it's 
the first time i'm currently working with Templates in D so intensely.
But after seeing such possibilities, i'm so impressed about D2.

void each(alias array, T : T[] = typeof(array))(void delegate(T item) dg) {
   foreach(T i; array)
     dg(i);
}

   int[] array = [1, 2, 3, 4];
   int b = 10;

   each!(array) = (int item) {
     writefln("%d", item + b);
   };

This is almost looking like an iteration in Ruby and Scala!
(I hope i'm not abusing the alias parameter in templates)

Chris

-- 
ruunhb at googlemail.com
http://ruuns.de/blog/





More information about the Digitalmars-d mailing list