Commit 7fdd7fbf762707d35291b1ab6651399cbeb95887
1 parent
df0c5164
Exists in
ratings_minor_fixes
and in
3 other branches
CommentHandler delayed job saves the context locale
Signed-off-by: Gabriel Silva <gabriel93.silva@gmail.com>
Showing
2 changed files
with
19 additions
and
1 deletions
Show diff stats
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 < 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 | ... | ... |