diff options
Diffstat (limited to 'lib/WebCoso')
-rw-r--r-- | lib/WebCoso/Doc/Base.pm | 14 | ||||
-rw-r--r-- | lib/WebCoso/Doc/Feed.pm | 4 | ||||
-rw-r--r-- | lib/WebCoso/Doc/Page.pm | 4 | ||||
-rw-r--r-- | lib/WebCoso/Maker.pm | 21 |
4 files changed, 43 insertions, 0 deletions
diff --git a/lib/WebCoso/Doc/Base.pm b/lib/WebCoso/Doc/Base.pm new file mode 100644 index 0000000..1b74427 --- /dev/null +++ b/lib/WebCoso/Doc/Base.pm @@ -0,0 +1,14 @@ +# -*- mode: perl6 -*- +role WebCoso::Doc::Base[$basename] { + has $!wc; + has $.dir; + + has $.tt = Maker::TT.new(:$basename,:$.dir,:$!wc); + has $.rst = Maker::RST.new(:$basename,:$.dir,:$!wc); + has $.xhtml = Maker::XHTML.new(:$basename,:$.dir,:$!wc); + has $.html = Maker::HTML.new(:$basename,:$.dir,:$!wc); + + method make() { + .html.get-files(); + } +} diff --git a/lib/WebCoso/Doc/Feed.pm b/lib/WebCoso/Doc/Feed.pm new file mode 100644 index 0000000..2b36c1e --- /dev/null +++ b/lib/WebCoso/Doc/Feed.pm @@ -0,0 +1,4 @@ +# -*- mode: perl6 -*- +use WebCoso::Doc::Base; +class WebCoso::Doc::Feed does WebCoso::Doc::Base['feed'] { +} diff --git a/lib/WebCoso/Doc/Page.pm b/lib/WebCoso/Doc/Page.pm new file mode 100644 index 0000000..be92d8c --- /dev/null +++ b/lib/WebCoso/Doc/Page.pm @@ -0,0 +1,4 @@ +# -*- mode: perl6 -*- +use WebCoso::Doc::Base; +class WebCoso::Doc::Page does WebCoso::Doc::Base['document'] { +} diff --git a/lib/WebCoso/Maker.pm b/lib/WebCoso/Maker.pm new file mode 100644 index 0000000..e9564fa --- /dev/null +++ b/lib/WebCoso/Maker.pm @@ -0,0 +1,21 @@ +# -*- mode: perl6 -*- +role Maker[:$from,:$to] { + has $!wc; + has $.basename; + has $.dir; + + method process-contents(:$from-contents) { ... } + + method get-files() { + my %dsts = $!wc.get-files($.dir,$.basename,$from); + my %srcs = $!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 = .process-contents($src.slurp); + %dsts{$lang} = $!wc.put-file($.dir,$.basename,$lang,$to, + $processed-contents) + } + } +} |