From 718a4c73eea9dd6edf09662e909c86fb6aac7822 Mon Sep 17 00:00:00 2001
From: Felix Eckhofer <felix@eckhofer.com>
Date: Mon, 23 Dec 2024 00:44:16 +0100
Subject: [PATCH] Make language input more forgiving

---
 app/models/user.rb | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/app/models/user.rb b/app/models/user.rb
index 29a0fb2..a3d5efa 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -7,6 +7,7 @@ class User < ApplicationRecord
   validates :name, uniqueness: { case_sensitive: false, message: "already in use" }, allow_nil: false
   validates :email, uniqueness: { case_sensitive: false, message: "already in use" }, allow_nil: true, allow_blank: true
 
+  before_validation :cleanup_languages
   validates :languages_from, format: { with: /\A([a-z][a-z])(,[a-z][a-z])*\z/, message: "please use comma-separated two-letter codes"}, allow_blank: true
   validates :languages_from, length: { maximum: 14 }
 
@@ -60,4 +61,9 @@ class User < ApplicationRecord
     valid_tokens = ["gargamel"]
     errors.add(:invitation_token, "is invalid") unless valid_tokens.include?(invitation_token)
   end
+
+  def cleanup_languages
+    self.languages_from = self.languages_from.gsub(/\s+/, '').downcase
+    self.languages_to = self.languages_to.gsub(/\s+/, '').downcase
+  end
 end
-- 
GitLab