Яuбy / Говнокод #1255 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
def properties_file2hash(_property_file, _link_hash=nil)
    r_hash = Hash.new
    if _property_file &&  FileTest::exist?(_property_file)
      f = File::open(_property_file,'r')
      begin
        _lines = f.readlines
        _lines.each{|_line|
          _strip_line = _line.strip
          if (_strip_line.length > 0)&&(_strip_line[0,1]!='#')
            var_plat = _line.split('::')
            if var_plat.length > 1
              if (RUBY_PLATFORM.include?(var_plat[0]))
                _line = var_plat[1]
                var_plat[2..-1].collect{|x| _line=_line+'::'+x} if var_plat.length > 2
              else
                _line = ''
              end
            end
            var = _line.split('=')
            if var.length > 1
              _value = var[1].strip
              var[2..-1].collect{|x| _value=_value+'='+x} if var.length > 2
              if _link_hash 
                _value = resolve_link(_value, _link_hash)
              end
              r_hash[var[0].strip]=_value
            end
          end
        }
      ensure
        f.close unless f.nil?
      end
      return r_hash      
    end

Реальный кусок... Весь код проги(не моей)... ТАКОЙ.

Запостил: guest guest, (Updated )

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

  • а по моему вполне приличный код. если нет, то весь код на перле можно говнокодом называть
    Ответить
    • > весь код на перле можно говнокодом называть
      1
      Ответить
      • Кстати, единица в перле и правда бывает нужна.


        Рассмотим типичный package.
        #!/usr/bin/perl
        
        package Steror;
        sub ebat_kozu { 
          #...
        }
        
        sub ebat_13_letnego_malchinka { 
          #...
        }
        1;


        Тут мы видим класс с двумя методами. Или, точнее говоря, модуль с двумя функциями, которые могут стать классом, если некоторый хеш с полями этого метода освятить (bless) и привязать к этому модулю-пакету. Такие модули-пакеты можно объяединить в пакет-пакет.
        Я понятно объясняю, я надеюсь?

        Так вот единица в конце позволяет при загрузке этого файла заэвалиуроваться в TRUE, и таким образом не упасть, потому что если при загрузке модуля-пакета вы получаете FALSe, то происходит ошибка.

        Как видите, код на перл всегда выглядит логично
        Ответить
  • Это не ruby-way.
    Этот метод следует разбить на 2-3 более мелких, убрать _ из названий переменных и избавиться от трети ненужных переменных
    Ответить
  • Да это просто AntiRuby пример! Где же элегантность и краткость(сестра таланта :)) заявленная в Ruby?
    Ответить
  • Судя по всему автор этого кода знаком с Питоном 😉
    Ответить
  • Так писать на руби могут только ярык любители перла и петона 🙂
    Ответить
  • Частенько встречаются те, кто все программы пишут одними if и for
    Ответить
  • Великое княжество багорское ))
    Ответить
  • public boolean supportsNormalTermination() {
            throw new UnsupportedOperationException(this.getClass()
                    + ".supportsNormalTermination() not supported" );
        }
    Ответить

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

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8