Вам нужно еще несколько скобок, например,
def respond_to?(message)
message = message.to_sym
[:__result__, :inspect].include?(message) ||
__result__.respond_to?(message)
end
или (но выглядит уродливее)
def respond_to?(message)
message = message.to_sym
[:__result__, :inspect].include?(message) ||
(__result__.respond_to? message)
end
В любом случае Рубин понимает:
def respond_to?(message)
message = message.to_sym
([:__result__, :inspect].include?(message) ||
__result__.respond_to?) message
end
из-за приоритета оператора.
Я люблю вызывать функции без круглых скобок, но это хорошо, только когда код не является неоднозначным, ruby не назначает какой-либо приоритет новой строке, как это делает для ||
функция.