# -*- mode: perl6 -*- class WebCoso::File { has Str $.path; has $.lang; has $!contents; multi method new($self: $path) { $self.bless(:$path); } submethod BUILD(:$lang, Str(Cool) :$!path) { $!lang = $lang.Str if $lang.defined; } multi method contents() { return $!contents //= $.parse(); } multi method contents($new_contents) { return $!contents = $.serialise($new_contents); } method parse() { return $.path.IO.slurp(); } method serialise($contents) { $.path.IO.spurt($contents); return $contents; } method modified() { return $.path.IO.modified; } }