Ruby에서 클래스 이름과 모듈 이름을 얻는 방법

4045 단어

클래스 이름을 얻는 방법



클래스 이름을 얻으려면:

class User
  def call = puts self.class.name
end
User.new.call #=> User


이름이 모듈 내부의 네임스페이스인 경우에도 작동합니다.

module Authenticated
  class Visitor
    def call = puts self.class.name
  end
end
Authenticated::Visitor.new.call #=> Authenticated::Visitor


모듈 이름을 얻는 방법



전화하면 작동하지 않음class.name
module Authenticated
  def self.call = puts self.class.name
end
Authenticated.call # will return Module!!


그러나 모듈은 이름이 지정된 접근자를 정의합니다name.

module Visitors
  def self.call = puts self.name
end
Visitors.call # will return Visitors


예 모듈에 정의된 상수name가 있습니다.

물론 원하는 경우 재정의할 수 있습니다.

module Guest
  def self.name = "Another name"
  def self.call = puts self.name
end
Guest.call # will return "Another name"


보너스: 현재 메소드 이름을 얻는 방법



이를 위해 __method__를 사용하십시오.

class Admin
  def call(...) = puts __method__
end
Admin.new.call # "call"

좋은 웹페이지 즐겨찾기