Sha256: 112317af825445038ffbd3bb431c9322159426feca1006ba255897b62e29c980

Contents?: true

Size: 694 Bytes

Versions: 35

Compression:

Stored size: 694 Bytes

Contents

unit module SpaceAge:ver<1>;

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

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

my package EXPORT::DEFAULT {
  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 {
    OUR::{$planet} := EVAL 'class :: does Planet {
      my $.orbital-period = calculate-orbital-period $relative
    }';
  }
}

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

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
trackler-2.1.0.7 tracks/perl6/exercises/space-age/Example.pm
trackler-2.1.0.6 tracks/perl6/exercises/space-age/Example.pm
trackler-2.1.0.5 tracks/perl6/exercises/space-age/Example.pm
trackler-2.1.0.4 tracks/perl6/exercises/space-age/Example.pm
trackler-2.1.0.3 tracks/perl6/exercises/space-age/Example.pm
trackler-2.1.0.2 tracks/perl6/exercises/space-age/Example.pm
trackler-2.1.0.1 tracks/perl6/exercises/space-age/Example.pm
trackler-2.1.0.0 tracks/perl6/exercises/space-age/Example.pm
trackler-2.0.8.55 tracks/perl6/exercises/space-age/Example.pm
trackler-2.0.8.54 tracks/perl6/exercises/space-age/Example.pm
trackler-2.0.8.53 tracks/perl6/exercises/space-age/Example.pm
trackler-2.0.8.52 tracks/perl6/exercises/space-age/Example.pm
trackler-2.0.8.51 tracks/perl6/exercises/space-age/Example.pm
trackler-2.0.8.50 tracks/perl6/exercises/space-age/Example.pm
trackler-2.0.8.49 tracks/perl6/exercises/space-age/Example.pm
trackler-2.0.8.48 tracks/perl6/exercises/space-age/Example.pm
trackler-2.0.8.47 tracks/perl6/exercises/space-age/Example.pm
trackler-2.0.8.46 tracks/perl6/exercises/space-age/Example.pm
trackler-2.0.8.45 tracks/perl6/exercises/space-age/Example.pm
trackler-2.0.8.44 tracks/perl6/exercises/space-age/Example.pm