class Suggester::Handlers::ActiveRecord

Public Class Methods

new(params = {}) click to toggle source
Calls superclass method
# File lib/suggester/handlers/active_record.rb, line 7
def initialize(params = {})
  @klass      = params[:class]      || raise("must specify a class")
  @klass = @klass.constantize if @klass.is_a?(String)
  @id_field   = params[:id_field]   || :id
  @name_field = params[:name_field] || :name
  @conditions = params[:conditions] || {}
  @include    = params[:include]   || {}
  super(params)
end

Protected Instance Methods

all_records() click to toggle source
# File lib/suggester/handlers/active_record.rb, line 19
def all_records
  @klass.find(:all, :include => @include, :conditions => @conditions)
end
build_cache() click to toggle source
# File lib/suggester/handlers/active_record.rb, line 23
def build_cache
  cache = []
  all_records.each do |entry|
    cache << build_entry(entry)
  end
  cache.sort{|x,y| x[:search_term] <=> y[:search_term]}
end
build_entry(record) click to toggle source
# File lib/suggester/handlers/active_record.rb, line 31
def build_entry(record)
  {
    :search_term => search_term(record),
    :data => entry_data(record)
  }
end
entry_data(record) click to toggle source
# File lib/suggester/handlers/active_record.rb, line 42
def entry_data(record)
  {
    @unique_field_name  =>  record.send(@name_field),
    :id                 =>  record.send(@id_field),
  }
end
search_term(record) click to toggle source
# File lib/suggester/handlers/active_record.rb, line 38
def search_term(record)
  record.send(@name_field).downcase
end