У меня есть код, который запускается в одном из нескольких разных мест: в качестве инструмента командной строки с отладочным выходом, как часть более крупной программы, которая не принимает никакого вывода, и в рельсах Окружающая среда.Условные определяющие функции в Ruby
Есть случаи, когда мне нужно внести небольшие изменения в код основан на его месте, и я понял, что следующий стиль, кажется, работает:
print "Testing nested functions defined\n"
CLI = true
if CLI
def test_print
print "Command Line Version\n"
end
else
def test_print
print "Release Version\n"
end
end
test_print()
Это приводит к:
Testing nested functions defined
Command Line Version
Я никогда не сталкивался с функциями, которые условно определены в Ruby. Это безопасно?
Это не то, как я структурирую большую часть моего кода, но есть несколько функций, которые требуют полной перезаписи для каждой системы.
Посмотрите на 'define_method': http://apidock.com/ruby/Module/define_method;) – MrYoshiji