2013-03-31 26 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