My bit o' solution... only had a few minutes to do a few lines, it's
about as small and compact as I can get a happy test without golfing
it:
class Integer
def happy?
return false if zero?
return false if (self ^ 4).zero?
return true if (self ^ 1).zero?
to_s.split(//).inject(0) { |s,x| s + (x.to_i ** 2) }.happy?
end
end