From a9d1167b1fdae6f5f5496738b3e7d1e05949dcd0 Mon Sep 17 00:00:00 2001 From: Andrew White Date: Thu, 22 Feb 2018 14:14:42 +0000 Subject: Add support for timezones to Active Job Record what was the current timezone in effect when the job was enqueued and then restore when the job is executed in same way that the current locale is recorded and restored. --- activejob/test/jobs/timezone_dependent_job.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 activejob/test/jobs/timezone_dependent_job.rb (limited to 'activejob/test/jobs/timezone_dependent_job.rb') diff --git a/activejob/test/jobs/timezone_dependent_job.rb b/activejob/test/jobs/timezone_dependent_job.rb new file mode 100644 index 0000000000..41f473d533 --- /dev/null +++ b/activejob/test/jobs/timezone_dependent_job.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +require_relative "../support/job_buffer" + +class TimezoneDependentJob < ActiveJob::Base + def perform(now) + now = now.in_time_zone + new_year = localtime(2018, 1, 1) + + if now >= new_year + JobBuffer.add("Happy New Year!") + else + JobBuffer.add("Just #{(new_year - now).div(3600)} hours to go") + end + end + + private + + def localtime(*args) + Time.zone ? Time.zone.local(*args) : Time.utc(*args) + end +end -- cgit v1.2.3