From 650adc10b2fbcbaa9a9fb1827bc3abe1a58fe051 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 31 Mar 2015 20:48:31 +0100 Subject: [PATCH] Allow space as a language separator The separator is supposed to be comma, so technically having space instead is user error, but it seems to be very common. Fixes #942 --- app/models/user.rb | 2 +- test/fixtures/users.yml | 2 +- test/models/user_test.rb | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index d8c5153b1..2ac94b65b 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -120,7 +120,7 @@ class User < ActiveRecord::Base end def languages - attribute_present?(:languages) ? self[:languages].split(/ *, */) : [] + attribute_present?(:languages) ? self[:languages].split(/ *[, ] */) : [] end def languages=(languages) diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml index 2055faa13..32a4e0387 100644 --- a/test/fixtures/users.yml +++ b/test/fixtures/users.yml @@ -30,7 +30,7 @@ public_user: home_zoom: 12 terms_agreed: "2010-01-01 11:22:33" terms_seen: true - languages: en + languages: "en de" creation_ip: "4.5.6.7" inactive_user: diff --git a/test/models/user_test.rb b/test/models/user_test.rb index 59445aee4..b5a9f45ff 100644 --- a/test/models/user_test.rb +++ b/test/models/user_test.rb @@ -200,6 +200,8 @@ class UserTest < ActiveSupport::TestCase user.languages = %w(fr de sl) assert_equal "de", user.preferred_language assert_equal "de", user.preferred_language_from(%w(en sl de es)) + user = users(:public_user) + assert_equal %w(en de), user.languages end def test_visible? -- 2.43.2