Metacircus Howard Yeh

I wrote a simple love letter generator with Rantly.

require 'rantly/silly'
# generate a love letter with 3 paragraphs
Rantly::Silly.love_letter(3)

And get something like,

my unbelievable lighthouse:

as a incredible fearful captive, that my heart
aches is never quite enough for you, my shiny
desire. when my loin burns, my lighthouse, i feel
the need to think of you, but this is not because
my soul is awed, but rather a symptom of my being
your ultimate unremarkable servant. do not think
that saying 'my spirit wanders and wonders'
suffices to show the depth of how my spine pines,
because more than that, we would read poetry to
each other with shiny joy 

because you are my beloved, and i am your
burning menial captive, no, rather your ultimate
undeserving captive, i believe we would hug with
glittering joy. because you are my beacon, and i
am your ultimate insignificant captive, no, rather
your unbelievable unremarkable lapdog, i hope to
god we would whisper empty nothings into each
others' ears with joyous joy. because you are my
dove, and i am your incredible undeserving
servant, no, rather your ultimate insignificant
captive, i will that we would nurture joyous
angels, so the world becomes all the more
glittering..

do not think that saying 'my loin burns' suffices
to show the depth of how my spirit wanders and
wonders, because more than that, we would nurture
holy angels, so you, my virgin goddess, would
continue to live.. when my heart aches, my
existential solution, i feel the need to dream of
us together, but this is not because my soul is
awed, but rather a symptom of my being your most
unremarkable slave.

your ultimate insignificant lapdog

ps: every once in a while i dream of us together,
and hope that we would whisper empty nothings into
each others' ears with shiny calm 

You can see the source here

What I think is neat is that the love generator is a DSL built on top of Rant’s core. You get an extended instance of the DSL “interpreter” like so,

r = Rantly.new.extend(Rantly::Silly::Love)

and use it to generate a randomly sized array of pedestal labels:

r.value {array(integer(0..5)){pedestal_label}}
# => ["virgin goddess", "desire", "lighthouse"]
Comments