recursive methods in ruby