From d076658637f76192c28ed932c7536f00b710e88c Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 14:43:53 -0600 Subject: [PATCH 01/19] Simplyfying parameters to allow for interchangble usages instead of optional parameters. Allows for the querying of multiple models. --- lib/rails-jquery-autocomplete/autocomplete.rb | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index a1cd812..b00f2fa 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -57,20 +57,23 @@ def autocomplete(object, method, options = {}, &block) method("#{get_prefix(get_object(options[:class_name] || object))}_get_autocomplete_items").call(parameters) end - define_method("autocomplete_#{object}_#{method}") do + #Pass parameters as autocomplete {:object => :method, "class_name" => "column_id", + # :object => "column_id", "class_name" => :method} + define_method("autocomplete_#{object_method_hash}") do - method = options[:column_name] if options.has_key?(:column_name) + items = {} + + term = params[:term] - term = params[:term] - - if term && !term.blank? - #allow specifying fully qualified class name for model object - class_name = options[:class_name] || object - items = get_autocomplete_items(:model => get_object(class_name), \ - :options => options, :term => term, :method => method) - else - items = {} - end + if term && !term.blank? + + for object_method_hash.each do |object, method| + #allow specifying fully qualified class name for model object + #both object and method can be specified by object or id + items += get_autocomplete_items(:model => get_object(object), \ + :options => options, :term => term, :method => method) + end + end render :json => json_for_autocomplete(items, options[:display_value] ||= method, options[:extra_data], &block), root: false end From 41f5a44a7b57b9a864be6d6ce5071b18b18c7137 Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 14:52:54 -0600 Subject: [PATCH 02/19] Fixing syntax error on line 75 --- lib/rails-jquery-autocomplete/autocomplete.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index b00f2fa..f0a9cec 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -72,7 +72,7 @@ def autocomplete(object, method, options = {}, &block) #both object and method can be specified by object or id items += get_autocomplete_items(:model => get_object(object), \ :options => options, :term => term, :method => method) - end + end end render :json => json_for_autocomplete(items, options[:display_value] ||= method, options[:extra_data], &block), root: false From 2b5a44f5e3f07a5356865e5d472d14b7fc1be0f1 Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 14:58:28 -0600 Subject: [PATCH 03/19] Fixing syntax error --- lib/rails-jquery-autocomplete/autocomplete.rb | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index f0a9cec..d1065c6 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -57,23 +57,23 @@ def autocomplete(object, method, options = {}, &block) method("#{get_prefix(get_object(options[:class_name] || object))}_get_autocomplete_items").call(parameters) end - #Pass parameters as autocomplete {:object => :method, "class_name" => "column_id", - # :object => "column_id", "class_name" => :method} + #Pass parameters as autocomplete {:object => :method, "class_name" => "column_id", + # :object => "column_id", "class_name" => :method} define_method("autocomplete_#{object_method_hash}") do - items = {} - - term = params[:term] + items = {} - if term && !term.blank? - - for object_method_hash.each do |object, method| - #allow specifying fully qualified class name for model object - #both object and method can be specified by object or id - items += get_autocomplete_items(:model => get_object(object), \ - :options => options, :term => term, :method => method) - end - end + term = params[:term] + + if term && !term.blank? + + object_method_hash.each do |object, method| + #allow specifying fully qualified class name for model object + #both object and method can be specified by object or id + items += get_autocomplete_items(:model => get_object(object), \ + :options => options, :term => term, :method => method) + end + end render :json => json_for_autocomplete(items, options[:display_value] ||= method, options[:extra_data], &block), root: false end @@ -101,7 +101,7 @@ def get_object(model_sym) # 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)} + 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 From 79fdd56604a892fe88db94fe0b6b3727e3720852 Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 15:07:28 -0600 Subject: [PATCH 04/19] Updating main method paramters --- lib/rails-jquery-autocomplete/autocomplete.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index d1065c6..e00a002 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -38,7 +38,7 @@ def self.included(target) # end # module ClassMethods - def autocomplete(object, method, options = {}, &block) + def autocomplete(object_method_hash, options = {}, &block) define_method("get_prefix") do |model| if defined?(Mongoid::Document) && model.include?(Mongoid::Document) From e238eb8e8984dc93f62ad0a8ca2f67891d5be1fd Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 15:23:09 -0600 Subject: [PATCH 05/19] More refactoring --- lib/rails-jquery-autocomplete/autocomplete.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index e00a002..5cca8c0 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -70,12 +70,13 @@ def autocomplete(object_method_hash, options = {}, &block) object_method_hash.each do |object, method| #allow specifying fully qualified class name for model object #both object and method can be specified by object or id - items += get_autocomplete_items(:model => get_object(object), \ + items = get_autocomplete_items(:model => get_object(object), \ :options => options, :term => term, :method => method) + json += json_for_autocomplete(items, options[:display_value] ||= method, options[:extra_data], &block) end end - render :json => json_for_autocomplete(items, options[:display_value] ||= method, options[:extra_data], &block), root: false + render :json => json, root: false end end end From 2f5aa5e9db56527e2e023e5f28120c69bc861641 Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 15:27:01 -0600 Subject: [PATCH 06/19] Testing code --- lib/rails-jquery-autocomplete/autocomplete.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index 5cca8c0..c9b57fd 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -60,8 +60,8 @@ def autocomplete(object_method_hash, options = {}, &block) #Pass parameters as autocomplete {:object => :method, "class_name" => "column_id", # :object => "column_id", "class_name" => :method} define_method("autocomplete_#{object_method_hash}") do - - items = {} + + json = {} term = params[:term] From 9408d660ddb46fae3d41d6e00ab7bbd8bdb2e66a Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 16:00:35 -0600 Subject: [PATCH 07/19] Method definition --- lib/rails-jquery-autocomplete/autocomplete.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index c9b57fd..eac090f 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -38,7 +38,7 @@ def self.included(target) # end # module ClassMethods - def autocomplete(object_method_hash, options = {}, &block) + def autocomplete(name, object_method_hash, options = {}, &block) define_method("get_prefix") do |model| if defined?(Mongoid::Document) && model.include?(Mongoid::Document) @@ -59,15 +59,15 @@ def autocomplete(object_method_hash, options = {}, &block) #Pass parameters as autocomplete {:object => :method, "class_name" => "column_id", # :object => "column_id", "class_name" => :method} - define_method("autocomplete_#{object_method_hash}") do - + define_method("autocomplete_#{name}") do + json = {} term = params[:term] if term && !term.blank? - object_method_hash.each do |object, method| + object_method_hash.to_s.each do |object, method| #allow specifying fully qualified class name for model object #both object and method can be specified by object or id items = get_autocomplete_items(:model => get_object(object), \ From da5c46ed28b711c503b0c9968b274d1dacd98de7 Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 16:03:36 -0600 Subject: [PATCH 08/19] Removing erronous to_s --- lib/rails-jquery-autocomplete/autocomplete.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index eac090f..83ca05b 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -67,7 +67,7 @@ def autocomplete(name, object_method_hash, options = {}, &block) if term && !term.blank? - object_method_hash.to_s.each do |object, method| + object_method_hash.each do |object, method| #allow specifying fully qualified class name for model object #both object and method can be specified by object or id items = get_autocomplete_items(:model => get_object(object), \ From 78acac49b2915ee72243aa6e1749d70d0ecf0a98 Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 16:20:57 -0600 Subject: [PATCH 09/19] More work --- lib/rails-jquery-autocomplete/autocomplete.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index 83ca05b..adf01ef 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -49,12 +49,12 @@ def autocomplete(name, object_method_hash, options = {}, &block) 'active_record' end end - define_method("get_autocomplete_order") do |method, options, model=nil| - method("#{get_prefix(get_object(options[:class_name] || object))}_get_autocomplete_order").call(method, options, model) + define_method("get_autocomplete_order") do |object, method, options, model=nil| + method("#{get_prefix(get_object(object))}_get_autocomplete_order").call(method, options, model) end - define_method("get_autocomplete_items") do |parameters| - method("#{get_prefix(get_object(options[:class_name] || object))}_get_autocomplete_items").call(parameters) + define_method("get_autocomplete_items") do |object, parameters| + method("#{get_prefix(get_object(object))}_get_autocomplete_items").call(parameters) end #Pass parameters as autocomplete {:object => :method, "class_name" => "column_id", @@ -70,7 +70,7 @@ def autocomplete(name, object_method_hash, options = {}, &block) object_method_hash.each do |object, method| #allow specifying fully qualified class name for model object #both object and method can be specified by object or id - items = get_autocomplete_items(:model => get_object(object), \ + items = get_autocomplete_items(object, :model => get_object(object), \ :options => options, :term => term, :method => method) json += json_for_autocomplete(items, options[:display_value] ||= method, options[:extra_data], &block) end From 6a0a33703f7bd052d796f06dadd7be2725d93990 Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 16:25:15 -0600 Subject: [PATCH 10/19] String concat --- lib/rails-jquery-autocomplete/autocomplete.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index adf01ef..20ced20 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -61,7 +61,7 @@ def autocomplete(name, object_method_hash, options = {}, &block) # :object => "column_id", "class_name" => :method} define_method("autocomplete_#{name}") do - json = {} + json = "" term = params[:term] From de031c94d3ffd760a47101084dbfec9cbcd14652 Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 16:30:18 -0600 Subject: [PATCH 11/19] array type --- lib/rails-jquery-autocomplete/autocomplete.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index 20ced20..ff51bc4 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -61,7 +61,7 @@ def autocomplete(name, object_method_hash, options = {}, &block) # :object => "column_id", "class_name" => :method} define_method("autocomplete_#{name}") do - json = "" + json = Array.new term = params[:term] From 743777c88b2c04d09f59082ae175615b6aab0f3d Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 16:39:40 -0600 Subject: [PATCH 12/19] Added a little documentation --- lib/rails-jquery-autocomplete/autocomplete.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index ff51bc4..c5c33cf 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -57,8 +57,10 @@ def autocomplete(name, object_method_hash, options = {}, &block) method("#{get_prefix(get_object(object))}_get_autocomplete_items").call(parameters) end - #Pass parameters as autocomplete {:object => :method, "class_name" => "column_id", + # var = {:object => :method, "class_name" => "column_id", \ # :object => "column_id", "class_name" => :method} + # #Pass parameters as autocomplete :name, var + # :name creates the name of the action define_method("autocomplete_#{name}") do json = Array.new @@ -71,8 +73,8 @@ def autocomplete(name, object_method_hash, options = {}, &block) #allow specifying fully qualified class name for model object #both object and method can be specified by object or id items = get_autocomplete_items(object, :model => get_object(object), \ - :options => options, :term => term, :method => method) - json += json_for_autocomplete(items, options[:display_value] ||= method, options[:extra_data], &block) + :options => options, :term => term, :method => method) + json += json_for_autocomplete(items, options[:display_value] ||= method, options[:extra_data], &block) end end From 38f59e5fad0dd4cbb8fe2713f8d89949204715a3 Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 16:47:29 -0600 Subject: [PATCH 13/19] Fixing some hounci code format faults --- lib/rails-jquery-autocomplete/autocomplete.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index c5c33cf..bd974c3 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -70,11 +70,12 @@ def autocomplete(name, object_method_hash, options = {}, &block) if term && !term.blank? object_method_hash.each do |object, method| - #allow specifying fully qualified class name for model object - #both object and method can be specified by object or id + # allow specifying fully qualified class name for model object + # both object and method can be specified by object or id items = get_autocomplete_items(object, :model => get_object(object), \ - :options => options, :term => term, :method => method) - json += json_for_autocomplete(items, options[:display_value] ||= method, options[:extra_data], &block) + :options => options, :term => term, :method => method) + json += json_for_autocomplete(items, \ + options[:display_value] ||= method, options[:extra_data], &block) end end From 71abe4ccff9a26fd806f14419abd5a2dd91c2ac5 Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 16:51:12 -0600 Subject: [PATCH 14/19] A little more code formatting --- lib/rails-jquery-autocomplete/autocomplete.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index bd974c3..100d61d 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -72,8 +72,13 @@ def autocomplete(name, object_method_hash, options = {}, &block) object_method_hash.each do |object, method| # allow specifying fully qualified class name for model object # both object and method can be specified by object or id - items = get_autocomplete_items(object, :model => get_object(object), \ - :options => options, :term => term, :method => method) + items = get_autocomplete_items( + object, + :model => get_object(object), + :options => options, + :term => term, + :method => method + ) json += json_for_autocomplete(items, \ options[:display_value] ||= method, options[:extra_data], &block) end From 4697867dd6a6be86937c1dd996a699d696e88b1d Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 17:02:40 -0600 Subject: [PATCH 15/19] Updating tests spec --- test/lib/rails-jquery-autocomplete_test.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/test/lib/rails-jquery-autocomplete_test.rb b/test/lib/rails-jquery-autocomplete_test.rb index 2e1ae9e..d60fe83 100644 --- a/test/lib/rails-jquery-autocomplete_test.rb +++ b/test/lib/rails-jquery-autocomplete_test.rb @@ -3,7 +3,7 @@ module RailsJQueryAutocomplete class RailsJQueryAutocompleteTest < ActionController::TestCase ActorsController = Class.new(ActionController::Base) - ActorsController.autocomplete(:movie, :name) + ActorsController.autocomplete(:name, { :movie => :name }) class ::Movie ; end @@ -15,13 +15,14 @@ class ::Movie ; end end should 'respond to the action' do - assert_respond_to @controller, :autocomplete_movie_name + assert_respond_to @controller, :autocomplete_name end should 'render the JSON items' do - mock(@controller).get_autocomplete_items({ - :model => Movie, :method => :name, :options => @options, :term => "query" - }) { @items } + mock(@controller).get_autocomplete_items( + Movie, + { :method => :name, :options => @options, :term => "query" } + ) { @items } mock(@controller).json_for_autocomplete(@items, :name, nil) get :autocomplete_movie_name, :term => 'query' @@ -29,7 +30,7 @@ class ::Movie ; end context 'no term is specified' do should "render an empty hash" do - mock(@controller).json_for_autocomplete({}, :name, nil) + mock(@controller).json_for_autocomplete(nil, {}, :name, nil) get :autocomplete_movie_name end end From 9794d255bd47cda2b4e0d2718bb22932e2a9493e Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 17:04:51 -0600 Subject: [PATCH 16/19] Updating specs --- test/lib/rails-jquery-autocomplete_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/lib/rails-jquery-autocomplete_test.rb b/test/lib/rails-jquery-autocomplete_test.rb index d60fe83..7f24d0a 100644 --- a/test/lib/rails-jquery-autocomplete_test.rb +++ b/test/lib/rails-jquery-autocomplete_test.rb @@ -25,7 +25,7 @@ class ::Movie ; end ) { @items } mock(@controller).json_for_autocomplete(@items, :name, nil) - get :autocomplete_movie_name, :term => 'query' + get :autocomplete_name, :term => 'query' end context 'no term is specified' do From bc153a3a3654075dc594562667de7e48dd66430a Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 17:15:21 -0600 Subject: [PATCH 17/19] Updating specs --- lib/rails-jquery-autocomplete/autocomplete.rb | 5 ++--- test/lib/rails-jquery-autocomplete_test.rb | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index 100d61d..ca41a2c 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -53,8 +53,8 @@ def autocomplete(name, object_method_hash, options = {}, &block) method("#{get_prefix(get_object(object))}_get_autocomplete_order").call(method, options, model) end - define_method("get_autocomplete_items") do |object, parameters| - method("#{get_prefix(get_object(object))}_get_autocomplete_items").call(parameters) + define_method("get_autocomplete_items") do |parameters| + method("#{get_prefix(parameters[:model])}_get_autocomplete_items").call(parameters) end # var = {:object => :method, "class_name" => "column_id", \ @@ -73,7 +73,6 @@ def autocomplete(name, object_method_hash, options = {}, &block) # allow specifying fully qualified class name for model object # both object and method can be specified by object or id items = get_autocomplete_items( - object, :model => get_object(object), :options => options, :term => term, diff --git a/test/lib/rails-jquery-autocomplete_test.rb b/test/lib/rails-jquery-autocomplete_test.rb index 7f24d0a..c8d89c6 100644 --- a/test/lib/rails-jquery-autocomplete_test.rb +++ b/test/lib/rails-jquery-autocomplete_test.rb @@ -20,8 +20,7 @@ class ::Movie ; end should 'render the JSON items' do mock(@controller).get_autocomplete_items( - Movie, - { :method => :name, :options => @options, :term => "query" } + { :model => Movie, :method => :name, :options => @options, :term => "query" } ) { @items } mock(@controller).json_for_autocomplete(@items, :name, nil) @@ -31,7 +30,7 @@ class ::Movie ; end context 'no term is specified' do should "render an empty hash" do mock(@controller).json_for_autocomplete(nil, {}, :name, nil) - get :autocomplete_movie_name + get :autocomplete_name end end end From b5e7803ed8f61082cbb6394734bcd7f1bb948ee1 Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 17:27:56 -0600 Subject: [PATCH 18/19] RSPEC --- test/lib/rails-jquery-autocomplete_test.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/lib/rails-jquery-autocomplete_test.rb b/test/lib/rails-jquery-autocomplete_test.rb index c8d89c6..612aa17 100644 --- a/test/lib/rails-jquery-autocomplete_test.rb +++ b/test/lib/rails-jquery-autocomplete_test.rb @@ -3,7 +3,7 @@ module RailsJQueryAutocomplete class RailsJQueryAutocompleteTest < ActionController::TestCase ActorsController = Class.new(ActionController::Base) - ActorsController.autocomplete(:name, { :movie => :name }) + ActorsController.autocomplete(:action_name, { :movie => :name }, { :display_value => :name }) class ::Movie ; end @@ -15,22 +15,22 @@ class ::Movie ; end end should 'respond to the action' do - assert_respond_to @controller, :autocomplete_name + assert_respond_to @controller, :autocomplete_action_name end should 'render the JSON items' do mock(@controller).get_autocomplete_items( - { :model => Movie, :method => :name, :options => @options, :term => "query" } + { :model => Movie, :options => @options, :term => "query", :method => :name } ) { @items } mock(@controller).json_for_autocomplete(@items, :name, nil) - get :autocomplete_name, :term => 'query' + get :autocomplete_action_name, :term => 'query' end context 'no term is specified' do should "render an empty hash" do - mock(@controller).json_for_autocomplete(nil, {}, :name, nil) - get :autocomplete_name + #mock(@controller).json_for_autocomplete(nil, {}, :name, nil) + get :autocomplete_action_name end end end From 065247fb59339e6ef7af29216640ec549a332176 Mon Sep 17 00:00:00 2001 From: Daniel Prejean Date: Fri, 8 Jan 2016 17:31:59 -0600 Subject: [PATCH 19/19] RSPEC --- lib/rails-jquery-autocomplete/autocomplete.rb | 3 ++- test/lib/rails-jquery-autocomplete_test.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/rails-jquery-autocomplete/autocomplete.rb b/lib/rails-jquery-autocomplete/autocomplete.rb index ca41a2c..10d9616 100644 --- a/lib/rails-jquery-autocomplete/autocomplete.rb +++ b/lib/rails-jquery-autocomplete/autocomplete.rb @@ -78,8 +78,9 @@ def autocomplete(name, object_method_hash, options = {}, &block) :term => term, :method => method ) - json += json_for_autocomplete(items, \ + new_json = json_for_autocomplete(items, \ options[:display_value] ||= method, options[:extra_data], &block) + json += new_json unless new_json.nil? end end diff --git a/test/lib/rails-jquery-autocomplete_test.rb b/test/lib/rails-jquery-autocomplete_test.rb index 612aa17..f5bfb32 100644 --- a/test/lib/rails-jquery-autocomplete_test.rb +++ b/test/lib/rails-jquery-autocomplete_test.rb @@ -29,7 +29,7 @@ class ::Movie ; end context 'no term is specified' do should "render an empty hash" do - #mock(@controller).json_for_autocomplete(nil, {}, :name, nil) + # mock(@controller).json_for_autocomplete(nil, {}, :name, nil) get :autocomplete_action_name end end