2012-12-07 155 views
1

是否有可能重寫'puts'方法並將其替換爲調用'puts'兩次的函數?Ruby覆蓋類方法

例如:

class IO 
    def puts str 
    puts str 
    puts str 
    end 
end 

我知道這個例子是愚蠢的,但我需要別的東西。基本上,我想重寫一個函數,但我想重寫函數將調用包含到原始的重寫函數中。

+0

您確定要在與定義的類相同的類中覆蓋它,而不是在實例上的方法中進行子類化或混合嗎? – Phrogz

+0

[當猴子修補方法時,可以從新實現中調用重寫的方法](http://stackoverflow.com/questions/4470108/when-monkey-patching-a-method-can-you-call -the-重寫法-從最新-i)的 –

回答

5
class IO 

    alias puts_orig puts 
    def puts str 
    puts_orig str 
    puts_orig str 
    end 
end