Casecommons/pg_search

View on GitHub
lib/pg_search/normalizer.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# frozen_string_literal: true

module PgSearch
  class Normalizer
    def initialize(config)
      @config = config
    end

    def add_normalization(sql_expression)
      return sql_expression unless config.ignore.include?(:accents)

      sql_node = case sql_expression
      when Arel::Nodes::Node
        sql_expression
      else
        Arel.sql(sql_expression)
      end

      Arel::Nodes::NamedFunction.new(
        PgSearch.unaccent_function,
        [sql_node]
      ).to_sql
    end

    private

    attr_reader :config
  end
end