class WebCoso {
has $.srcdir;
has $.destdir;
has $!tmpdir = $*SPEC.tmpdir.child('abcde');
has @!docs;
method get-files($dir,$basename,$ext) {
my %files = gather {
for my $base ($.srcdir,$!tmpdir) {
my @files = $base.child($dir).dir(
test => /$basename \. .+? \. $ext/,
);
take map {
(.name ~~ /$basename \. (.+?) \. $ext/)[0]
=>
$_
} @files;
}
}
return %files;
}
method put-file($dir,$basename,$lang,$ext,$contents) {
$!tmpdir.child($dir).child("${basename}.${lang}.${ext}").spurt($contents);
return;
}
method new-doc(:$dir) {
@!docs.push(Document.new(:$dir,wc=>self);
}
method new-feed(:$dir) {
@!docs.push(Feed.new(:$dir,wc=>self);
}
method run() {
.make() for @!docs;
}
}