Ruby의 학급 방법을 의뢰할 때 SingleForwardable를 사용합니다
결론
학급 방법의 의뢰
SingleForwardable
에서 사용할 수 있다(조사해도 한꺼번에 나오지 않기 때문에 필기.예제
require 'forwardable'
class Implementation
def self.service
puts "serviced!"
end
end
module Facade
extend SingleForwardable
def_delegator :Implementation, :service
end
Facade.service # => serviced!
구체적 예
예를 들어
Bugsnag
gem을 사용하고 싶은데 직접 사용하면 나중에 센트리로 갈아타기 어려워 BugReport
모듈을 준비해 랩을 잘 쓰고 싶은 경우 학급 방법을 의뢰할 수 있다.Bugsnag의 예
module BugReport
extend SingleForwardable
def_delegator :Bugsnag, :notify
end
BugReport.notify # Bugsnag.notify が実行される
라일스를 사용한 경우ActiveSupport
의delegate
도 사용할 수 있다.delegate의 예
module BugReport
class << self
delegate :notify, to: :Bugsnag
end
end
BugReport.notify # Bugsnag.notify が実行される
의뢰, 편리하네요
Reference
이 문제에 관하여(Ruby의 학급 방법을 의뢰할 때 SingleForwardable를 사용합니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sukechannnn/items/58ef3678134293b807d5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)