module ActiveScaffold::Finder::ClassMethods::ActiveRecord

Public Instance Methods

create_conditions_for_columns(tokens, columns) click to toggle source
# File lib/active_scaffold/finder.rb, line 43
def create_conditions_for_columns(tokens, columns)
  where_clauses = []
  columns.each do |column|
    column.search_sql.each do |search_sql|
      where_clauses << "#{search_sql} #{column.text? ? ActiveScaffold::Finder.like_operator : '='} ?"
    end
  end
  phrase = where_clauses.join(' OR ')

  tokens.map do |columns_token|
    columns.each_with_object([phrase]) do |column, condition|
      condition.concat([columns_token[column.name]] * column.search_sql.size)
    end
  end
end
like_pattern(text_search) click to toggle source
# File lib/active_scaffold/finder.rb, line 59
def like_pattern(text_search)
  case text_search
  when :full then '%?%'
  when :start then '?%'
  when :end then '%?'
  else '?'
  end
end