2013-03-31 85 views
0

我有一個循環,在繼續下一次迭代之前需要休眠,所以我乘以秒* 60得到分鐘數。我不想做10分鐘的「睡10 * 60」之類的東西,而是想讓它變得更漂亮一些。我試圖做到這一點:「睡10分鐘」。我不想這樣做:「睡眠分鐘(10)」Ruby中的類方法

我試圖重寫Fixnum來添加一個名爲'分鐘'的方法,但我無法從'15'獲取'15'。分鐘'。下面是我使用的代碼:

class Fixnum 
    def minutes 
    15 # need to find out the value entered here 
    end 
end 

上述工程的代碼,但我必須回到我想Fixnum.minutes內的價值 - 我怎麼找出數.minutes之前輸入?

我不想傳遞一個參數,因爲它看起來不同。

+0

這種基於時間的'Numeric'擴展由['ActiveSupport'](http://apidock.com/rails/Numeric/minutes)提供。也許你應該使用它而不是自己滾動? – dbenhur

回答

2

我想你想是這樣的:

class Fixnum 
    def minutes 
    self * 60 
    end 
end 

然後15.minutes將返回15 * 60

+2

所以這裏'self'指向'15',這是您調用'#分鐘'的Fixnum對象。 – Jokester

+0

哦,我的。這應該是顯而易見的,但我想不出答案!謝謝 - 它完美的作品。 – dingalingchickenwiing