class PgSearch::Features::Feature

def self.valid_options

def self.valid_options
  %i[only sort_only]
end

def columns

def columns
  if options[:only]
    all_columns.select do |column|
      Array.wrap(options[:only]).map(&:to_s).include? column.name
    end
  else
    all_columns
  end
end

def document

def document
  columns.map(&:to_sql).join(" || ' ' || ")
end

def initialize(query, options, all_columns, model, normalizer)

def initialize(query, options, all_columns, model, normalizer)
  @query = query
  @options = (options || {}).assert_valid_keys(self.class.valid_options)
  @all_columns = all_columns
  @model = model
  @normalizer = normalizer
end

def normalize(expression)

def normalize(expression)
  normalizer.add_normalization(expression)
end