# -*- mode: perl6 -*- class WebCoso::File { has Str $.path; has $.lang; has $!contents; multi method new($self: $path) { $self.bless(:$path); } submethod BUILD(Str(Cool) :$!lang, Str(Cool) :$!path) {} 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; } }