From 6bd082feab8eea9c203e8bcc6a60c66c9059fbf3 Mon Sep 17 00:00:00 2001 From: Dan Ungureanu Date: Mon, 27 May 2019 16:52:09 +0300 Subject: [PATCH] FIX: Update mapping between locales and Postgres dictionaries. (#7606) --- lib/search.rb | 29 ++++++++++++++++------------- spec/lib/search_spec.rb | 18 ++++++++++++++++++ 2 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 spec/lib/search_spec.rb diff --git a/lib/search.rb b/lib/search.rb index 48f54f721e8..13a31492d2c 100644 --- a/lib/search.rb +++ b/lib/search.rb @@ -41,19 +41,22 @@ class Search # But it may not appear there based on pg extension configuration. # base docker config # - case locale.to_sym - when :da then 'danish' - when :de then 'german' - when :en then 'english' - when :es then 'spanish' - when :fr then 'french' - when :it then 'italian' - when :nl then 'dutch' - when :nb_NO then 'norwegian' - when :pt then 'portuguese' - when :pt_BR then 'portuguese' - when :sv then 'swedish' - when :ru then 'russian' + case locale.split("_")[0].to_sym + when :da then 'danish' + when :nl then 'dutch' + when :en then 'english' + when :fi then 'finnish' + when :fr then 'french' + when :de then 'german' + when :hu then 'hungarian' + when :it then 'italian' + when :nb then 'norwegian' + when :pt then 'portuguese' + when :ro then 'romanian' + when :ru then 'russian' + when :es then 'spanish' + when :sv then 'swedish' + when :tr then 'turkish' else 'simple' # use the 'simple' stemmer for other languages end end diff --git a/spec/lib/search_spec.rb b/spec/lib/search_spec.rb new file mode 100644 index 00000000000..5108b82f1db --- /dev/null +++ b/spec/lib/search_spec.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Search do + + context "#ts_config" do + it "maps locales to correct Postgres dictionaries" do + expect(Search.ts_config).to eq("english") + expect(Search.ts_config("en")).to eq("english") + expect(Search.ts_config("en_US")).to eq("english") + expect(Search.ts_config("pt_BR")).to eq("portuguese") + expect(Search.ts_config("tr")).to eq("turkish") + expect(Search.ts_config("xx")).to eq("simple") + end + end + +end