gpt4 book ai didi

ruby-on-rails - 如何在正在运行的 ruby​​ 进程中更改 Date.today 的值

转载 作者:数据小太阳 更新时间:2023-10-29 07:06:23 26 4
gpt4 key购买 nike

我知道这是个坏主意,但我有很多遗留代码,我想运行一些历史批处理作业。我不想更改系统日期,因为其他东西在同一系统上运行。有什么方法可以更改 Date.today 仅在给定进程的生命周期内返回的值。这里的想法是倒带并运行一些用于处理 Date.today 的旧批处理脚本。

谢谢乔尔

最佳答案

您可以像 Nikolaus 向您展示的那样对 Ruby 进行猴子补丁,也可以使用 TimeCop gem。它旨在使编写测试更容易,但您也可以在普通代码中使用它。

# Set the time where you want to go.
t = Time.local(2008, 9, 1, 10, 5, 0)

Timecop.freeze(t) do
# Back to the future!
end
# And you're back!

# You can also travel (e.g. time continues to go by)
Timecop.travel(t)

这是一段很棒但简单的代码。试一试,当您自己用猴子修补日期和时间时,它会让您省去一些麻烦。

链接:https://rubygems.org/gems/timecop

关于ruby-on-rails - 如何在正在运行的 ruby​​ 进程中更改 Date.today 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4026360/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com