class AutoSelect2::Select2SearchAdapter::Default

Public Class Methods

search_default(term, page, options) click to toggle source
# File lib/auto_select2/select2_search_adapter/default.rb, line 5
def search_default(term, page, options)
  if !@searchable_class || @id_column.blank? || @text_columns.blank?
    raise_not_implemented
  end
  if options[:init].nil?
    default_values =
        default_finder(@searchable_class,
                       term,
                       page: page,
                       column: @text_columns,
                       case_sensitive: @case_sensitive.nil? ? options[:case_sensitive] : @case_sensitive)
    total_count =
        default_count(@searchable_class,
                      term,
                      column: @text_columns,
                      case_sensitive: @case_sensitive.nil? ? options[:case_sensitive] : @case_sensitive)
    {
        items: default_values.map do |default_value|
          get_select2_hash(
              default_value,
              @select2_hash_method,
              @id_column,
              @text_columns
          )
        end,
        total: total_count
    }
  else
    options[:id_column] = @id_column
    options[:text_columns] = @text_columns
    get_init_values(
        @searchable_class,
        options[:item_ids],
        options
    )
  end
end

Private Class Methods

case_sensitive(casi) click to toggle source
# File lib/auto_select2/select2_search_adapter/default.rb, line 61
def case_sensitive(casi)
  @case_sensitive = casi
end
hash_method(method_sym) click to toggle source
# File lib/auto_select2/select2_search_adapter/default.rb, line 57
def hash_method(method_sym)
  @select2_hash_method = method_sym
end
id_column(id_column) click to toggle source
# File lib/auto_select2/select2_search_adapter/default.rb, line 49
def id_column(id_column)
  @id_column = id_column
end
raise_not_implemented() click to toggle source
# File lib/auto_select2/select2_search_adapter/default.rb, line 65
def raise_not_implemented
  raise NotImplementedError,
        'You need to implement your own SearchAdapter. Use: `rails generate auto_select2:search_adapter`'
end
searchable_class(klass) click to toggle source
# File lib/auto_select2/select2_search_adapter/default.rb, line 45
def searchable_class(klass)
  @searchable_class = klass
end
text_columns(*column_names) click to toggle source
# File lib/auto_select2/select2_search_adapter/default.rb, line 53
def text_columns(*column_names)
  @text_columns = column_names
end