基本上我想扩展Time类来添加这个方法:
def round_to_fifteen()
return Time.at((self.to_i / 900).round * 900)
end
我如何实现这一点以及我应该在何处放置扩展类的文件?
答案 0 :(得分:3)
传统上,这种事情都在lib/
。我只需要初始化程序所需的lib/time_extensions.rb
。
您只需重新打开Time类并添加所需的方法,如下所示:
class Time
def round_to_fifteen()
return Time.at((self.to_i / 900).round * 900)
end
end
然后,任何Time对象都将具有#round_to_fifteen
方法。您可以在控制台中看到这一点:
2.0.0p247 :004 > class Time
2.0.0p247 :005?> def round_to_fifteen()
2.0.0p247 :006?> return Time.at((self.to_i / 900).round * 900)
2.0.0p247 :007?> end
2.0.0p247 :008?> end
=> nil
2.0.0p247 :009 > Time.now.round_to_fifteen
=> 2013-12-28 13:15:00 -0700
答案 1 :(得分:1)
你可以把它放在你想要使用它的任何地方,你可以写
class Time
def round_to_fifteen
return Time.at((self.to_i / 900).round * 900)
end
end
要使用此功能,您只需编写
即可timestamp_object.round_to_fifteen