2012-03-18 2 views
4

__callee__과 비슷하게 호출하는 메서드를 반환하는 무언가가 있습니까? caller 호출자 메서드의 이름을 스트립 핛 수 있다는 것을 알았지 만 궁금합니다. 다른 메서드없이 호출 메서드의 이름을 반환하는 표준 메서드가 있습니다.호출 방법 Ruby1.9

답변

2

MRI에는 그러한 특징이 없습니다. 그러나 몇 가지 대안이 있습니다. 당신이 Rubinius를 사용하는 일 경우

, 대신 caller을 구문 분석의이 작업을 수행 할 수 있습니다

Rubinius::VM.backtrace(1, false).first.name 
#=> :calling_method_name 

을 할 수도 있습니다 use a gem to parse 당신을 위해 caller의 결과. Ruby> 1.9에서 작동합니다.

The answer to this SO question은 간단한 구문 분석 방법을 설명합니다.

마지막으로 관련 티켓이 잠시 동안 업데이트되지 않았지만 마지막으로 Ruby 2.0에 이와 같은 기능을 추가하는 데 work in progress이 표시됩니다.

+0

링크하는 '보낸 사람'보석이 매우 중요해 보입니다. – sawa