summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/WebCoso.pm31
1 files changed, 19 insertions, 12 deletions
diff --git a/lib/WebCoso.pm b/lib/WebCoso.pm
index 5202745..db60f8f 100644
--- a/lib/WebCoso.pm
+++ b/lib/WebCoso.pm
@@ -1,4 +1,7 @@
# -*- mode: perl6 -*-
+use WebCoso::Doc::Page;
+use WebCoso::Doc::Feed;
+
class WebCoso {
has $.srcdir;
has $.destdir;
@@ -6,31 +9,35 @@ class WebCoso {
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]
+ gather {
+ for $.srcdir,$!tmpdir -> $base {
+ my @files = try {
+ CATCH {
+ when X::IO { }
+ }
+ $base.child($dir).dir(
+ test => /$basename \. .+? \. $ext/,
+ );
+ } // ();
+ take $_ for map {
+ (.basename ~~ /$basename \. (.+?) \. $ext/)[0]
=>
$_
- } @files;
+ }, @files;
}
}
- return %files;
}
method put-file($dir,$basename,$lang,$ext,$contents) {
- $!tmpdir.child($dir).child("${basename}.${lang}.${ext}").spurt($contents);
+ $!tmpdir.child($dir).child("{$basename}.{$lang}.{$ext}").spurt($contents);
return;
}
method new-doc(:$dir) {
- @!docs.push(Document.new(:$dir,wc=>self);
+ @!docs.push(WebCoso::Doc::Page.new(:$dir,wc=>self));
}
method new-feed(:$dir) {
- @!docs.push(Feed.new(:$dir,wc=>self);
+ @!docs.push(WebCoso::Doc::Feed.new(:$dir,wc=>self));
}
method run() {
.make() for @!docs;