Вы можете расширить условие if с помощью этого модуля, а затем использовать условия в стиле smalltalk
module IfTrue
def ifTrue &block
yield if self
slf=self
o = Object.new
def o.elseIf val, &block
yield if !slf && val
end
end
end
теперь вы можете кодировать такие вещи:
condition.extend(IfTrue).ifTrue{
do_stuff
}elseIf(condition2){
doOtherStuff
}
или, если вы шаловливый обезьяна-патчер; -):
Object.include IfTrue
condition.ifTrue{
do_stuff
}elseIf(condition2){
doOtherStuff
}
если вы хотите объединить несколько цепочек, если вам придется адаптировать этот код, каким-то образом используя определение elsif