Sha256: 8c7a27fd88afeb5f43b40f0ff7f307bcb7d7a5a0461b214a82861cd78f28f4c0

Contents?: true

Size: 725 Bytes

Versions: 83

Compression:

Stored size: 725 Bytes

Contents

unit module SpaceAge:ver<2>;

role Planet {
  method age-on ($seconds) {
    ($seconds / self.orbital-period).round(0.01);
  }
}

class Earth does Planet is export {
  my $.orbital-period = 31557600;
}

my %planets = (
  :Mercury(0.2408467),
  :Venus(0.61519726),
  :Mars(1.8808158),
  :Jupiter(11.862615),
  :Saturn(29.447498),
  :Uranus(84.016846),
  :Neptune(164.79132),
);
for %planets.kv -> $planet, $relative {
  use MONKEY-SEE-NO-EVAL;
  OUR::EXPORT::ALL::{$planet} := OUR::EXPORT::DEFAULT::{$planet} := EVAL "class $planet does Planet is export " ~
  '{ my $.orbital-period = calculate-orbital-period $relative }';
}

sub calculate-orbital-period ($relative-to-earth) {
  Earth.orbital-period * $relative-to-earth;
}

Version data entries

83 entries across 83 versions & 1 rubygems

Version Path
trackler-2.2.1.139 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.138 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.137 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.136 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.135 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.134 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.133 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.132 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.131 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.130 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.129 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.128 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.127 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.126 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.125 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.124 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.123 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.122 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.121 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6
trackler-2.2.1.120 tracks/perl6/exercises/space-age/.meta/solutions/SpaceAge.pm6