Robot

Refactor robot_name.rb according to last comments
So, first: why not check uniqueness as part of validity here? to my mind uniqueness is part of what makes the name valid.

Regardless, 1 & 3 also seem sensible. Frankly I would do all of these. I would save 2 for those times when it can't be solved otherwise.