Love poem in code for a Grooms Cake

Phrogz wrote:

  

    class Person
      attr_accessor :name
      def initialize(name)
         @name=name
      end
      def love(otherPerson)
         puts self.name+" loves "+otherPerson.name+"\n"
      end
    end

    I=Person.new("Jen Switalski")
    you=Person.new("a programmer")
    while true
      I.love(you)
    end
    
Let's tighten that up a bit, and remove the non-rubyesque camel
casing.

Person = Struct.new( :name ) do
  def love( other )
    puts "#{self.name} loves #{other.name}"
  end
end
I = Person.new("Jen Switalski")
you = Person.new("Bob")
while true
  I.love(you)
end

Dunno if that'll fit on the cake, but it gets closer.

Whenever I've seen anything like this done, it's always been done in C. Though I'm not suggesting we use C, I always thought the #include's added a little something extra. So, why not put a couple of require's at the top? Such as,
(require is the statement to include library functions/other modules, so you can re-use functionality)

require 'love'
require 'time'

jen = Person.new("Jen")
fiance = Person.new("Fiance")

us = [jen, fiance]
love = Love.new(jen, fiance)

while(Time.now < Death.parts(us))
    jen.loves(fiance) unless love.conditional?
end

This creates a new 'love' object, taking Jen and Fiance as parameters (who are set up as 'constants') and loops while the current time is less than when Death parts the two of you, it says that Jen will love Fiance unless the love is conditional, which is funny because I put it in a conditional statement. It needs editing, but it's something for others to build on!

Michael

···

On Mar 21, 8:33 pm, p...@informatimago.com (Pascal J. Bourguignon) > wrote:

=======================================================================
This email, including any attachments, is only for the intended
addressee. It is subject to copyright, is confidential and may be
the subject of legal or other privilege, none of which is waived or
lost by reason of this transmission.
If the receiver is not the intended addressee, please accept our
apologies, notify us by return, delete all copies and perform no
other act on the email.
Unfortunately, we cannot warrant that the email has not been
altered or corrupted during transmission.

Probably a little to long...

  death = nil

  def we(r) ; puts "ready to #{x}y!" ; end

  for x in %w{better worse richer poorer sickness health} do
    until death do
      we("part")
    end
  end

But it actually runs.

T.