use WebCoso::Maker::TT;
use WebCoso::Maker::RST;
use WebCoso::Maker::XHTML;
use WebCoso::Maker::HTML;
class WebCoso::Doc::Base {
has $!wc;
has $.dir;
has $.tt;
has $.rst;
has $.xhtml;
has $.html;
method basename() { ... }
submethod BUILD(:$!wc,:$!dir) {
my $basename = self.basename;
$!tt = WebCoso::Maker::TT.new(:$basename,:$!dir,:$!wc);
$!rst = WebCoso::Maker::RST.new(:$basename,:$!dir,:$!wc);
$!xhtml = WebCoso::Maker::XHTML.new(:$basename,:$!dir,:$!wc);
$!html = WebCoso::Maker::HTML.new(:$basename,:$!dir,:$!wc);
}
method make-by-ext($ext) {
say "Doc::Base($.dir/$.basename)::make-by-ext($ext)";
given $ext {
when 'rest.txt' { return $.tt.make() }
when 'du.xml' { return $.rst.make() }
when 'xhtml' { return $.xhtml.make() }
when 'html' { return $.html.make() }
}
}
method make() {
say "Doc::Base($.dir/$.basename)::make";
$.make-by-ext('html');
}
}