Skip to content

Commit 1f09e1f

Browse files
committed
Made the arguments sent to extra_data lambdas the same as those sent to scopes lambdas.
1 parent 27656f1 commit 1f09e1f

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

lib/rails3-jquery-autocomplete/autocomplete.rb

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,17 +49,23 @@ def autocomplete(object, method, options = {})
4949

5050
term = params[:term]
5151

52+
# allow specifying fully qualified class name for model object
53+
class_name = options[:class_name] || object
54+
parameters = {
55+
:model => get_object(class_name),
56+
:controller => self,
57+
:term => term,
58+
:method => method,
59+
:options => options
60+
}
61+
5262
if term && !term.blank?
53-
#allow specifying fully qualified class name for model object
54-
class_name = options[:class_name] || object
55-
items = get_autocomplete_items(:model => get_object(class_name), \
56-
:controller => self, \
57-
:options => options, :term => term, :method => method)
63+
items = get_autocomplete_items(parameters)
5864
else
5965
items = {}
6066
end
6167

62-
render :json => json_for_autocomplete(items, options[:display_value] ||= method, options[:extra_data])
68+
render :json => json_for_autocomplete(items, parameters)
6369
end
6470
end
6571
end
@@ -83,12 +89,14 @@ def get_object(model_sym)
8389
# Can be overriden to show whatever you like
8490
# Hash also includes a key/value pair for each method in extra_data
8591
#
86-
def json_for_autocomplete(items, method, extra_data=[])
92+
def json_for_autocomplete(items, parameters)
93+
method = parameters[:options][:display_value] ||= parameters[:method]
94+
extra_data = parameters[:options][:extra_data]
8795
items.collect do |item|
8896
hash = {"id" => item.id.to_s, "label" => item.send(method), "value" => item.send(method)}
8997
extra_data.each do |k, v|
9098
if v
91-
hash[k] = v.is_a?(Proc) ? v.call(item) : item.send(v)
99+
hash[k] = v.is_a?(Proc) ? v.call(item, parameters) : item.send(v)
92100
else
93101
hash[k] = item.send(k)
94102
end

0 commit comments

Comments
 (0)