Единственными двумя объектами, которые оценивают значение false-ish в логическом контексте в Ruby, являются nil
, единственный экземпляр NilClass
и false
, единственный экземпляр FalseClass
. Каждый другой объект оценивается как истинное значение.
Если вы хотите, чтобы ветвь else
была взята, то myproxy
должен оценить либо nil
, либо false
.
Если вы хотите что-то логическое, над которым у вас есть фактический контроль, вы можете попробовать выражение case
и переопределить оператор подстановки регистра MyProxy#===
.