Skip to content
This repository was archived by the owner on Jun 6, 2024. It is now read-only.

Commit 1a57245

Browse files
author
Michael Pearce
authored
Merge pull request #5 from EnjoyTech/mpg/rails_i18n_support
Rails i18n support
2 parents f6fa3a0 + 4a33c29 commit 1a57245

File tree

7 files changed

+36
-22
lines changed

7 files changed

+36
-22
lines changed

lib/parallel_workforce/job/active_job_rails.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ def enqueue_actor(actor_class_name:, result_key:, index:, server_revision:, seri
1111
server_revision: server_revision,
1212
serialized_actor_args: serialized_actor_args,
1313
time_zone_name: Time.zone.name,
14+
locale: I18n.locale&.to_s,
1415
)
1516
end
1617
end
1718

1819
def perform(args)
19-
invoke_performer_with_time_zone_name(args)
20+
invoke_performer_with_time_zone_name_and_locale(args)
2021
end
2122
end
2223
end

lib/parallel_workforce/job/sidekiq_rails.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ def enqueue_actor(actor_class_name:, result_key:, index:, server_revision:, seri
1111
server_revision: server_revision,
1212
serialized_actor_args: serialized_actor_args,
1313
time_zone_name: Time.zone.name,
14+
locale: I18n.locale&.to_s,
1415
)
1516
end
1617
end
1718

1819
def perform(args)
19-
invoke_performer_with_time_zone_name(args)
20+
invoke_performer_with_time_zone_name_and_locale(args)
2021
end
2122
end
2223
end

lib/parallel_workforce/job/util/job_helper.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,13 @@ def invoke_performer(args)
4747
ParallelWorkforce::Job::Util::Performer.new(**args).perform
4848
end
4949

50-
def invoke_performer_with_time_zone_name(args)
50+
def invoke_performer_with_time_zone_name_and_locale(args)
5151
args.transform_keys!(&:to_sym)
5252

5353
Time.use_zone(args.delete(:time_zone_name)) do
54-
invoke_performer(args)
54+
I18n.with_locale(args.delete(:locale)) do
55+
invoke_performer(args)
56+
end
5557
end
5658
end
5759
end

lib/parallel_workforce/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module ParallelWorkforce
2-
VERSION = "3.0.0".freeze
2+
VERSION = "4.0.0".freeze
33
end

spec/parallel_workforce/job/active_job_rails_spec.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
module ParallelWorkforce::Job
44
describe ActiveJobRails do
55
time_zone_name = 'Pacific Time (US & Canada)'
6+
locale = :en
67

78
class ActiveJobRailsTestActor
89
def initialize(value:)
@@ -14,10 +15,10 @@ def perform
1415
end
1516
end
1617

17-
let(:time_zone_name) { time_zone_name }
1818
let(:value) do
1919
{
2020
time_zone_name: Time.zone.name,
21+
locale: I18n.locale,
2122
value: @value,
2223
}
2324
end
@@ -45,11 +46,11 @@ def perform
4546
end
4647

4748
describe '.enqueue_actor' do
48-
it_behaves_like 'enqueue_actor', :perform_later, time_zone_name
49+
it_behaves_like 'enqueue_actor', :perform_later, time_zone_name, locale
4950
end
5051

5152
describe '#perform' do
52-
it_behaves_like 'perform', :perform_later, time_zone_name
53+
it_behaves_like 'perform', :perform_later, time_zone_name, locale
5354
end
5455
end
5556
end

spec/parallel_workforce/job/sidekiq_rails_spec.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
module ParallelWorkforce::Job
44
describe SidekiqRails do
55
time_zone_name = 'Pacific Time (US & Canada)'
6+
locale = :en
67

78
class SidekiqRailsTestActor
89
def initialize(value:)
@@ -14,10 +15,10 @@ def perform
1415
end
1516
end
1617

17-
let(:time_zone_name) { 'Pacific Time (US & Canada)' }
1818
let(:value) do
1919
{
2020
time_zone_name: Time.zone.name,
21+
locale: I18n.locale,
2122
value: @value,
2223
}
2324
end
@@ -46,11 +47,11 @@ def perform
4647

4748

4849
describe '.enqueue_actor' do
49-
it_behaves_like 'enqueue_actor', :perform_async, time_zone_name
50+
it_behaves_like 'enqueue_actor', :perform_async, time_zone_name, locale
5051
end
5152

5253
describe '#perform' do
53-
it_behaves_like 'perform', :perform_async, time_zone_name
54+
it_behaves_like 'perform', :perform_async, time_zone_name, locale
5455
end
5556
end
5657
end

spec/spec_helper.rb

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,12 @@
105105
Kernel.srand config.seed
106106
end
107107

108-
RSpec.shared_examples 'enqueue_actor' do |job_method, time_zone_name=nil|
108+
RSpec.shared_examples 'enqueue_actor' do |job_method, time_zone_name=nil, locale=nil|
109109
subject do
110110
Time.use_zone(time_zone_name) do
111-
described_class.enqueue_actor(args)
111+
I18n.with_locale(locale) do
112+
described_class.enqueue_actor(args)
113+
end
112114
end
113115
end
114116

@@ -121,35 +123,41 @@
121123
server_revision: server_revision,
122124
}.tap do |args|
123125
args[:time_zone_name] = time_zone_name if time_zone_name
126+
args[:locale] = locale.to_s if locale
124127
end,
125128
)
126129

127130
subject
128131
end
129132
end
130133

131-
RSpec.shared_examples 'perform' do |job_method, time_zone_name=nil|
134+
RSpec.shared_examples 'perform' do |job_method, time_zone_name=nil, locale=nil|
132135
let(:execution_time) { Time.now }
133136

134137
subject do
135138
Time.use_zone(time_zone_name) do
136-
# do not allow to actually enqueue job
137-
expect(described_class).to receive(job_method)
139+
I18n.with_locale(locale) do
140+
# do not allow to actually enqueue job
141+
expect(described_class).to receive(job_method)
138142

139-
described_class.enqueue_actor(args)
143+
described_class.enqueue_actor(args)
140144

141-
perform_args = args.dup
142-
perform_args[:time_zone_name] = time_zone_name if time_zone_name
145+
perform_args = args.dup
146+
perform_args[:time_zone_name] = time_zone_name if time_zone_name
147+
perform_args[:locale] = locale.to_s if locale
143148

144-
Timecop.travel(execution_time) do
145-
described_class.new.perform(perform_args)
149+
Timecop.travel(execution_time) do
150+
described_class.new.perform(perform_args)
151+
end
146152
end
147153
end
148154
end
149155

150156
it 'performs actor' do
151157
Time.use_zone(time_zone_name) do
152-
expect(subject).to eq(serialized_value: ParallelWorkforce.configuration.serializer.serialize(value))
158+
I18n.with_locale(locale) do
159+
expect(subject).to eq(serialized_value: ParallelWorkforce.configuration.serializer.serialize(value))
160+
end
153161
end
154162
end
155163

0 commit comments

Comments
 (0)