# -*- mode: perl6 -*- 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; } }