From 7a7d12d27f16370c3789aa97514da25c6e91ae4c Mon Sep 17 00:00:00 2001
From: Matt Jankowski <mjankowski@thoughtbot.com>
Date: Mon, 8 May 2017 17:10:50 -0400
Subject: [PATCH] Delegate Account#user_locale method and allow nil (#2927)
---
app/lib/language_detector.rb | 2 +-
app/mailers/notification_mailer.rb | 2 +-
app/models/account.rb | 1 +
spec/lib/language_detector_spec.rb | 6 ++----
4 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/app/lib/language_detector.rb b/app/lib/language_detector.rb
index 8c1751beb8..ca5cb2591c 100644
--- a/app/lib/language_detector.rb
+++ b/app/lib/language_detector.rb
@@ -35,6 +35,6 @@ class LanguageDetector
end
def default_locale
- account&.user&.locale || I18n.default_locale
+ account&.user_locale || I18n.default_locale
end
end
diff --git a/app/mailers/notification_mailer.rb b/app/mailers/notification_mailer.rb
index f308c403bf..a944db137f 100644
--- a/app/mailers/notification_mailer.rb
+++ b/app/mailers/notification_mailer.rb
@@ -71,7 +71,7 @@ class NotificationMailer < ApplicationMailer
private
def locale_for_account(account)
- I18n.with_locale(account.user.locale || I18n.default_locale) do
+ I18n.with_locale(account.user_locale || I18n.default_locale) do
yield
end
end
diff --git a/app/models/account.rb b/app/models/account.rb
index a28dc967fc..c2dc77d932 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -111,6 +111,7 @@ class Account < ApplicationRecord
:current_sign_in_ip,
:current_sign_in_at,
:confirmed?,
+ :locale,
to: :user,
prefix: true,
allow_nil: true
diff --git a/spec/lib/language_detector_spec.rb b/spec/lib/language_detector_spec.rb
index bd4e65ef8e..18ab5aee66 100644
--- a/spec/lib/language_detector_spec.rb
+++ b/spec/lib/language_detector_spec.rb
@@ -43,16 +43,14 @@ describe LanguageDetector do
describe 'with an account' do
it 'uses the account locale when present' do
- user = double(:user, locale: 'fr')
- account = double(:account, user: user)
+ account = double(user_locale: 'fr')
result = described_class.new('', account).to_iso_s
expect(result).to eq :fr
end
it 'uses default locale when account is present but has no locale' do
- user = double(:user, locale: nil)
- account = double(:accunt, user: user)
+ account = double(user_locale: nil)
result = described_class.new('', account).to_iso_s
expect(result).to eq :en
--
GitLab