0
假設我有一個class Alex
。方法定義後運行的Ruby方法
class AB < Alex
some_definition_here # it changes some class variables
end
我的問題是:是否有像self.included
上課這是唯一一類被定義後執行什麼?我只想在某些類變量被更改後才能訪問類變量。
假設我有一個class Alex
。方法定義後運行的Ruby方法
class AB < Alex
some_definition_here # it changes some class variables
end
我的問題是:是否有像self.included
上課這是唯一一類被定義後執行什麼?我只想在某些類變量被更改後才能訪問類變量。
是的,有。但這有點棘手,因爲在Ruby中沒有開放類概念,所以沒有「類定義」的概念。
你在找什麼是TracePoint
。可能的用法:
TracePoint.new(:end) do |tp|
if tp.self.name == 'AB'
# DO SOME STUFF
# at this very moment class was closed with end for the 1st time
tp.disable
end
end.enable
「任何類似於self.included」的名稱是「對象生命週期鉤子」。 – maicher