Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
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
Реальный кусок... Весь код проги(не моей)... ТАКОЙ.
#!/usr/bin/perl
package Steror;
sub ebat_kozu {
#...
}
sub ebat_13_letnego_malchinka {
#...
}
1;
Тут мы видим класс с двумя методами. Или, точнее говоря, модуль с двумя функциями, которые могут стать классом, если некоторый хеш с полями этого метода освятить (bless) и привязать к этому модулю-пакету. Такие модули-пакеты можно объяединить в пакет-пакет.
Я понятно объясняю, я надеюсь?
Так вот единица в конце позволяет при загрузке этого файла заэвалиуроваться в TRUE, и таким образом не упасть, потому что если при загрузке модуля-пакета вы получаете FALSe, то происходит ошибка.
public boolean supportsNormalTermination() {
throw new UnsupportedOperationException(this.getClass()
+ ".supportsNormalTermination() not supported" );
}
1
Рассмотим типичный package.
Тут мы видим класс с двумя методами. Или, точнее говоря, модуль с двумя функциями, которые могут стать классом, если некоторый хеш с полями этого метода освятить (bless) и привязать к этому модулю-пакету. Такие модули-пакеты можно объяединить в пакет-пакет.
Я понятно объясняю, я надеюсь?
Так вот единица в конце позволяет при загрузке этого файла заэвалиуроваться в TRUE, и таким образом не упасть, потому что если при загрузке модуля-пакета вы получаете FALSe, то происходит ошибка.
Как видите, код на перл всегда выглядит логично
Этот метод следует разбить на 2-3 более мелких, убрать _ из названий переменных и избавиться от трети ненужных переменных