Commit 6452068155fab91eed8ec2d07771ea444b53239e

Authored by Gabriel Silva
Committed by Marcos Pereira
1 parent 8dc60a31
Exists in stable-spb-1.5

CommentHandler delayed job saves the context locale

Signed-off-by: Gabriel Silva <gabriel93.silva@gmail.com>
(cherry picked from commit 7fdd7fbf762707d35291b1ab6651399cbeb95887)
app/models/comment_handler.rb
1   -class CommentHandler < Struct.new(:comment_id, :method)
  1 +class CommentHandler < Struct.new(:comment_id, :method, :locale)
  2 + def initialize(*args)
  3 + super
  4 + self.locale ||= FastGettext.locale
  5 + end
2 6  
3 7 def perform
  8 + saved_locale = FastGettext.locale
  9 + FastGettext.locale = locale
  10 +
4 11 comment = Comment.find(comment_id)
5 12 comment.send(method)
  13 + FastGettext.locale = saved_locale
6 14 rescue ActiveRecord::RecordNotFound
7 15 # just ignore non-existing comments
8 16 end
... ...
test/unit/comment_handler_test.rb
... ... @@ -21,4 +21,14 @@ class CommentHandlerTest &lt; ActiveSupport::TestCase
21 21 handler.perform
22 22 end
23 23  
  24 + should 'save locale from creation context and not change current locale' do
  25 + FastGettext.stubs(:locale).returns("pt")
  26 + handler = CommentHandler.new(5, :whatever_method)
  27 +
  28 + FastGettext.stubs(:locale).returns("en")
  29 + assert_equal "pt", handler.locale
  30 +
  31 + handler.perform
  32 + assert_equal "en", FastGettext.locale
  33 + end
24 34 end
... ...