Class: DbTextSearch::CaseInsensitive::InsensitiveColumnAdapter Private

Inherits:
AbstractAdapter
  • Object
show all
Defined in:
lib/db_text_search/case_insensitive/insensitive_column_adapter.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Provides case-insensitive string-in-set querying for case-insensitive columns.

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from AbstractAdapter

#initialize

Methods included from QueryBuilding

included, #sanitize_sql_like

Constructor Details

This class inherits a constructor from DbTextSearch::CaseInsensitive::AbstractAdapter

Class Method Details

.add_index(connection, table_name, column_name, options = {}) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method is abstract.

Add an index for case-insensitive string search.

Parameters:

  • connection (ActiveRecord::ConnectionAdapters::AbstractAdapter)
  • table_name (String, Symbol)
  • column_name (String, Symbol)
  • options (Hash) (defaults to: {})

    passed down to ActiveRecord::ConnectionAdapters::SchemaStatements#add_index.

Options Hash (options):

  • name (String)

    index name

  • unique (Boolean)

    default: false



25
26
27
# File 'lib/db_text_search/case_insensitive/insensitive_column_adapter.rb', line 25

def self.add_index(connection, table_name, column_name, options = {})
  connection.add_index table_name, column_name, **options
end

Instance Method Details

#column_for_order(asc_or_desc) ⇒ Arel::Collectors::SQLString

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method is abstract.

Parameters:

  • asc_or_desc (Symbol)

Returns:

  • (Arel::Collectors::SQLString)


20
21
22
# File 'lib/db_text_search/case_insensitive/insensitive_column_adapter.rb', line 20

def column_for_order(asc_or_desc)
  Arel.sql("#{quoted_scope_column} #{asc_or_desc}")
end

#in(values) ⇒ ActiveRecord::Relation

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method is abstract.

Parameters:

  • values (Array<String>)

Returns:

  • (ActiveRecord::Relation)


10
11
12
# File 'lib/db_text_search/case_insensitive/insensitive_column_adapter.rb', line 10

def in(values)
  @scope.where(@column => values)
end

#prefix(query) ⇒ ActiveRecord::Relation

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method is abstract.

Parameters:

  • query (String)

Returns:

  • (ActiveRecord::Relation)


15
16
17
# File 'lib/db_text_search/case_insensitive/insensitive_column_adapter.rb', line 15

def prefix(query)
  @scope.where "#{quoted_scope_column} LIKE ?", "#{sanitize_sql_like(query)}%"
end