def merge(other)
      raise "cannot merge two players that are not equal" unless self == other
      [:id, :fide_id, :rating, :fide_rating, :title, :fed, :gender].each do |m|
        self.send("#{m}=", other.send(m)) unless self.send(m)
      end
    end
def merge(other)
      raise "cannot merge two players that are not equal" unless self == other
      [:id, :fide_id, :rating, :fide_rating, :title, :fed, :gender].each do |m|
        self.send("#{m}=", other.send(m)) unless self.send(m)
      end
    end
Loose equality test. Passes if the names match and the federations are not different.
 Strict equality test. Passes if the playes are loosly equal and also if their IDs, rating, gender and title are not different.
 Merge in some of the details of another player.