role WebCoso::Maker[$from,$to] {
has $.wc;
has $.basename;
has $.dir;
method process-contents($from-contents) { ... }
method get-files() {
my %srcs = $.wc.get-files($.dir,$.basename,$from);
my %dsts = $.wc.get-files($.dir,$.basename,$to);
for %srcs.keys -> $lang {
my $src = %srcs{$lang};
next if %dsts{$lang} and
%dsts{$lang}.modified after $src.modified;
my $processed-contents = self.process-contents($src.slurp);
%dsts{$lang} = $.wc.put-file($.dir,$.basename,$lang,$to,
$processed-contents)
}
return %dsts;
}
}