나에게 서 무엇 루비 contsructor/초기화 메서드에서 super를 두 번 호출하는 이유는 무엇입니까?
module ActionDispatch
module Session
class DalliStore < AbstractStore
def initialize(app, options = {})
# Support old :expires option
options[:expire_after] ||= options[:expires]
super
@default_options = { :namespace => 'rack:session' }.merge(@default_options)
@pool = options[:cache] || begin
Dalli::Client.new(
@default_options[:memcache_server], @default_options)
end
@namespace = @default_options[:namespace]
@raise_errors = [email protected]_options[:raise_errors]
super
end
.... rest of class definition
슈퍼가 초기화하는 동안 두 번 호출 한 것입니다 ... 나는
Dalli's 소스 코드를 읽고 있던 나는이 발견했다. 전에 이런 종류의 루비 관용어를 보지 못했습니다. 왜 이것을하고 싶습니까?
수퍼 클래스 이니셜 라이저의 구현에 따라 다릅니다. 아니면 버그 일 수도 있습니다. – Thomas
버그, 또는 특별히 인스턴스 변수를 변경 한 후에 다시 초기화해야합니다 (무언가). –