Module: Rails3JQueryAutocomplete::Autocomplete

Included in:
ActionController::Base
Defined in:
lib/rails3-jquery-autocomplete/autocomplete.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(target) ⇒ Object



3
4
5
6
7
8
9
10
# File 'lib/rails3-jquery-autocomplete/autocomplete.rb', line 3

def self.included(target)
  target.extend Rails3JQueryAutocomplete::Autocomplete::ClassMethods

  target.send :include, Rails3JQueryAutocomplete::Orm::Mongoid if defined?(Mongoid::Document)
  target.send :include, Rails3JQueryAutocomplete::Orm::MongoMapper if defined?(MongoMapper::Document)
  target.send :include, Rails3JQueryAutocomplete::Orm::ActiveRecord

end

Instance Method Details

#get_autocomplete_limit(options) ⇒ Object

Returns a limit that will be used on the query



81
82
83
# File 'lib/rails3-jquery-autocomplete/autocomplete.rb', line 81

def get_autocomplete_limit(options)
  options[:limit] ||= 10
end

#get_object(model_sym) ⇒ Object

Returns parameter model_sym as a constant

get_object(:actor)
# returns a Actor constant supposing it is already defined


90
91
92
# File 'lib/rails3-jquery-autocomplete/autocomplete.rb', line 90

def get_object(model_sym)
  object = model_sym.to_s.camelize.constantize
end

#json_for_autocomplete(items, method, extra_data = []) ⇒ Object

Returns a hash with three keys actually used by the Autocomplete jQuery-ui Can be overriden to show whatever you like Hash also includes a key/value pair for each method in extra_data



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/rails3-jquery-autocomplete/autocomplete.rb', line 99

def json_for_autocomplete(items, method, extra_data=[])
  items = items.collect do |item|
    hash = {"id" => item.id.to_s, "label" => item.send(method), "value" => item.send(method)}
    extra_data.each do |datum|
      hash[datum] = item.send(datum)
    end if extra_data
    # TODO: Come back to remove this if clause when test suite is better
    hash
  end
  if block_given?
    yield(items)
  else 
    items
  end
end