diff options
| -rw-r--r-- | src/guprecords.raku | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/guprecords.raku b/src/guprecords.raku index 1d8e6dc..3d0ccd1 100644 --- a/src/guprecords.raku +++ b/src/guprecords.raku @@ -47,7 +47,7 @@ class Aggregate { } class Aggregator { - has %.aggregates = { hostname => {}, os => {}, uname => {}, os-major => {} } + has Hash %.aggregates = { hostname => {}, os => {}, uname => {}, os-major => {} } method add-file(IO::Path:D :$file is readonly) { my Str $hostname = $file.IO.basename.split('.').first; @@ -73,17 +73,11 @@ class Aggregator { } } -class Reporter { - has %.aggregates is required; +role Sorting { + has Hash %.aggregates is required; has Cat $.cat is required; has SubCat $.sub-cat is required; - method report { - for self.sort-by($!sub-cat) -> $what { - $what.Str.say; - } - } - multi method sort-by('uptime') { self.sort-by: *.uptime } multi method sort-by('downtime') { self.sort-by: *.downtime } multi method sort-by('lifespan') { self.sort-by: *.lifespan } @@ -94,6 +88,14 @@ class Reporter { } } +class Reporter does Sorting { + method report { + for self.sort-by($!sub-cat) -> $what { + $what.Str.say; + } + } +} + sub MAIN( Str :$stats-dir is required, #= The uptimed raw record input dir. Cat :$cat = 'hostname'; #= Category, one of hostname, os os-major and uname. |
