1. Ruby / Говнокод #12681

    −92

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    def register_valid_login
    		login = params[:login]
    		return register_error("Слишком длинный ник!") if (login.length > 16) 
    		return register_error("Слишком короткий ник!") if (login.length < 3)
    		return register_error("Недопустимые символы в нике!") if !(/^[a-zA-Z\-_]+$/=~login)
    		return register_error("Можно использовать либо '-', либо '_' в нике!") if (login.count("-") > 0 && login.count("_") > 0)
    		return register_error("Ник должен состоять из трёх частей максимум!") if (login.count("-") > 2 || login.count("_") > 2)
    		login = [login] if (login.count("-") == 0 && login.count("_") == 0)
    		login = login.split("-") if login.count("-") > 0
    		login = login.split("_") if login.count("_") > 0
    		return register_error("Начало ника не может быть меньше трёх символов!") if (login[0].length < 1)
    		case login.count
    			when 2
    				return register_error("Если у вас ник вида Xxx_Yyy, то Yyy может состоять минимум из 3х букв") if (login[1].length < 3)
    			when 3
    				return register_error("Если у вас ник вида AAA_B_CCC, то B должна быть больше одной буквы") if (login[1].length < 1)
    		end
    		for i in 0..login.count-1
    			return register_error("Заглавная буква в середине " + (i+1).to_s + "-ой части ника") if !(/^[a-zA-Z]?[a-z]+$/=~login[i])
    		end
    		return true
    	end

    Процедура проверки ника в ситеме регистрации одного игрового проекта.

    Запостил: DropWorld, 03 Марта 2013

    Комментарии (31) RSS

    • Как можно играть в игру, в которой нельзя назвать перса xXx#NaGibaToR[My-MeGa_CLaN]#xXx?
      Ответить
    • Ага, теперь мы дошли и до логинов. Я на прошлой работе минут пятнадцать пыталась сделать пароль который приняла бы система.
      Ответить
    • Подобрать корректный логин - и есть суть игры?
      Ответить
    • Я победил!
      Ответить
    • В этой функции не хватает проверки на непристойности.
      Ответить
      • Меня однажды просили сделать.
        Ответить
        • И как успехи?)
          Ответить
          • Удалось доказать, что "хуй", "пизда" и "джигурда" - это не матерные слова.
            Ответить
            • Джигурда - Кащей наших внуков.
              Ответить
            • только в России программист может доказать заказчику, что он хуй и что данная фича не нужна)
              Ответить
              • > доказать заказчику, что он хуй и что данная фича не нужна
                Вся суть опенсурса :)
                Ответить
    • Буду краток - разрабы игры ебанулись.
      Ответить
    • Надо склеить в одно условие "ваш ник слишком длинный, слишком короткий, состоит не из тех символов, не в том порядке, уже занят, запрещён антиматом или ещё какое-то безумное правило не сработало, попробуйте ещё".
      Ответить
      • Зачем так сложно? "Неправильный ник.".
        Ответить
        • лучше "Неправильный ник. Ке ке ке" и через 100 попыток логинатор разобьет монитор)
          Ответить
          • Так лучше: Произошла ошибка.
            Ответить
            • а лучше нечто рандомное, что бы пользователь думал, что оно реагирует на ввод) типа "Неверный ник" "Данный ник не прошел валидацию" "Формат ника неверен" "Произошла ошибка регистрации" "Ошибка! ник не соответствует нормам ОТИЩИЩ"
              Ответить
    • return register_error("Слишком длинный ник!") if (login.length > 16)

      Йода магистр одобряет запись такую.
      Ответить
    • "У нас настолько невъебенная туса, что регать уже некому. А нам - некогда"
      (c) google.com
      Ответить
    • >Можно использовать либо '-', либо '_' в нике
      Да здравствует --_-__---_-__--___-!
      Ответить
      • > --_-__---_-__--___-
        "Ник должен состоять из трёх частей максимум!"
        Ответить
        • > "Ник должен состоять из трёх частей максимум!"
          Голова, торс и ноги: четвертование не допускается.
          Ответить
    • you wanna play a little game?
      Ответить
    • Шо за говнокод! Не - я говно конечно видел - но не столько и сразу в одном методе.
      Ответить

    Добавить комментарий