Skip to content

Commit 31da179

Browse files
committed
Merge pull request risuiowa#40 from jtrost/hash-with-indifferent-access
Return a HashWithIndifferentAccess from json_for_autocomplete
2 parents dbff245 + 307ef9f commit 31da179

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

lib/rails-jquery-autocomplete/autocomplete.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def get_object(model_sym)
9898
#
9999
def json_for_autocomplete(items, method, extra_data=[])
100100
items = items.collect do |item|
101-
hash = {"id" => item.id.to_s, "label" => item.send(method), "value" => item.send(method)}
101+
hash = HashWithIndifferentAccess.new({"id" => item.id.to_s, "label" => item.send(method), "value" => item.send(method)})
102102
extra_data.each do |datum|
103103
hash[datum] = item.send(datum)
104104
end if extra_data

test/lib/rails-jquery-autocomplete/autocomplete_test.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,17 @@ class AutocompleteTest < Test::Unit::TestCase
6262
assert_equal response["label"], "Object Name"
6363
end
6464

65+
should 'return an instance of HashWithIndifferentAccess' do
66+
item = mock(Object)
67+
mock(item).send(:name).times(2) { 'Object Name' }
68+
mock(item).id { 1 }
69+
items = [item]
70+
response = self.json_for_autocomplete(items, :name).first
71+
assert_equal response.is_a?(HashWithIndifferentAccess), true
72+
assert_equal response["id"], "1"
73+
assert_equal response[:id], "1"
74+
end
75+
6576
context 'with extra data' do
6677
should 'add that extra data to result' do
6778
item = mock(Object)

0 commit comments

Comments
 (0)