Commit 2aaa7a7aa167b1717b367dbe9cf990f738a46505

Authored by Gabriel Silva
Committed by Macartur Sousa
1 parent 3ea3b1d1
Exists in elasticsearch_api

CommentHandler delayed job saves the context locale

Signed-off-by: Gabriel Silva <gabriel93.silva@gmail.com>
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
... ...