shrub/gen/hood/invite.hoon
2018-05-03 10:51:39 -07:00

54 lines
1.6 KiB
Plaintext

:: Womb: allocate urbits to the holder of an email
::
:::: /hoon/invite/hood/gen
::
/? 310
::
::::
::
/+ hood-womb
=* invite invite:hood-womb
=* reference reference:hood-womb
|%
++ plural
|= {a/@u b/tape} ^+ b
?: =(1 a) "one {b}"
=; n/tape "{n} {b}s"
~| plural-stub+a ::TODO expand
%- trip
%+ snag a ^~
;: weld
/no/''/two/three/four/five/six/seven/eight/nine/ten
/eleven/twelve/thirteen/fourteen/fifteen/sixteen
/seventeen/eighteen/nineteen/twenty/twenty-one
/twenty-two/twenty-three/twenty-four/twenty-five
/twenty-six/twenty-seven/twenty-eight/twenty-nine
/thirty/thirty-one/thirty-two/thirty-three
/thirty-four/thirty-five/thirty-six/thirty-seven
/thirty-eight/thirty-nine/forty/forty-one/forty-two
/forty-three/forty-four/forty-five/forty-six
/forty-seven/forty-eight/forty-nine/fifty/fifty-one
/fifty-two/fifty-three/fifty-four/fifty-five
/fifty-six/fifty-seven/fifty-eight/fifty-nine/sixty
/sixty-one/sixty-two/sixty-three/sixty-four
==
::
++ type $%({$planets planets/@u} {$stars stars/@u})
--
:- %say
|= $: {now/@da eny/@uvJ bec/beak}
{{who/@t etc/$@(~ {typ/type ~})} ref/(unit (each ship mail:hood-womb))}
==
?~ etc $(etc ~[planets+2])
:- %womb-invite
^- {cord reference invite}
=+ inv=(scot %uv (end 7 1 eny))
=; d/[planets=@u stars=@u inf=tape]
[inv ref [who planets.d stars.d "Your invite for {inf.d}: {(trip inv)}" ~]]
::
?: =(0 +.typ.etc) ~|(%empty-invite !!)
?- -.typ.etc
$stars [planets=0 stars.typ.etc (plural stars.typ.etc "star")]
$planets [planets.typ.etc stars=0 (plural planets.typ.etc "planet")]
==