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