Module: RailsAutocomplete::Autocomplete
- Included in:
- ActionController::Base
- Defined in:
- lib/rails-autocomplete/autocomplete.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
-
#get_autocomplete_limit(options) ⇒ Object
Returns a limit that will be used on the query.
-
#get_object(model_sym) ⇒ Object
Returns parameter model_sym as a constant.
-
#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.
Class Method Details
.included(target) ⇒ Object
3 4 5 6 |
# File 'lib/rails-autocomplete/autocomplete.rb', line 3 def self.included(target) target.extend RailsAutocomplete::Autocomplete::ClassMethods target.send :include, RailsAutocomplete::Orm::ActiveRecord end |
Instance Method Details
#get_autocomplete_limit(options) ⇒ Object
Returns a limit that will be used on the query
71 72 73 |
# File 'lib/rails-autocomplete/autocomplete.rb', line 71 def get_autocomplete_limit() [: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
80 81 82 |
# File 'lib/rails-autocomplete/autocomplete.rb', line 80 def get_object(model_sym) 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
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/rails-autocomplete/autocomplete.rb', line 89 def json_for_autocomplete(items, method, extra_data=[]) items = items.collect do |item| hash = HashWithIndifferentAccess.new({"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 |