summary refs log tree commit diff stats
path: root/lib/Crater/Gallery.rakumod
blob: ea92c47195045501438362fe3480e0d0c9d270ee (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Crater::Gallery {
    has IO $.directory is required;

    method list() {
        my @gallery;
        for dir($!directory).sort(*.modified) {
            if .IO.d {

            } elsif .IO.f {
                my Str $ext = .extension.lc;
                if $ext eq "jpg"|"png" {
                    push @gallery, %( :type<img>, :src($_.relative($!directory)) );
                } elsif $ext eq "0" {
                    push @gallery, %( :type<heading>, :text($_.slurp) );
                } elsif $ext eq "txt" {
                    push @gallery, %( :type<text>, :text($_.slurp) );
                } else {
                    warn "Unhandled file :$_";
                }
            }
        }

        return @gallery;
    }
}