File tree Expand file tree Collapse file tree 8 files changed +65
-33
lines changed Expand file tree Collapse file tree 8 files changed +65
-33
lines changed Original file line number Diff line number Diff line change 11
11
require "active_job/log_subscriber"
12
12
require "active_job/logging"
13
13
require "active_job/instrumentation"
14
- require "active_job/timezones"
15
- require "active_job/translation"
14
+ require "active_job/execution_state"
16
15
17
16
module ActiveJob # :nodoc:
18
17
# = Active Job \Base
@@ -71,8 +70,7 @@ class Base
71
70
include Exceptions
72
71
include Instrumentation
73
72
include Logging
74
- include Timezones
75
- include Translation
73
+ include ExecutionState
76
74
77
75
ActiveSupport . run_load_hooks ( :active_job , self )
78
76
end
Original file line number Diff line number Diff line change
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveJob
4
+ module ExecutionState # :nodoc:
5
+ def perform_now
6
+ I18n . with_locale ( locale ) do
7
+ Time . use_zone ( timezone ) { super }
8
+ end
9
+ end
10
+ end
11
+ end
Load Diff This file was deleted.
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 2
2
3
3
require "helper"
4
4
require "jobs/timezone_dependent_job"
5
+ require "jobs/timezone_raising_job"
5
6
6
7
class TimezonesTest < ActiveSupport ::TestCase
7
8
setup do
@@ -35,4 +36,17 @@ class TimezonesTest < ActiveSupport::TestCase
35
36
ensure
36
37
Time . zone = nil
37
38
end
39
+
40
+ test "it runs the exception handler in the given locale" do
41
+ Time . zone = "America/New_York"
42
+
43
+ Time . use_zone ( "London" ) do
44
+ job = TimezoneRaisingJob . new
45
+ job . perform_now
46
+ end
47
+
48
+ assert_equal "London" , JobBuffer . last_value
49
+ ensure
50
+ Time . zone = nil
51
+ end
38
52
end
Original file line number Diff line number Diff line change 2
2
3
3
require "helper"
4
4
require "jobs/translated_hello_job"
5
+ require "jobs/translated_raising_job"
5
6
6
7
class TranslationTest < ActiveSupport ::TestCase
7
8
setup do
8
9
JobBuffer . clear
9
10
I18n . available_locales = [ :en , :de ]
10
- @job = TranslatedHelloJob . new ( "Johannes" )
11
11
end
12
12
13
13
teardown do
14
14
I18n . available_locales = [ :en ]
15
15
end
16
16
17
17
test "it performs the job in the given locale" do
18
- @job . locale = :de
19
- @job . perform_now
18
+ job = TranslatedHelloJob . new ( "Johannes" )
19
+ job . locale = :de
20
+ job . perform_now
20
21
assert_equal "Johannes says Guten Tag" , JobBuffer . last_value
21
22
end
23
+
24
+ test "it runs the exception handler in the given locale" do
25
+ job = TranslatedRaisingJob . new
26
+ job . locale = :de
27
+ job . perform_now
28
+ assert_equal :de , JobBuffer . last_value
29
+ end
22
30
end
Original file line number Diff line number Diff line change
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../support/job_buffer"
4
+ require "active_support/time"
5
+
6
+ class TimezoneRaisingJob < ActiveJob ::Base
7
+ rescue_from ( StandardError ) do
8
+ JobBuffer . add ( Time . zone . name )
9
+ end
10
+
11
+ def perform
12
+ raise "boom"
13
+ end
14
+ end
Original file line number Diff line number Diff line change
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../support/job_buffer"
4
+
5
+ class TranslatedRaisingJob < ActiveJob ::Base
6
+ rescue_from ( StandardError ) do
7
+ JobBuffer . add ( I18n . locale )
8
+ end
9
+
10
+ def perform
11
+ raise "boom"
12
+ end
13
+ end
You can’t perform that action at this time.
0 commit comments