Sha256: ffb9581d11381638ebcaf15c9058f6bbd1beb6a4fc613e7a4853ef3e1d0883cb
Contents?: true
Size: 519 Bytes
Versions: 157
Compression:
Stored size: 519 Bytes
Contents
unit class Robot:ver<1>; subset Name of Str where * ~~ /^<[A..Z]>**2 <[0..9]>**3$/; has Name $.name = self.reset-name; method reset-name { state Promise:D $promise = start ('AA000'..'ZZ999').pick: *; state Bool:D %record{Name:D}; state Int:D $i = 0; if $promise.status ~~ 'Kept' { ($!name = $promise.result[$i++]) or die 'All names used.'; } else { $!name = ('A'..'Z').roll(2).join ~ (^10).roll(3).join; } self.reset-name if %record{$!name}:exists; %record{$!name} = True; return $!name; }
Version data entries
157 entries across 157 versions & 1 rubygems