Когда вы набираете name_of_calling_method
из method_b
, тогда method_a
на 1 позицию выше стека вызовов, поэтому вам нужно caller[1]
в name_of_calling_method
вместо caller.first
или caller[0]
.
Поскольку вы поместили регулярное выражение с левой стороны, а индекс в caller
справа, вам не понадобится дополнительная проверка nil
для случая, когда method_b
вызывается напрямую и caller[1]
is nil
- ваш не совпадает else
чехол покроет его.