rails-jquery-autocomplete 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -13
 - data/README.md +28 -46
 - data/lib/assets/javascripts/autocomplete-rails-uncompressed.js +14 -2
 - data/lib/assets/javascripts/autocomplete-rails.js +1 -1
 - data/lib/rails-jquery-autocomplete/version.rb +1 -1
 - data/test/form_helper_test.rb +25 -0
 - data/test/generators/autocomplete/install_generator_test.rb +25 -0
 - data/test/generators/autocomplete/uncompressed_generator_test.rb +25 -0
 - data/test/lib/rails-jquery-autocomplete/autocomplete_test.rb +82 -0
 - data/test/lib/rails-jquery-autocomplete/orm/active_record_test.rb +190 -0
 - data/test/lib/rails-jquery-autocomplete/orm/mongo_mapper_test.rb +60 -0
 - data/test/lib/rails-jquery-autocomplete/orm/mongoid_test.rb +60 -0
 - data/test/lib/rails-jquery-autocomplete/simple_form_plugin_test.rb +33 -0
 - data/test/lib/rails-jquery-autocomplete_test.rb +38 -0
 - data/test/test_helper.rb +36 -0
 - data/test/view_test_helper.rb +108 -0
 - metadata +46 -39
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,15 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
              data.tar.gz: !binary |-
         
     | 
| 
       6 
     | 
    
         
            -
                YTQyYjQyYjk2MTg1ZWYwOTZiMGMwYzNmMDE0ZWM5ZjJhMTI3NmFiZQ==
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA1:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: bf8cc770234ad7b4dc2e5f40ce94eeef32f8d863
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: db3cdccdece71ac86dbe930c2ddfdf1978520651
         
     | 
| 
       7 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       8 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                YjEwNjI0ZWU4YWFmZGExNmNiYjJiMjlhMmY3ZWU5YzM0Y2RhZjMxMGM0MTYy
         
     | 
| 
       11 
     | 
    
         
            -
                Y2Y2MjBkMWI0YzY3MzBhNGFiZDRjYTlhMWEyZmVkMzI0OGEwNDU=
         
     | 
| 
       12 
     | 
    
         
            -
              data.tar.gz: !binary |-
         
     | 
| 
       13 
     | 
    
         
            -
                ZmM5YWNmNWUwMDQyZDZkNGQzY2RjYTU2OGY1OWZmYWRlMTI1ZWYzZmE4NDhl
         
     | 
| 
       14 
     | 
    
         
            -
                ZWViNzY5ZmRmMTQyYWY3Y2ZjODFiNGNjYWMwZmRlYTUxNzJkMTA2OGVmZmRl
         
     | 
| 
       15 
     | 
    
         
            -
                NjllYWIwYTgxOWQ5NTQ3NTBiM2Q0ZDM2MTBhMmM1ZjNiNzAyMGI=
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 5d9890a5fa77fa0067d4d8ccb8669ea04622c11a645da8e7e01861a18bd5ad45a86b155756fa1a6db8762304e2c95ab0873a8930c0f4d28bcb9f28393b45439d
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 3a6deefdc47513cdcd6830a4349f64972791de3d6f6536dee5d53c2f68d43c2fe0d37691161d9f3dcb2499467cca82630b2b0d0e2d6bcfbe426364b6a4fa85ac
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,52 +1,17 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ## Status
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
               are going to be a lot of changes going on here and while we will do our best; there will probably
         
     | 
| 
       10 
     | 
    
         
            -
               be some breakage on master in the short term.  Use at your discretion!
         
     | 
| 
       11 
     | 
    
         
            -
            3. Some pull requests have been submitted to address the same functionality; in those cases we will try
         
     | 
| 
       12 
     | 
    
         
            -
               to pick the best/optimal solution, accept that and close out the other tickets.
         
     | 
| 
       13 
     | 
    
         
            -
            4. Backwards compatibility is considered a high priority, so if a pull request is a great idea,
         
     | 
| 
       14 
     | 
    
         
            -
               but it breaks backwards compatibility, it will be closed and noted that it causes breakage
         
     | 
| 
       15 
     | 
    
         
            -
               to backwards compatibility.  If anyone passionately wants the feature they are welcome to update
         
     | 
| 
       16 
     | 
    
         
            -
               in a way that maintiains backwards compatibility and issue new pull reqs.
         
     | 
| 
       17 
     | 
    
         
            -
            5. Performance is critical.  If a feature is a nice to have, but has been implemented in such a way that it causes
         
     | 
| 
       18 
     | 
    
         
            -
               performance degradation to existing searches; it will be rejected.
         
     | 
| 
       19 
     | 
    
         
            -
            6. Thanks to everyone who is submitting pull requests, issues, comments, etc... I appreciate the help
         
     | 
| 
       20 
     | 
    
         
            -
               from each one of you.  Sometimes it has to get worse before it gets better.  But I promise,
         
     | 
| 
       21 
     | 
    
         
            -
               it will get better!
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
            -------
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
            Thanks to David @ crowdint for creating this gem and all of his hard
         
     | 
| 
       26 
     | 
    
         
            -
            work on it in the past.
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
            Just posting this update to let everyone know this project is still
         
     | 
| 
       29 
     | 
    
         
            -
            alive and has a new maintainer.  Over the next couple of weeks we will
         
     | 
| 
       30 
     | 
    
         
            -
            be reviewing existing pull requests and you will see updates shortly.
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
            Thanks for your patience.
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
            joiey-seeley@uiowa.edu
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
            -------
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
            Unfortunately, I don't have much time to work on this gem, I'm looking for
         
     | 
| 
       39 
     | 
    
         
            -
            someone to help with its maintenance. Send me an email if you are interested in
         
     | 
| 
       40 
     | 
    
         
            -
            getting push privileges to this repo.
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
            david@crowdint.com
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
            1. This is the officially maintained fork of
         
     | 
| 
      
 4 
     | 
    
         
            +
               [rails3-jquery-autocomplete](http://github.com/crowdint/rails3-jquery-autocomplete)
         
     | 
| 
      
 5 
     | 
    
         
            +
            2. All new features and support of Rails 4 and above will occur here
         
     | 
| 
      
 6 
     | 
    
         
            +
               going forward.  If you are still using Rails 3 please continue to use
         
     | 
| 
      
 7 
     | 
    
         
            +
            the previous fork.  No new features will be added there, but bug fixes &
         
     | 
| 
      
 8 
     | 
    
         
            +
            security patches will continue until Rails 3 is EOL.
         
     | 
| 
       44 
9 
     | 
    
         | 
| 
       45 
10 
     | 
    
         
             
            # rails-jquery-autocomplete
         
     | 
| 
       46 
11 
     | 
    
         | 
| 
       47 
     | 
    
         
            -
            [](http://travis-ci.org/bigtunacan/rails-jquery-autocomplete) [](http://badge.fury.io/rb/rails-jquery-autocomplete)
         
     | 
| 
       48 
13 
     | 
    
         | 
| 
       49 
     | 
    
         
            -
            An easy way to use jQuery's autocomplete with Rails 
     | 
| 
      
 14 
     | 
    
         
            +
            An easy way to use jQuery's autocomplete with Rails.
         
     | 
| 
       50 
15 
     | 
    
         | 
| 
       51 
16 
     | 
    
         
             
            Supports both ActiveRecord, [mongoid](http://github.com/mongoid/mongoid), and [MongoMapper](https://github.com/jnunemaker/mongomapper).
         
     | 
| 
       52 
17 
     | 
    
         | 
| 
         @@ -86,7 +51,7 @@ Install it 
     | 
|
| 
       86 
51 
     | 
    
         | 
| 
       87 
52 
     | 
    
         
             
                bundle install
         
     | 
| 
       88 
53 
     | 
    
         | 
| 
       89 
     | 
    
         
            -
            ### Rails  
     | 
| 
      
 54 
     | 
    
         
            +
            ### Rails 4.x.x
         
     | 
| 
       90 
55 
     | 
    
         | 
| 
       91 
56 
     | 
    
         
             
            Run the generator
         
     | 
| 
       92 
57 
     | 
    
         | 
| 
         @@ -111,7 +76,7 @@ uncompressed version by running: 
     | 
|
| 
       111 
76 
     | 
    
         | 
| 
       112 
77 
     | 
    
         
             
                rails generate autocomplete:uncompressed
         
     | 
| 
       113 
78 
     | 
    
         | 
| 
       114 
     | 
    
         
            -
            ### Rails  
     | 
| 
      
 79 
     | 
    
         
            +
            ### Rails 4 and higher
         
     | 
| 
       115 
80 
     | 
    
         | 
| 
       116 
81 
     | 
    
         
             
            Just add it to your app/assets/javascripts/application.js file
         
     | 
| 
       117 
82 
     | 
    
         | 
| 
         @@ -273,7 +238,23 @@ To have the first item be automatically focused on when the autocomplete menu is 
     | 
|
| 
       273 
238 
     | 
    
         
             
            		'data-auto-focus' => true
         
     | 
| 
       274 
239 
     | 
    
         
             
            	end
         
     | 
| 
       275 
240 
     | 
    
         | 
| 
       276 
     | 
    
         
            -
            Now your autocomplete code is unobtrusive, Rails  
     | 
| 
      
 241 
     | 
    
         
            +
            Now your autocomplete code is unobtrusive, Rails style.
         
     | 
| 
      
 242 
     | 
    
         
            +
             
     | 
| 
      
 243 
     | 
    
         
            +
            #### Client-side config
         
     | 
| 
      
 244 
     | 
    
         
            +
             
     | 
| 
      
 245 
     | 
    
         
            +
            To configure the behaviour if no matches are found, you can set the following options:
         
     | 
| 
      
 246 
     | 
    
         
            +
             
     | 
| 
      
 247 
     | 
    
         
            +
                jQuery.railsAutocomplete.options.showNoMatches //default true
         
     | 
| 
      
 248 
     | 
    
         
            +
                jQuery.railsAutocomplete.options.noMatchesLabel //default 'no existing match'
         
     | 
| 
      
 249 
     | 
    
         
            +
             
     | 
| 
      
 250 
     | 
    
         
            +
            These will change the behaviour globally. To set them on a single input field use:
         
     | 
| 
      
 251 
     | 
    
         
            +
             
     | 
| 
      
 252 
     | 
    
         
            +
                f.autocomplete_field :brand_names, autocomplete_brand_name_products_path, 
         
     | 
| 
      
 253 
     | 
    
         
            +
                'data-showNoMatches' => false
         
     | 
| 
      
 254 
     | 
    
         
            +
                #or
         
     | 
| 
      
 255 
     | 
    
         
            +
                f.autocomplete_field :brand_names, autocomplete_brand_name_products_path, 
         
     | 
| 
      
 256 
     | 
    
         
            +
                'data-noMatchesLabel' => 'no brands found'
         
     | 
| 
      
 257 
     | 
    
         
            +
             
     | 
| 
       277 
258 
     | 
    
         | 
| 
       278 
259 
     | 
    
         
             
            ### Getting the object id
         
     | 
| 
       279 
260 
     | 
    
         | 
| 
         @@ -474,3 +455,4 @@ Everyone on [this list](https://github.com/crowdint/rails3-jquery-autocomplete/c 
     | 
|
| 
       474 
455 
     | 
    
         
             
            We specialize in building and growing online retail stores. We don’t work with everyone – just companies we believe in. Call us today to see if there’s a fit.
         
     | 
| 
       475 
456 
     | 
    
         
             
            Find more info [here](http://www.crowdint.com)!
         
     | 
| 
       476 
457 
     | 
    
         | 
| 
      
 458 
     | 
    
         
            +
             
     | 
| 
         @@ -35,6 +35,10 @@ 
     | 
|
| 
       35 
35 
     | 
    
         
             
                var _e = e;
         
     | 
| 
       36 
36 
     | 
    
         
             
                this.init(_e);
         
     | 
| 
       37 
37 
     | 
    
         
             
              };
         
     | 
| 
      
 38 
     | 
    
         
            +
              jQuery.railsAutocomplete.options = {
         
     | 
| 
      
 39 
     | 
    
         
            +
                showNoMatches: true,
         
     | 
| 
      
 40 
     | 
    
         
            +
                noMatchesLabel: 'no existing match'
         
     | 
| 
      
 41 
     | 
    
         
            +
              }
         
     | 
| 
       38 
42 
     | 
    
         | 
| 
       39 
43 
     | 
    
         
             
              jQuery.railsAutocomplete.fn = jQuery.railsAutocomplete.prototype = {
         
     | 
| 
       40 
44 
     | 
    
         
             
                railsAutocomplete: '0.0.1'
         
     | 
| 
         @@ -67,9 +71,17 @@ 
     | 
|
| 
       67 
71 
     | 
    
         
             
                        });
         
     | 
| 
       68 
72 
     | 
    
         
             
                      }
         
     | 
| 
       69 
73 
     | 
    
         
             
                      jQuery.getJSON( jQuery(e).attr('data-autocomplete'), params, function() {
         
     | 
| 
       70 
     | 
    
         
            -
                         
     | 
| 
      
 74 
     | 
    
         
            +
                        var options = {};
         
     | 
| 
      
 75 
     | 
    
         
            +
                        jQuery.extend(options, jQuery.railsAutocomplete.options);
         
     | 
| 
      
 76 
     | 
    
         
            +
                        jQuery.each(options, function(key, value) {
         
     | 
| 
      
 77 
     | 
    
         
            +
                          if(options.hasOwnProperty(key)) {
         
     | 
| 
      
 78 
     | 
    
         
            +
                            var attrVal = jQuery(e).attr('data-' + key);
         
     | 
| 
      
 79 
     | 
    
         
            +
                            options[key] = attrVal ? attrVal : value;
         
     | 
| 
      
 80 
     | 
    
         
            +
                          }
         
     | 
| 
      
 81 
     | 
    
         
            +
                        });
         
     | 
| 
      
 82 
     | 
    
         
            +
                        if(arguments[0].length == 0 && options.showNoMatches) {
         
     | 
| 
       71 
83 
     | 
    
         
             
                          arguments[0] = [];
         
     | 
| 
       72 
     | 
    
         
            -
                          arguments[0][0] = { id: "", label:  
     | 
| 
      
 84 
     | 
    
         
            +
                          arguments[0][0] = { id: "", label: options.noMatchesLabel };
         
     | 
| 
       73 
85 
     | 
    
         
             
                        }
         
     | 
| 
       74 
86 
     | 
    
         
             
                        jQuery(arguments[0]).each(function(i, el) {
         
     | 
| 
       75 
87 
     | 
    
         
             
                          var obj = {};
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            !function(t){t.fn.railsAutocomplete=function(){var e=function(){this.railsAutoCompleter||(this.railsAutoCompleter=new t.railsAutocomplete(this))};return void 0!==t.fn.on?t(document).on("focus",this.selector,e):this.live("focus",e)},t.railsAutocomplete=function(t){var e=t;this.init(e)},t.railsAutocomplete.fn=t.railsAutocomplete.prototype={railsAutocomplete:"0.0.1"},t.railsAutocomplete.fn.extend=t.railsAutocomplete.extend=t.extend,t.railsAutocomplete.fn.extend({init:function(e){function a(t){return t.split(e.delimiter)}function i(t){return a(t).pop().replace(/^\s+/,"")}e.delimiter=t(e).attr("data-delimiter")||null,e.min_length=t(e).attr("min-length")||2,e.append_to=t(e).attr("data-append-to")||null,e.autoFocus=t(e).attr("data-auto-focus")||!1,t(e).autocomplete({appendTo:e.append_to,autoFocus:e.autoFocus,delay:t(e).attr("delay")||0,source:function(a,n){var  
     | 
| 
      
 1 
     | 
    
         
            +
            !function(t){t.fn.railsAutocomplete=function(){var e=function(){this.railsAutoCompleter||(this.railsAutoCompleter=new t.railsAutocomplete(this))};return void 0!==t.fn.on?t(document).on("focus",this.selector,e):this.live("focus",e)},t.railsAutocomplete=function(t){var e=t;this.init(e)},t.railsAutocomplete.options={showNoMatches:!0,noMatchesLabel:"no existing match"},t.railsAutocomplete.fn=t.railsAutocomplete.prototype={railsAutocomplete:"0.0.1"},t.railsAutocomplete.fn.extend=t.railsAutocomplete.extend=t.extend,t.railsAutocomplete.fn.extend({init:function(e){function a(t){return t.split(e.delimiter)}function i(t){return a(t).pop().replace(/^\s+/,"")}e.delimiter=t(e).attr("data-delimiter")||null,e.min_length=t(e).attr("min-length")||2,e.append_to=t(e).attr("data-append-to")||null,e.autoFocus=t(e).attr("data-auto-focus")||!1,t(e).autocomplete({appendTo:e.append_to,autoFocus:e.autoFocus,delay:t(e).attr("delay")||0,source:function(a,n){var o=this.element[0],r={term:i(a.term)};t(e).attr("data-autocomplete-fields")&&t.each(t.parseJSON(t(e).attr("data-autocomplete-fields")),function(e,a){r[e]=t(a).val()}),t.getJSON(t(e).attr("data-autocomplete"),r,function(){var a={};t.extend(a,t.railsAutocomplete.options),t.each(a,function(i,n){if(a.hasOwnProperty(i)){var o=t(e).attr("data-"+i);a[i]=o?o:n}}),0==arguments[0].length&&a.showNoMatches&&(arguments[0]=[],arguments[0][0]={id:"",label:a.noMatchesLabel}),t(arguments[0]).each(function(a,i){var n={};n[i.id]=i,t(e).data(n)}),n.apply(null,arguments),t(o).trigger("railsAutocomplete.source",arguments)})},change:function(e,a){if(t(this).is("[data-id-element]")&&""!==t(t(this).attr("data-id-element")).val()&&(t(t(this).attr("data-id-element")).val(a.item?a.item.id:""),t(this).attr("data-update-elements"))){var i=t.parseJSON(t(this).attr("data-update-elements")),n=a.item?t(this).data(a.item.id.toString()):{};if(i&&""===t(i.id).val())return;for(var o in i){var r=t(i[o]);r.is(":checkbox")?null!=n[o]&&r.prop("checked",n[o]):r.val(a.item?n[o]:"")}}},search:function(){var t=i(this.value);return t.length<e.min_length?!1:void 0},focus:function(){return!1},select:function(i,n){if(-1!=n.item.value.toLowerCase().indexOf("no match")||-1!=n.item.value.toLowerCase().indexOf("too many results"))return t(this).trigger("railsAutocomplete.noMatch",n),!1;var o=a(this.value);if(o.pop(),o.push(n.item.value),null!=e.delimiter)o.push(""),this.value=o.join(e.delimiter);else if(this.value=o.join(""),t(this).attr("data-id-element")&&t(t(this).attr("data-id-element")).val(n.item.id),t(this).attr("data-update-elements")){var r=n.item,l=-1!=n.item.value.indexOf("Create New")?!0:!1,u=t.parseJSON(t(this).attr("data-update-elements"));for(var s in u)"checkbox"===t(u[s]).attr("type")?r[s]===!0||1===r[s]?t(u[s]).attr("checked","checked"):t(u[s]).removeAttr("checked"):t(u[s]).val(l&&r[s]&&-1==r[s].indexOf("Create New")||!l?r[s]:"")}var c=this.value;return t(this).bind("keyup.clearId",function(){t.trim(t(this).val())!=t.trim(c)&&(t(t(this).attr("data-id-element")).val(""),t(this).unbind("keyup.clearId"))}),t(e).trigger("railsAutocomplete.select",n),!1}})}}),t(document).ready(function(){t("input[data-autocomplete]").railsAutocomplete()})}(jQuery);
         
     | 
| 
         @@ -0,0 +1,25 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "test_helper"
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            class Post
         
     | 
| 
      
 4 
     | 
    
         
            +
              attr_accessor :author
         
     | 
| 
      
 5 
     | 
    
         
            +
            end
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            class FormHelperTest < ActionView::TestCase
         
     | 
| 
      
 8 
     | 
    
         
            +
              def test_text_field_tag
         
     | 
| 
      
 9 
     | 
    
         
            +
                assert_match(/autocomplete=\"some\/path\"/, text_field_tag('field_name', '', :autocomplete => 'some/path'))
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              def test_text_field
         
     | 
| 
      
 13 
     | 
    
         
            +
                post = Post.new
         
     | 
| 
      
 14 
     | 
    
         
            +
                assert_match(/autocomplete=\"some\/path\"/, text_field(:post, :author, :autocomplete => 'some/path'))
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              def test_autocomplete_field_tag
         
     | 
| 
      
 18 
     | 
    
         
            +
                assert_match(/data-autocomplete=\"some\/path\"/, autocomplete_field_tag('field_name', '', 'some/path'))
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              def test_autocomplete_field
         
     | 
| 
      
 22 
     | 
    
         
            +
                post= Post.new
         
     | 
| 
      
 23 
     | 
    
         
            +
                assert_match(/data-autocomplete=\"some\/path\"/, autocomplete_field(:post, :author, 'some/path'))
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,25 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'generators/autocomplete/install_generator'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module Autocomplete
         
     | 
| 
      
 5 
     | 
    
         
            +
              class InstallGeneratorTest < Test::Unit::TestCase
         
     | 
| 
      
 6 
     | 
    
         
            +
                def setup
         
     | 
| 
      
 7 
     | 
    
         
            +
                  @destination = File.join('tmp', 'test_app')
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @source      = InstallGenerator.source_root
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @filename    = File.join(@destination, 'public', 'javascripts', 'autocomplete-rails.js')
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  File.unlink(@filename) if File.exists?(@filename)
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  InstallGenerator.start([], :destination_root => @destination)
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                def test_install
         
     | 
| 
      
 17 
     | 
    
         
            +
                  assert File.exists?(@filename)
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  assert_equal(
         
     | 
| 
      
 20 
     | 
    
         
            +
                      File.read(File.join(@source, 'autocomplete-rails.js')),
         
     | 
| 
      
 21 
     | 
    
         
            +
                      File.read(@filename)
         
     | 
| 
      
 22 
     | 
    
         
            +
                  )
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,25 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'generators/autocomplete/uncompressed_generator'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module Autocomplete
         
     | 
| 
      
 5 
     | 
    
         
            +
              class UncompressedGeneratorTest < Test::Unit::TestCase
         
     | 
| 
      
 6 
     | 
    
         
            +
                def setup
         
     | 
| 
      
 7 
     | 
    
         
            +
                  @destination = File.join('tmp', 'test_app')
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @source      = UncompressedGenerator.source_root
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @filename    = File.join(@destination, 'public', 'javascripts', 'autocomplete-rails.js')
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  File.unlink(@filename) if File.exists?(@filename)
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  UncompressedGenerator.start([], :destination_root => @destination)
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                def test_install
         
     | 
| 
      
 17 
     | 
    
         
            +
                  assert File.exists?(@filename)
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  assert_equal(
         
     | 
| 
      
 20 
     | 
    
         
            +
                      File.read(File.join(@source, 'autocomplete-rails-uncompressed.js')),
         
     | 
| 
      
 21 
     | 
    
         
            +
                      File.read(@filename)
         
     | 
| 
      
 22 
     | 
    
         
            +
                  )
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,82 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module RailsJQueryAutocomplete
         
     | 
| 
      
 4 
     | 
    
         
            +
              class AutocompleteTest < Test::Unit::TestCase
         
     | 
| 
      
 5 
     | 
    
         
            +
                include RailsJQueryAutocomplete::Autocomplete
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                context 'ClassMethods' do
         
     | 
| 
      
 8 
     | 
    
         
            +
                  context '#autocomplete' do
         
     | 
| 
      
 9 
     | 
    
         
            +
                    context '#get_prefix' do
         
     | 
| 
      
 10 
     | 
    
         
            +
                      context 'Mongoid and MongoMapper is not defined' do
         
     | 
| 
      
 11 
     | 
    
         
            +
                        setup do
         
     | 
| 
      
 12 
     | 
    
         
            +
                          ActorsController = Class.new(ActionController::Base)
         
     | 
| 
      
 13 
     | 
    
         
            +
                          ActorsController.autocomplete(:movie, :name)
         
     | 
| 
      
 14 
     | 
    
         
            +
                          @controller = ActorsController.new
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                          @model = Class.new(ActiveRecord::Base)
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                          Object.send(:remove_const, :Mongoid)
         
     | 
| 
      
 19 
     | 
    
         
            +
                          Object.send(:remove_const, :MongoMapper)
         
     | 
| 
      
 20 
     | 
    
         
            +
                        end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                        should 'not raise exception' do
         
     | 
| 
      
 23 
     | 
    
         
            +
                          @controller.get_prefix(@model)
         
     | 
| 
      
 24 
     | 
    
         
            +
                        end
         
     | 
| 
      
 25 
     | 
    
         
            +
                      end
         
     | 
| 
      
 26 
     | 
    
         
            +
                    end
         
     | 
| 
      
 27 
     | 
    
         
            +
                  end
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                context '#get_autocomplete_limit' do
         
     | 
| 
      
 31 
     | 
    
         
            +
                  context 'the limit option was specified' do
         
     | 
| 
      
 32 
     | 
    
         
            +
                    should "return the limit option" do
         
     | 
| 
      
 33 
     | 
    
         
            +
                      assert_equal 99, get_autocomplete_limit({:limit => 99})
         
     | 
| 
      
 34 
     | 
    
         
            +
                    end
         
     | 
| 
      
 35 
     | 
    
         
            +
                  end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                  context 'the limit option is not specified' do
         
     | 
| 
      
 38 
     | 
    
         
            +
                    should 'return 10' do
         
     | 
| 
      
 39 
     | 
    
         
            +
                      assert_equal 10, get_autocomplete_limit({})
         
     | 
| 
      
 40 
     | 
    
         
            +
                    end
         
     | 
| 
      
 41 
     | 
    
         
            +
                  end
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                context '#get_object' do
         
     | 
| 
      
 45 
     | 
    
         
            +
                  should 'return the specified sym as a class name' do
         
     | 
| 
      
 46 
     | 
    
         
            +
                    symbol = Object.new
         
     | 
| 
      
 47 
     | 
    
         
            +
                    class_object = Class.new
         
     | 
| 
      
 48 
     | 
    
         
            +
                    mock(symbol).to_s.mock!.camelize.mock!.constantize { class_object }
         
     | 
| 
      
 49 
     | 
    
         
            +
                    assert_equal class_object, get_object(symbol)
         
     | 
| 
      
 50 
     | 
    
         
            +
                  end
         
     | 
| 
      
 51 
     | 
    
         
            +
                end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                context '#json_for_autocomplete' do
         
     | 
| 
      
 54 
     | 
    
         
            +
                  should 'parse items to JSON' do
         
     | 
| 
      
 55 
     | 
    
         
            +
                    item = mock(Object)
         
     | 
| 
      
 56 
     | 
    
         
            +
                    mock(item).send(:name).times(2) { 'Object Name' }
         
     | 
| 
      
 57 
     | 
    
         
            +
                    mock(item).id { 1 }
         
     | 
| 
      
 58 
     | 
    
         
            +
                    items    = [item]
         
     | 
| 
      
 59 
     | 
    
         
            +
                    response = self.json_for_autocomplete(items, :name).first
         
     | 
| 
      
 60 
     | 
    
         
            +
                    assert_equal response["id"], "1"
         
     | 
| 
      
 61 
     | 
    
         
            +
                    assert_equal response["value"], "Object Name"
         
     | 
| 
      
 62 
     | 
    
         
            +
                    assert_equal response["label"], "Object Name"
         
     | 
| 
      
 63 
     | 
    
         
            +
                  end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                  context 'with extra data' do
         
     | 
| 
      
 66 
     | 
    
         
            +
                    should 'add that extra data to result' do
         
     | 
| 
      
 67 
     | 
    
         
            +
                      item = mock(Object)
         
     | 
| 
      
 68 
     | 
    
         
            +
                      mock(item).send(:name).times(2) { 'Object Name' }
         
     | 
| 
      
 69 
     | 
    
         
            +
                      mock(item).id { 1 }
         
     | 
| 
      
 70 
     | 
    
         
            +
                      mock(item).send("extra") { 'Object Extra ' }
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                      items    = [item]
         
     | 
| 
      
 73 
     | 
    
         
            +
                      response = self.json_for_autocomplete(items, :name, ["extra"]).first
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                      assert_equal "1"           , response["id"]
         
     | 
| 
      
 76 
     | 
    
         
            +
                      assert_equal "Object Name" , response["value"]
         
     | 
| 
      
 77 
     | 
    
         
            +
                      assert_equal "Object Name" , response["label"]
         
     | 
| 
      
 78 
     | 
    
         
            +
                    end
         
     | 
| 
      
 79 
     | 
    
         
            +
                  end
         
     | 
| 
      
 80 
     | 
    
         
            +
                end
         
     | 
| 
      
 81 
     | 
    
         
            +
              end
         
     | 
| 
      
 82 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,190 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module RailsJQueryAutocomplete
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Orm
         
     | 
| 
      
 5 
     | 
    
         
            +
                class ActiveRecordTest < Test::Unit::TestCase
         
     | 
| 
      
 6 
     | 
    
         
            +
                  include RailsJQueryAutocomplete::Orm::ActiveRecord
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                  context "#get_autocomplete_order" do
         
     | 
| 
      
 9 
     | 
    
         
            +
                    context 'order is specified' do
         
     | 
| 
      
 10 
     | 
    
         
            +
                      should 'returns that order option' do
         
     | 
| 
      
 11 
     | 
    
         
            +
                        assert_equal "field ASC", active_record_get_autocomplete_order(:field, {:order => 'field ASC'})
         
     | 
| 
      
 12 
     | 
    
         
            +
                      end
         
     | 
| 
      
 13 
     | 
    
         
            +
                    end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    context 'no order is specified' do
         
     | 
| 
      
 16 
     | 
    
         
            +
                      should 'return the order clause by the LOWER(table_name.field) ASC' do
         
     | 
| 
      
 17 
     | 
    
         
            +
                        assert_equal "LOWER(field) ASC", active_record_get_autocomplete_order(:field, {})
         
     | 
| 
      
 18 
     | 
    
         
            +
                      end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                      context 'a different model is specified' do
         
     | 
| 
      
 21 
     | 
    
         
            +
                        should 'return the order clause by the LOWER(table_name.field) ASC' do
         
     | 
| 
      
 22 
     | 
    
         
            +
                          model = Object.new
         
     | 
| 
      
 23 
     | 
    
         
            +
                          mock(model).table_name { 'table_name' }
         
     | 
| 
      
 24 
     | 
    
         
            +
                          assert_equal "LOWER(table_name.field) ASC", active_record_get_autocomplete_order(:field, {}, model)
         
     | 
| 
      
 25 
     | 
    
         
            +
                        end
         
     | 
| 
      
 26 
     | 
    
         
            +
                      end
         
     | 
| 
      
 27 
     | 
    
         
            +
                    end
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                  context '#active_record_get_autocomplete_items' do
         
     | 
| 
      
 31 
     | 
    
         
            +
                    should 'retrieve the items from ActiveRecord' do
         
     | 
| 
      
 32 
     | 
    
         
            +
                      class Dog ; end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                      model = Dog
         
     | 
| 
      
 35 
     | 
    
         
            +
                      scoped = []
         
     | 
| 
      
 36 
     | 
    
         
            +
                      whered = []
         
     | 
| 
      
 37 
     | 
    
         
            +
                      term = 'query'
         
     | 
| 
      
 38 
     | 
    
         
            +
                      method = :field
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                      options = {
         
     | 
| 
      
 41 
     | 
    
         
            +
                        :model => model,
         
     | 
| 
      
 42 
     | 
    
         
            +
                        :term => term,
         
     | 
| 
      
 43 
     | 
    
         
            +
                        :method => method,
         
     | 
| 
      
 44 
     | 
    
         
            +
                        :options => {}
         
     | 
| 
      
 45 
     | 
    
         
            +
                      }
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                      mock(self).get_autocomplete_limit(anything) { 10 }
         
     | 
| 
      
 48 
     | 
    
         
            +
                      mock(self).active_record_get_autocomplete_order(anything, anything, anything) { "order ASC" }
         
     | 
| 
      
 49 
     | 
    
         
            +
                      mock(self).get_autocomplete_select_clause(model, method, {}) { ["field"] }
         
     | 
| 
      
 50 
     | 
    
         
            +
                      mock(self).get_autocomplete_where_clause(model, term, method, {}) { ["WHERE something"] }
         
     | 
| 
      
 51 
     | 
    
         
            +
                      mock(model).table_name.times(any_times) { 'model_table_name' }
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                      mock(model).scoped { model }
         
     | 
| 
      
 54 
     | 
    
         
            +
                      mock(model).select(["field"]) { model }
         
     | 
| 
      
 55 
     | 
    
         
            +
                      mock(model).where(["WHERE something"]).mock!.limit(10).mock!.
         
     | 
| 
      
 56 
     | 
    
         
            +
                          order("order ASC") { 1 }
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                      assert_equal 1, active_record_get_autocomplete_items(options)
         
     | 
| 
      
 59 
     | 
    
         
            +
                    end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                    should 'use hstore method if present' do
         
     | 
| 
      
 62 
     | 
    
         
            +
                      class Dog ; end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                      model = Dog
         
     | 
| 
      
 65 
     | 
    
         
            +
                      scoped = []
         
     | 
| 
      
 66 
     | 
    
         
            +
                      whered = []
         
     | 
| 
      
 67 
     | 
    
         
            +
                      term = 'query'
         
     | 
| 
      
 68 
     | 
    
         
            +
                      method = :field
         
     | 
| 
      
 69 
     | 
    
         
            +
                      hsmethod = :hsfield
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                      options = {
         
     | 
| 
      
 72 
     | 
    
         
            +
                        :model => model,
         
     | 
| 
      
 73 
     | 
    
         
            +
                        :term => term,
         
     | 
| 
      
 74 
     | 
    
         
            +
                        :method => method,
         
     | 
| 
      
 75 
     | 
    
         
            +
                        :options => {hstore: {method: hsmethod}}
         
     | 
| 
      
 76 
     | 
    
         
            +
                      }
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
                      mock(self).get_autocomplete_limit(anything) { 10 }
         
     | 
| 
      
 79 
     | 
    
         
            +
                      mock(self).active_record_get_autocomplete_order(anything, anything, anything) { "order ASC" }
         
     | 
| 
      
 80 
     | 
    
         
            +
                      mock(self).get_autocomplete_select_clause(model, hsmethod, options[:options]) { ["hsfield"] }
         
     | 
| 
      
 81 
     | 
    
         
            +
                      mock(self).get_autocomplete_where_clause(model, term, hsmethod, options[:options]) { ["WHERE something"] }
         
     | 
| 
      
 82 
     | 
    
         
            +
                      mock(model).table_name.times(any_times) { 'model_table_name' }
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
                      mock(model).scoped { model }
         
     | 
| 
      
 85 
     | 
    
         
            +
                      mock(model).select(["hsfield"]) { model }
         
     | 
| 
      
 86 
     | 
    
         
            +
                      mock(model).where(["WHERE something"]).mock!.limit(10).mock!.
         
     | 
| 
      
 87 
     | 
    
         
            +
                          order("order ASC") { 1 }
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
      
 89 
     | 
    
         
            +
                      assert_equal 1, active_record_get_autocomplete_items(options)
         
     | 
| 
      
 90 
     | 
    
         
            +
                    end
         
     | 
| 
      
 91 
     | 
    
         
            +
                  end
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
                  context '#get_autocomplete_select_clause' do
         
     | 
| 
      
 94 
     | 
    
         
            +
                    setup do
         
     | 
| 
      
 95 
     | 
    
         
            +
                      @model = Object.new
         
     | 
| 
      
 96 
     | 
    
         
            +
                      mock(@model).table_name  { 'table_name' }
         
     | 
| 
      
 97 
     | 
    
         
            +
                      mock(@model).primary_key { 'id' }
         
     | 
| 
      
 98 
     | 
    
         
            +
                    end
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
                    should 'create a select clause' do
         
     | 
| 
      
 101 
     | 
    
         
            +
                      assert_equal ["table_name.id", "table_name.method"],
         
     | 
| 
      
 102 
     | 
    
         
            +
                          get_autocomplete_select_clause(@model, :method, {})
         
     | 
| 
      
 103 
     | 
    
         
            +
                    end
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
                    should 'create a select clause with hstore method' do
         
     | 
| 
      
 106 
     | 
    
         
            +
                      assert_equal ["table_name.id", "table_name.hsmethod"],
         
     | 
| 
      
 107 
     | 
    
         
            +
                          get_autocomplete_select_clause(@model, :hsmethod, {hstore: {method: :hsmethod}})
         
     | 
| 
      
 108 
     | 
    
         
            +
                    end
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
                    context 'with extra options' do
         
     | 
| 
      
 111 
     | 
    
         
            +
                      should 'return those extra fields on the clause' do
         
     | 
| 
      
 112 
     | 
    
         
            +
                        options = {:extra_data => ['table_name.created_at']}
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
                        assert_equal ["table_name.id", "table_name.method", "table_name.created_at"],
         
     | 
| 
      
 115 
     | 
    
         
            +
                            get_autocomplete_select_clause(@model, :method, options)
         
     | 
| 
      
 116 
     | 
    
         
            +
                      end
         
     | 
| 
      
 117 
     | 
    
         
            +
                    end
         
     | 
| 
      
 118 
     | 
    
         
            +
                  end
         
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
      
 120 
     | 
    
         
            +
                  context '#get_autocomplete_where_clause' do
         
     | 
| 
      
 121 
     | 
    
         
            +
                    setup do
         
     | 
| 
      
 122 
     | 
    
         
            +
                      @model = Object.new
         
     | 
| 
      
 123 
     | 
    
         
            +
                      mock(@model).table_name { 'table_name' }
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
                      @term = 'query'
         
     | 
| 
      
 126 
     | 
    
         
            +
                      @options = {}
         
     | 
| 
      
 127 
     | 
    
         
            +
                      @method = :method
         
     | 
| 
      
 128 
     | 
    
         
            +
                    end
         
     | 
| 
      
 129 
     | 
    
         
            +
             
     | 
| 
      
 130 
     | 
    
         
            +
                    context 'Not Postgres' do
         
     | 
| 
      
 131 
     | 
    
         
            +
                      should 'return options for where' do
         
     | 
| 
      
 132 
     | 
    
         
            +
                        mock(self).postgres?(@model) { false }
         
     | 
| 
      
 133 
     | 
    
         
            +
                        assert_equal ["LOWER(table_name.method) LIKE ?", "query%"], get_autocomplete_where_clause(@model, @term, @method, @options)
         
     | 
| 
      
 134 
     | 
    
         
            +
                      end
         
     | 
| 
      
 135 
     | 
    
         
            +
                    end
         
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
      
 137 
     | 
    
         
            +
                    context 'Postgres' do
         
     | 
| 
      
 138 
     | 
    
         
            +
                      should 'return options for where with ILIKE' do
         
     | 
| 
      
 139 
     | 
    
         
            +
                        mock(self).postgres?(@model) { true }
         
     | 
| 
      
 140 
     | 
    
         
            +
                        assert_equal ["LOWER(table_name.method) ILIKE ?", "query%"], get_autocomplete_where_clause(@model, @term, @method, @options)
         
     | 
| 
      
 141 
     | 
    
         
            +
                      end
         
     | 
| 
      
 142 
     | 
    
         
            +
                    end
         
     | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
      
 144 
     | 
    
         
            +
                    context 'HStore' do
         
     | 
| 
      
 145 
     | 
    
         
            +
                      should 'return options for where from hstore options' do
         
     | 
| 
      
 146 
     | 
    
         
            +
                        mock(self).postgres?(@model) { true }
         
     | 
| 
      
 147 
     | 
    
         
            +
                        @options[:hstore] = {method: :hsmethod, key: :hskey}
         
     | 
| 
      
 148 
     | 
    
         
            +
                        @method = :hsmethod
         
     | 
| 
      
 149 
     | 
    
         
            +
                        assert_equal ["LOWER(table_name.hsmethod -> 'hskey') LIKE ?", "query%"], get_autocomplete_where_clause(@model, @term, @method, @options)
         
     | 
| 
      
 150 
     | 
    
         
            +
                      end
         
     | 
| 
      
 151 
     | 
    
         
            +
                    end
         
     | 
| 
      
 152 
     | 
    
         
            +
             
     | 
| 
      
 153 
     | 
    
         
            +
                    context 'full search' do
         
     | 
| 
      
 154 
     | 
    
         
            +
                      should 'return options for where with the term sourrounded by %%' do
         
     | 
| 
      
 155 
     | 
    
         
            +
                        mock(self).postgres?(@model) { false }
         
     | 
| 
      
 156 
     | 
    
         
            +
                        @options[:full] = true
         
     | 
| 
      
 157 
     | 
    
         
            +
                        assert_equal ["LOWER(table_name.method) LIKE ?", "%query%"], get_autocomplete_where_clause(@model, @term, @method, @options)
         
     | 
| 
      
 158 
     | 
    
         
            +
                      end
         
     | 
| 
      
 159 
     | 
    
         
            +
                    end
         
     | 
| 
      
 160 
     | 
    
         
            +
                  end
         
     | 
| 
      
 161 
     | 
    
         
            +
             
     | 
| 
      
 162 
     | 
    
         
            +
                  context '#postgres?' do
         
     | 
| 
      
 163 
     | 
    
         
            +
                    setup do
         
     | 
| 
      
 164 
     | 
    
         
            +
                      @model = stub
         
     | 
| 
      
 165 
     | 
    
         
            +
                    end
         
     | 
| 
      
 166 
     | 
    
         
            +
             
     | 
| 
      
 167 
     | 
    
         
            +
                    context 'the connection class is not postgres' do
         
     | 
| 
      
 168 
     | 
    
         
            +
                      setup do
         
     | 
| 
      
 169 
     | 
    
         
            +
                        mock(@model).connection { stub }
         
     | 
| 
      
 170 
     | 
    
         
            +
                      end
         
     | 
| 
      
 171 
     | 
    
         
            +
             
     | 
| 
      
 172 
     | 
    
         
            +
                      should 'return nil if the connection class matches PostgreSQLAdapter' do
         
     | 
| 
      
 173 
     | 
    
         
            +
                        assert_nil self.postgres?(@model)
         
     | 
| 
      
 174 
     | 
    
         
            +
                      end
         
     | 
| 
      
 175 
     | 
    
         
            +
                    end
         
     | 
| 
      
 176 
     | 
    
         
            +
             
     | 
| 
      
 177 
     | 
    
         
            +
                    context 'the connection class matches PostgreSQLAdapter' do
         
     | 
| 
      
 178 
     | 
    
         
            +
                      setup do
         
     | 
| 
      
 179 
     | 
    
         
            +
                        class PostgreSQLAdapter; end
         
     | 
| 
      
 180 
     | 
    
         
            +
                        mock(@model).connection { PostgreSQLAdapter.new }
         
     | 
| 
      
 181 
     | 
    
         
            +
                      end
         
     | 
| 
      
 182 
     | 
    
         
            +
             
     | 
| 
      
 183 
     | 
    
         
            +
                      should 'return true' do
         
     | 
| 
      
 184 
     | 
    
         
            +
                        assert self.postgres?(@model)
         
     | 
| 
      
 185 
     | 
    
         
            +
                      end
         
     | 
| 
      
 186 
     | 
    
         
            +
                    end
         
     | 
| 
      
 187 
     | 
    
         
            +
                  end
         
     | 
| 
      
 188 
     | 
    
         
            +
                end
         
     | 
| 
      
 189 
     | 
    
         
            +
              end
         
     | 
| 
      
 190 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,60 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module RailsJQueryAutocomplete
         
     | 
| 
      
 4 
     | 
    
         
            +
            	module Orm
         
     | 
| 
      
 5 
     | 
    
         
            +
            		class MongoMapperTest < Test::Unit::TestCase
         
     | 
| 
      
 6 
     | 
    
         
            +
            			include RailsJQueryAutocomplete::Orm::MongoMapper
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            			context "#mongo_mapper_get_autocomplete_order" do
         
     | 
| 
      
 9 
     | 
    
         
            +
            				context "order is specified" do
         
     | 
| 
      
 10 
     | 
    
         
            +
            					should 'returns the parametrized order for Mongoid' do
         
     | 
| 
      
 11 
     | 
    
         
            +
            						assert_equal [[:field, :asc], [:state, :desc]],
         
     | 
| 
      
 12 
     | 
    
         
            +
                                     mongo_mapper_get_autocomplete_order(:method, :order => 'field ASC, state DESC')
         
     | 
| 
      
 13 
     | 
    
         
            +
            					end
         
     | 
| 
      
 14 
     | 
    
         
            +
            				end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            				context 'order is not specified' do
         
     | 
| 
      
 17 
     | 
    
         
            +
            					should 'return the method ordered ASC by default' do
         
     | 
| 
      
 18 
     | 
    
         
            +
            						assert_equal [[:method, :asc]],
         
     | 
| 
      
 19 
     | 
    
         
            +
                                     mongo_mapper_get_autocomplete_order(:method, {})
         
     | 
| 
      
 20 
     | 
    
         
            +
            					end
         
     | 
| 
      
 21 
     | 
    
         
            +
            				end
         
     | 
| 
      
 22 
     | 
    
         
            +
            			end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            			context "#mongo_mapper_get_autocomplete_items" do
         
     | 
| 
      
 25 
     | 
    
         
            +
            				setup do
         
     | 
| 
      
 26 
     | 
    
         
            +
            					@model = mock(Object)
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            					@parameters = {
         
     | 
| 
      
 29 
     | 
    
         
            +
            						:model => @model,
         
     | 
| 
      
 30 
     | 
    
         
            +
            						:method => :field,
         
     | 
| 
      
 31 
     | 
    
         
            +
            						:term => 'query',
         
     | 
| 
      
 32 
     | 
    
         
            +
            						:options => {:full => false}
         
     | 
| 
      
 33 
     | 
    
         
            +
            					}
         
     | 
| 
      
 34 
     | 
    
         
            +
            					mock(self).get_autocomplete_limit(anything) { 10 }
         
     | 
| 
      
 35 
     | 
    
         
            +
            					mock(self).mongo_mapper_get_autocomplete_order(anything, anything) { [[:order, :asc]] }
         
     | 
| 
      
 36 
     | 
    
         
            +
            				end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            				context 'not a full search' do
         
     | 
| 
      
 39 
     | 
    
         
            +
            					should 'do stuff' do
         
     | 
| 
      
 40 
     | 
    
         
            +
            						mock(@model).where({:field=>/^query.*/i}).mock!.limit(10).
         
     | 
| 
      
 41 
     | 
    
         
            +
            								mock!.sort([[:order, :asc]])
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                        mongo_mapper_get_autocomplete_items(@parameters)
         
     | 
| 
      
 44 
     | 
    
         
            +
            					end
         
     | 
| 
      
 45 
     | 
    
         
            +
            				end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            				context 'full search' do
         
     | 
| 
      
 48 
     | 
    
         
            +
            					should 'return a full search query' do
         
     | 
| 
      
 49 
     | 
    
         
            +
            						@parameters[:options] = {:full => true}
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            						mock(@model).where({:field => /.*query.*/i}).mock!.limit(10).
         
     | 
| 
      
 52 
     | 
    
         
            +
            								mock!.sort([[:order, :asc]])
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                        mongo_mapper_get_autocomplete_items(@parameters)
         
     | 
| 
      
 55 
     | 
    
         
            +
            					end
         
     | 
| 
      
 56 
     | 
    
         
            +
            				end
         
     | 
| 
      
 57 
     | 
    
         
            +
            			end
         
     | 
| 
      
 58 
     | 
    
         
            +
            		end
         
     | 
| 
      
 59 
     | 
    
         
            +
            	end
         
     | 
| 
      
 60 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,60 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module RailsJQueryAutocomplete
         
     | 
| 
      
 4 
     | 
    
         
            +
            	module Orm
         
     | 
| 
      
 5 
     | 
    
         
            +
            		class MongoidTest < Test::Unit::TestCase
         
     | 
| 
      
 6 
     | 
    
         
            +
            			include RailsJQueryAutocomplete::Orm::Mongoid
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            			context "#mongoid_get_autocomplete_order" do
         
     | 
| 
      
 9 
     | 
    
         
            +
            				context "order is specified" do
         
     | 
| 
      
 10 
     | 
    
         
            +
            					should 'returns the parametrized order for Mongoid' do
         
     | 
| 
      
 11 
     | 
    
         
            +
            						assert_equal [[:field, :asc], [:state, :desc]],
         
     | 
| 
      
 12 
     | 
    
         
            +
                          mongoid_get_autocomplete_order(:method, :order => 'field ASC, state DESC')
         
     | 
| 
      
 13 
     | 
    
         
            +
            					end
         
     | 
| 
      
 14 
     | 
    
         
            +
            				end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            				context 'order is not specified' do
         
     | 
| 
      
 17 
     | 
    
         
            +
            					should 'return the method ordered ASC by default' do
         
     | 
| 
      
 18 
     | 
    
         
            +
            						assert_equal [[:method, :asc]],
         
     | 
| 
      
 19 
     | 
    
         
            +
                          mongoid_get_autocomplete_order(:method, {})
         
     | 
| 
      
 20 
     | 
    
         
            +
            					end
         
     | 
| 
      
 21 
     | 
    
         
            +
            				end
         
     | 
| 
      
 22 
     | 
    
         
            +
            			end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            			context "#mongoid_get_autocomplete_items" do
         
     | 
| 
      
 25 
     | 
    
         
            +
            				setup do
         
     | 
| 
      
 26 
     | 
    
         
            +
            					@model = mock(Object)
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            					@parameters = {
         
     | 
| 
      
 29 
     | 
    
         
            +
            						:model => @model,
         
     | 
| 
      
 30 
     | 
    
         
            +
            						:method => :field,
         
     | 
| 
      
 31 
     | 
    
         
            +
            						:term => 'query',
         
     | 
| 
      
 32 
     | 
    
         
            +
            						:options => {:full => false}
         
     | 
| 
      
 33 
     | 
    
         
            +
            					}
         
     | 
| 
      
 34 
     | 
    
         
            +
            					mock(self).get_autocomplete_limit(anything) { 10 }
         
     | 
| 
      
 35 
     | 
    
         
            +
            					mock(self).mongoid_get_autocomplete_order(anything, anything) { [[:order, :asc]] }
         
     | 
| 
      
 36 
     | 
    
         
            +
            				end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            				context 'not a full search' do
         
     | 
| 
      
 39 
     | 
    
         
            +
            					should 'do stuff' do
         
     | 
| 
      
 40 
     | 
    
         
            +
            						mock(@model).where({:field=>/^query/i}).mock!.limit(10).
         
     | 
| 
      
 41 
     | 
    
         
            +
            								mock!.order_by([[:order, :asc]])
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                        mongoid_get_autocomplete_items(@parameters)
         
     | 
| 
      
 44 
     | 
    
         
            +
            					end
         
     | 
| 
      
 45 
     | 
    
         
            +
            				end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            				context 'full search' do
         
     | 
| 
      
 48 
     | 
    
         
            +
            					should 'return a full search query' do
         
     | 
| 
      
 49 
     | 
    
         
            +
            						@parameters[:options] = {:full => true}
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            						mock(@model).where({:field=>/.*query.*/i}).mock!.limit(10).
         
     | 
| 
      
 52 
     | 
    
         
            +
            								mock!.order_by([[:order, :asc]])
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                        mongoid_get_autocomplete_items(@parameters)
         
     | 
| 
      
 55 
     | 
    
         
            +
            					end
         
     | 
| 
      
 56 
     | 
    
         
            +
            				end
         
     | 
| 
      
 57 
     | 
    
         
            +
            			end
         
     | 
| 
      
 58 
     | 
    
         
            +
            		end
         
     | 
| 
      
 59 
     | 
    
         
            +
            	end
         
     | 
| 
      
 60 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,33 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'view_test_helper'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module RailsJQueryAutocomplete
         
     | 
| 
      
 5 
     | 
    
         
            +
              class SimpleFormPluginTest < ActionView::TestCase
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                should "apply a class of 'autocomplete'" do
         
     | 
| 
      
 8 
     | 
    
         
            +
                  with_input_for @user, :name, :autocomplete
         
     | 
| 
      
 9 
     | 
    
         
            +
                  assert_select "input#user_name.autocomplete[type=text][name='user[name]']"
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                should "add a data-autocomplete attribute with the provided :url" do
         
     | 
| 
      
 13 
     | 
    
         
            +
                  with_input_for @user, :name, :autocomplete, :url => '/test'
         
     | 
| 
      
 14 
     | 
    
         
            +
                  assert_select "input#user_name[data-autocomplete=/test]"
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                should "add a data-update-elements attribute with encoded data if passed an :update_elements option" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                  with_input_for @user, :name, :autocomplete, :update_elements => { :id => '#this', :ego => '#that' }
         
     | 
| 
      
 19 
     | 
    
         
            +
                  assert_select "input#user_name[data-update-elements='{"id":"#this","ego":"#that"}']"
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                should "not add a data-update-elements attribute if not passed an :update_elements option" do
         
     | 
| 
      
 23 
     | 
    
         
            +
                  with_input_for @user, :name, :autocomplete, :url => '/test'
         
     | 
| 
      
 24 
     | 
    
         
            +
                  assert_no_select "input#user_name[data-update-elements]"
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                should "add arbitrary html options, if specified" do
         
     | 
| 
      
 28 
     | 
    
         
            +
                  with_input_for @user, :name, :autocomplete, :input_html => { :class => "superego" }
         
     | 
| 
      
 29 
     | 
    
         
            +
                  assert_select "input#user_name.superego"
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,38 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module RailsJQueryAutocomplete
         
     | 
| 
      
 4 
     | 
    
         
            +
              class RailsJQueryAutocompleteTest < ActionController::TestCase
         
     | 
| 
      
 5 
     | 
    
         
            +
                ActorsController = Class.new(ActionController::Base)
         
     | 
| 
      
 6 
     | 
    
         
            +
                ActorsController.autocomplete(:movie, :name)
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                class ::Movie ; end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                context '#autocomplete_object_method' do
         
     | 
| 
      
 11 
     | 
    
         
            +
                  setup do
         
     | 
| 
      
 12 
     | 
    
         
            +
                    @controller = ActorsController.new
         
     | 
| 
      
 13 
     | 
    
         
            +
                    @items = {}
         
     | 
| 
      
 14 
     | 
    
         
            +
                    @options = { :display_value => :name }
         
     | 
| 
      
 15 
     | 
    
         
            +
                  end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                  should 'respond to the action' do
         
     | 
| 
      
 18 
     | 
    
         
            +
                    assert_respond_to @controller, :autocomplete_movie_name
         
     | 
| 
      
 19 
     | 
    
         
            +
                  end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  should 'render the JSON items' do
         
     | 
| 
      
 22 
     | 
    
         
            +
                    mock(@controller).get_autocomplete_items({
         
     | 
| 
      
 23 
     | 
    
         
            +
                      :model => Movie, :method => :name, :options => @options, :term => "query"
         
     | 
| 
      
 24 
     | 
    
         
            +
                    }) { @items }
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                    mock(@controller).json_for_autocomplete(@items, :name, nil)
         
     | 
| 
      
 27 
     | 
    
         
            +
                    get :autocomplete_movie_name, :term => 'query'
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                  context 'no term is specified' do
         
     | 
| 
      
 31 
     | 
    
         
            +
                    should "render an empty hash" do
         
     | 
| 
      
 32 
     | 
    
         
            +
                      mock(@controller).json_for_autocomplete({}, :name, nil)
         
     | 
| 
      
 33 
     | 
    
         
            +
                      get :autocomplete_movie_name
         
     | 
| 
      
 34 
     | 
    
         
            +
                    end
         
     | 
| 
      
 35 
     | 
    
         
            +
                  end
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
              end
         
     | 
| 
      
 38 
     | 
    
         
            +
            end
         
     | 
    
        data/test/test_helper.rb
    ADDED
    
    | 
         @@ -0,0 +1,36 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'bundler/setup'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
         
     | 
| 
      
 5 
     | 
    
         
            +
            $LOAD_PATH.unshift(File.dirname(__FILE__))
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            ENV["RAILS_ENV"] = "test"
         
     | 
| 
      
 8 
     | 
    
         
            +
            module Rails
         
     | 
| 
      
 9 
     | 
    
         
            +
              def self.env
         
     | 
| 
      
 10 
     | 
    
         
            +
                ActiveSupport::StringInquirer.new("test")
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
            end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            require 'rails/all'
         
     | 
| 
      
 15 
     | 
    
         
            +
            require 'mongoid'
         
     | 
| 
      
 16 
     | 
    
         
            +
            require 'mongo_mapper'
         
     | 
| 
      
 17 
     | 
    
         
            +
            require 'shoulda'
         
     | 
| 
      
 18 
     | 
    
         
            +
            require 'rr'
         
     | 
| 
      
 19 
     | 
    
         
            +
            require 'rails/test_help'
         
     | 
| 
      
 20 
     | 
    
         
            +
            require 'rails-jquery-autocomplete'
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            module RailsJQueryAutocomplete
         
     | 
| 
      
 23 
     | 
    
         
            +
              class Application < ::Rails::Application
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
            end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            RailsJQueryAutocomplete::Application.routes.draw do
         
     | 
| 
      
 28 
     | 
    
         
            +
              match '/:controller(/:action(/:id))'
         
     | 
| 
      
 29 
     | 
    
         
            +
            end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            ActionController::Base.send :include, RailsJQueryAutocomplete::Application.routes.url_helpers
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            class Test::Unit::TestCase
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
         @@ -0,0 +1,108 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class User
         
     | 
| 
      
 2 
     | 
    
         
            +
              extend ActiveModel::Naming
         
     | 
| 
      
 3 
     | 
    
         
            +
              include ActiveModel::Conversion
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              attr_accessor :id, :name, :description, :created_at, :updated_at
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              def initialize(options={})
         
     | 
| 
      
 8 
     | 
    
         
            +
                @new_record = false
         
     | 
| 
      
 9 
     | 
    
         
            +
                options.each do |key, value|
         
     | 
| 
      
 10 
     | 
    
         
            +
                  send("#{key}=", value)
         
     | 
| 
      
 11 
     | 
    
         
            +
                end if options
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              def new_record!
         
     | 
| 
      
 15 
     | 
    
         
            +
                @new_record = true
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
              def persisted?
         
     | 
| 
      
 19 
     | 
    
         
            +
                !@new_record
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
            end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            class MockController
         
     | 
| 
      
 24 
     | 
    
         
            +
              attr_writer :action_name
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              def _routes
         
     | 
| 
      
 27 
     | 
    
         
            +
                self
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
              def action_name
         
     | 
| 
      
 31 
     | 
    
         
            +
                defined?(@action_name) ? @action_name : "edit"
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
              def url_for(*args)
         
     | 
| 
      
 35 
     | 
    
         
            +
                "http://example.com"
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
              def url_helpers
         
     | 
| 
      
 39 
     | 
    
         
            +
                self
         
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
              def hash_for_user_path(*args); end
         
     | 
| 
      
 43 
     | 
    
         
            +
              def hash_for_users_path(*args); end
         
     | 
| 
      
 44 
     | 
    
         
            +
            end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            class MockResponse
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
              def initialize(test_case)
         
     | 
| 
      
 49 
     | 
    
         
            +
                @test_case = test_case
         
     | 
| 
      
 50 
     | 
    
         
            +
              end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
              def content_type
         
     | 
| 
      
 53 
     | 
    
         
            +
                'text/html'
         
     | 
| 
      
 54 
     | 
    
         
            +
              end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
              def body
         
     | 
| 
      
 57 
     | 
    
         
            +
                @test_case.send :output_buffer
         
     | 
| 
      
 58 
     | 
    
         
            +
              end
         
     | 
| 
      
 59 
     | 
    
         
            +
            end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            class ActionView::TestCase
         
     | 
| 
      
 62 
     | 
    
         
            +
              include RailsJQueryAutocomplete::Autocomplete
         
     | 
| 
      
 63 
     | 
    
         
            +
              include SimpleForm::ActionViewExtensions::FormHelper
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
              setup :set_controller
         
     | 
| 
      
 66 
     | 
    
         
            +
              setup :set_response
         
     | 
| 
      
 67 
     | 
    
         
            +
              setup :setup_new_user
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
              def assert_no_select(selector, value = nil)
         
     | 
| 
      
 70 
     | 
    
         
            +
                assert_select(selector, :text => value, :count => 0)
         
     | 
| 
      
 71 
     | 
    
         
            +
              end
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
              def with_concat_form_for(*args, &block)
         
     | 
| 
      
 74 
     | 
    
         
            +
                concat simple_form_for(*args, &block)
         
     | 
| 
      
 75 
     | 
    
         
            +
              end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
              def with_input_for(object, attribute_name, type, options={})
         
     | 
| 
      
 78 
     | 
    
         
            +
                with_concat_form_for(object) do |f|
         
     | 
| 
      
 79 
     | 
    
         
            +
                  f.input(attribute_name, options.merge(:as => type))
         
     | 
| 
      
 80 
     | 
    
         
            +
                end
         
     | 
| 
      
 81 
     | 
    
         
            +
              end
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
              def set_controller
         
     | 
| 
      
 84 
     | 
    
         
            +
                @controller = MockController.new
         
     | 
| 
      
 85 
     | 
    
         
            +
              end
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
              def set_response
         
     | 
| 
      
 88 
     | 
    
         
            +
                @response = MockResponse.new(self)
         
     | 
| 
      
 89 
     | 
    
         
            +
              end
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
              def setup_new_user
         
     | 
| 
      
 92 
     | 
    
         
            +
                @user = User.new(
         
     | 
| 
      
 93 
     | 
    
         
            +
                  :id => 1,
         
     | 
| 
      
 94 
     | 
    
         
            +
                  :name => 'New in SimpleForm!',
         
     | 
| 
      
 95 
     | 
    
         
            +
                  :description => 'Hello!',
         
     | 
| 
      
 96 
     | 
    
         
            +
                  :created_at => Time.now
         
     | 
| 
      
 97 
     | 
    
         
            +
                )
         
     | 
| 
      
 98 
     | 
    
         
            +
              end
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
              def protect_against_forgery?
         
     | 
| 
      
 101 
     | 
    
         
            +
                false
         
     | 
| 
      
 102 
     | 
    
         
            +
              end
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
      
 104 
     | 
    
         
            +
              def user_path(*args)
         
     | 
| 
      
 105 
     | 
    
         
            +
                '/users'
         
     | 
| 
      
 106 
     | 
    
         
            +
              end
         
     | 
| 
      
 107 
     | 
    
         
            +
              alias :users_path :user_path
         
     | 
| 
      
 108 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rails-jquery-autocomplete
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - David Padilla
         
     | 
| 
         @@ -10,78 +10,64 @@ authors: 
     | 
|
| 
       10 
10 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       11 
11 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       12 
12 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       13 
     | 
    
         
            -
            date: 2015- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2015-06-22 00:00:00.000000000 Z
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies:
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       16 
16 
     | 
    
         
             
              name: rails
         
     | 
| 
       17 
17 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       18 
18 
     | 
    
         
             
                requirements:
         
     | 
| 
       19 
     | 
    
         
            -
                - -  
     | 
| 
      
 19 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       20 
20 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       21 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 21 
     | 
    
         
            +
                    version: '3.2'
         
     | 
| 
       22 
22 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       23 
23 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       24 
24 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       25 
25 
     | 
    
         
             
                requirements:
         
     | 
| 
       26 
     | 
    
         
            -
                - -  
     | 
| 
      
 26 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       27 
27 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       28 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 28 
     | 
    
         
            +
                    version: '3.2'
         
     | 
| 
       29 
29 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       30 
30 
     | 
    
         
             
              name: sqlite3-ruby
         
     | 
| 
       31 
31 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       32 
32 
     | 
    
         
             
                requirements:
         
     | 
| 
       33 
     | 
    
         
            -
                - -  
     | 
| 
      
 33 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       34 
34 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       35 
35 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       36 
36 
     | 
    
         
             
              type: :development
         
     | 
| 
       37 
37 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       38 
38 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       39 
39 
     | 
    
         
             
                requirements:
         
     | 
| 
       40 
     | 
    
         
            -
                - -  
     | 
| 
      
 40 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       41 
41 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       42 
42 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       43 
43 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       44 
44 
     | 
    
         
             
              name: mongoid
         
     | 
| 
       45 
45 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       46 
46 
     | 
    
         
             
                requirements:
         
     | 
| 
       47 
     | 
    
         
            -
                - -  
     | 
| 
      
 47 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       48 
48 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       49 
49 
     | 
    
         
             
                    version: 2.0.0
         
     | 
| 
       50 
50 
     | 
    
         
             
              type: :development
         
     | 
| 
       51 
51 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       52 
52 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       53 
53 
     | 
    
         
             
                requirements:
         
     | 
| 
       54 
     | 
    
         
            -
                - -  
     | 
| 
      
 54 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       55 
55 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       56 
56 
     | 
    
         
             
                    version: 2.0.0
         
     | 
| 
       57 
57 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       58 
58 
     | 
    
         
             
              name: mongo_mapper
         
     | 
| 
       59 
59 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       60 
60 
     | 
    
         
             
                requirements:
         
     | 
| 
       61 
     | 
    
         
            -
                - -  
     | 
| 
      
 61 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       62 
62 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       63 
63 
     | 
    
         
             
                    version: '0.9'
         
     | 
| 
       64 
64 
     | 
    
         
             
              type: :development
         
     | 
| 
       65 
65 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       66 
66 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       67 
67 
     | 
    
         
             
                requirements:
         
     | 
| 
       68 
     | 
    
         
            -
                - -  
     | 
| 
      
 68 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       69 
69 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       70 
70 
     | 
    
         
             
                    version: '0.9'
         
     | 
| 
       71 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       72 
     | 
    
         
            -
              name: mongo
         
     | 
| 
       73 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       74 
     | 
    
         
            -
                requirements:
         
     | 
| 
       75 
     | 
    
         
            -
                - - ~>
         
     | 
| 
       76 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       77 
     | 
    
         
            -
                    version: 1.6.2
         
     | 
| 
       78 
     | 
    
         
            -
              type: :development
         
     | 
| 
       79 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       80 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       81 
     | 
    
         
            -
                requirements:
         
     | 
| 
       82 
     | 
    
         
            -
                - - ~>
         
     | 
| 
       83 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       84 
     | 
    
         
            -
                    version: 1.6.2
         
     | 
| 
       85 
71 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       86 
72 
     | 
    
         
             
              name: bson_ext
         
     | 
| 
       87 
73 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -100,28 +86,28 @@ dependencies: 
     | 
|
| 
       100 
86 
     | 
    
         
             
              name: guard
         
     | 
| 
       101 
87 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       102 
88 
     | 
    
         
             
                requirements:
         
     | 
| 
       103 
     | 
    
         
            -
                - -  
     | 
| 
      
 89 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       104 
90 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       105 
91 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       106 
92 
     | 
    
         
             
              type: :development
         
     | 
| 
       107 
93 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       108 
94 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       109 
95 
     | 
    
         
             
                requirements:
         
     | 
| 
       110 
     | 
    
         
            -
                - -  
     | 
| 
      
 96 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       111 
97 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       112 
98 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       113 
99 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       114 
100 
     | 
    
         
             
              name: guard-test
         
     | 
| 
       115 
101 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       116 
102 
     | 
    
         
             
                requirements:
         
     | 
| 
       117 
     | 
    
         
            -
                - -  
     | 
| 
      
 103 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       118 
104 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       119 
105 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       120 
106 
     | 
    
         
             
              type: :development
         
     | 
| 
       121 
107 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       122 
108 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       123 
109 
     | 
    
         
             
                requirements:
         
     | 
| 
       124 
     | 
    
         
            -
                - -  
     | 
| 
      
 110 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       125 
111 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       126 
112 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       127 
113 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
         @@ -156,28 +142,28 @@ dependencies: 
     | 
|
| 
       156 
142 
     | 
    
         
             
              name: uglifier
         
     | 
| 
       157 
143 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       158 
144 
     | 
    
         
             
                requirements:
         
     | 
| 
       159 
     | 
    
         
            -
                - -  
     | 
| 
      
 145 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       160 
146 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       161 
147 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       162 
148 
     | 
    
         
             
              type: :development
         
     | 
| 
       163 
149 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       164 
150 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       165 
151 
     | 
    
         
             
                requirements:
         
     | 
| 
       166 
     | 
    
         
            -
                - -  
     | 
| 
      
 152 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       167 
153 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       168 
154 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       169 
155 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       170 
156 
     | 
    
         
             
              name: rr
         
     | 
| 
       171 
157 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       172 
158 
     | 
    
         
             
                requirements:
         
     | 
| 
       173 
     | 
    
         
            -
                - -  
     | 
| 
      
 159 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       174 
160 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       175 
161 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       176 
162 
     | 
    
         
             
              type: :development
         
     | 
| 
       177 
163 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       178 
164 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       179 
165 
     | 
    
         
             
                requirements:
         
     | 
| 
       180 
     | 
    
         
            -
                - -  
     | 
| 
      
 166 
     | 
    
         
            +
                - - '>='
         
     | 
| 
       181 
167 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       182 
168 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       183 
169 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
         @@ -222,7 +208,18 @@ files: 
     | 
|
| 
       222 
208 
     | 
    
         
             
            - LICENSE
         
     | 
| 
       223 
209 
     | 
    
         
             
            - README.md
         
     | 
| 
       224 
210 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       225 
     | 
    
         
            -
             
     | 
| 
      
 211 
     | 
    
         
            +
            - test/form_helper_test.rb
         
     | 
| 
      
 212 
     | 
    
         
            +
            - test/generators/autocomplete/install_generator_test.rb
         
     | 
| 
      
 213 
     | 
    
         
            +
            - test/generators/autocomplete/uncompressed_generator_test.rb
         
     | 
| 
      
 214 
     | 
    
         
            +
            - test/lib/rails-jquery-autocomplete/autocomplete_test.rb
         
     | 
| 
      
 215 
     | 
    
         
            +
            - test/lib/rails-jquery-autocomplete/orm/active_record_test.rb
         
     | 
| 
      
 216 
     | 
    
         
            +
            - test/lib/rails-jquery-autocomplete/orm/mongo_mapper_test.rb
         
     | 
| 
      
 217 
     | 
    
         
            +
            - test/lib/rails-jquery-autocomplete/orm/mongoid_test.rb
         
     | 
| 
      
 218 
     | 
    
         
            +
            - test/lib/rails-jquery-autocomplete/simple_form_plugin_test.rb
         
     | 
| 
      
 219 
     | 
    
         
            +
            - test/lib/rails-jquery-autocomplete_test.rb
         
     | 
| 
      
 220 
     | 
    
         
            +
            - test/test_helper.rb
         
     | 
| 
      
 221 
     | 
    
         
            +
            - test/view_test_helper.rb
         
     | 
| 
      
 222 
     | 
    
         
            +
            homepage: https://github.com/bigtunacan/rails-jquery-autocomplete/
         
     | 
| 
       226 
223 
     | 
    
         
             
            licenses:
         
     | 
| 
       227 
224 
     | 
    
         
             
            - MIT
         
     | 
| 
       228 
225 
     | 
    
         
             
            metadata: {}
         
     | 
| 
         @@ -232,12 +229,12 @@ require_paths: 
     | 
|
| 
       232 
229 
     | 
    
         
             
            - lib
         
     | 
| 
       233 
230 
     | 
    
         
             
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
       234 
231 
     | 
    
         
             
              requirements:
         
     | 
| 
       235 
     | 
    
         
            -
              - -  
     | 
| 
      
 232 
     | 
    
         
            +
              - - '>='
         
     | 
| 
       236 
233 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       237 
234 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       238 
235 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       239 
236 
     | 
    
         
             
              requirements:
         
     | 
| 
       240 
     | 
    
         
            -
              - -  
     | 
| 
      
 237 
     | 
    
         
            +
              - - '>='
         
     | 
| 
       241 
238 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       242 
239 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       243 
240 
     | 
    
         
             
            requirements: []
         
     | 
| 
         @@ -246,5 +243,15 @@ rubygems_version: 2.1.11 
     | 
|
| 
       246 
243 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       247 
244 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       248 
245 
     | 
    
         
             
            summary: Use jQuery's autocomplete plugin with Rails 4+.
         
     | 
| 
       249 
     | 
    
         
            -
            test_files: 
     | 
| 
       250 
     | 
    
         
            -
             
     | 
| 
      
 246 
     | 
    
         
            +
            test_files:
         
     | 
| 
      
 247 
     | 
    
         
            +
            - test/form_helper_test.rb
         
     | 
| 
      
 248 
     | 
    
         
            +
            - test/generators/autocomplete/install_generator_test.rb
         
     | 
| 
      
 249 
     | 
    
         
            +
            - test/generators/autocomplete/uncompressed_generator_test.rb
         
     | 
| 
      
 250 
     | 
    
         
            +
            - test/lib/rails-jquery-autocomplete/autocomplete_test.rb
         
     | 
| 
      
 251 
     | 
    
         
            +
            - test/lib/rails-jquery-autocomplete/orm/active_record_test.rb
         
     | 
| 
      
 252 
     | 
    
         
            +
            - test/lib/rails-jquery-autocomplete/orm/mongo_mapper_test.rb
         
     | 
| 
      
 253 
     | 
    
         
            +
            - test/lib/rails-jquery-autocomplete/orm/mongoid_test.rb
         
     | 
| 
      
 254 
     | 
    
         
            +
            - test/lib/rails-jquery-autocomplete/simple_form_plugin_test.rb
         
     | 
| 
      
 255 
     | 
    
         
            +
            - test/lib/rails-jquery-autocomplete_test.rb
         
     | 
| 
      
 256 
     | 
    
         
            +
            - test/test_helper.rb
         
     | 
| 
      
 257 
     | 
    
         
            +
            - test/view_test_helper.rb
         
     |