rails3-jquery-autocomplete 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. data/CHANGELOG.md +1 -0
  2. data/README.markdown +11 -2
  3. data/Rakefile +8 -0
  4. data/integration/app/views/id_elements/new.html.haml +1 -1
  5. data/integration/public/javascripts/autocomplete-rails.js +2 -99
  6. data/lib/generators/templates/autocomplete-rails-uncompressed.js +4 -4
  7. data/lib/generators/templates/autocomplete-rails.js +2 -2
  8. data/lib/rails3-jquery-autocomplete.rb +7 -6
  9. data/lib/rails3-jquery-autocomplete/autocomplete.rb +87 -41
  10. data/lib/rails3-jquery-autocomplete/orm.rb +8 -0
  11. data/lib/rails3-jquery-autocomplete/orm/active_record.rb +47 -0
  12. data/lib/rails3-jquery-autocomplete/orm/mongo_mapper.rb +30 -0
  13. data/lib/rails3-jquery-autocomplete/orm/mongoid.rb +30 -0
  14. data/lib/rails3-jquery-autocomplete/version.rb +1 -1
  15. data/rails3-jquery-autocomplete.gemspec +2 -1
  16. data/test/generators/autocomplete/install_generator_test.rb +1 -1
  17. data/test/generators/autocomplete/uncompressed_generator_test.rb +2 -2
  18. data/test/lib/rails3-jquery-autocomplete/autocomplete_test.rb +59 -0
  19. data/test/lib/rails3-jquery-autocomplete/orm/active_record_test.rb +130 -0
  20. data/test/lib/rails3-jquery-autocomplete/orm/mongo_mapper_test.rb +60 -0
  21. data/test/lib/rails3-jquery-autocomplete/orm/mongoid_test.rb +60 -0
  22. data/test/lib/rails3-jquery-autocomplete_test.rb +38 -0
  23. data/test/test_helper.rb +5 -2
  24. metadata +56 -41
  25. data/lib/rails3-jquery-autocomplete/helpers.rb +0 -137
  26. data/test/implementations_test.rb +0 -41
  27. data/test/lib/rails3-jquery-autocomplete/helpers_test.rb +0 -16
  28. data/test/support/active_record.rb +0 -44
  29. data/test/support/mongo_mapper.rb +0 -39
  30. data/test/support/mongoid.rb +0 -43
  31. data/test/test_controller.rb +0 -101
@@ -1,43 +0,0 @@
1
- module Rails3JQueryAutocomplete
2
- module TestCase
3
- module Mongoid
4
- def setup
5
- ::Mongoid.configure do |config|
6
- name = "rails3_jquery_autocomplete_test"
7
- host = "localhost"
8
- config.master = Mongo::Connection.new.db(name)
9
- config.logger = nil
10
- end
11
-
12
- create_models
13
-
14
- @controller = ActorsController.new
15
- @movie1 = @movie_class.create(:name => 'Alpha')
16
- @movie2 = @movie_class.create(:name => 'Alspha')
17
- @movie3 = @movie_class.create(:name => 'Alzpha')
18
- end
19
-
20
- def teardown
21
- destroy_models
22
- ::Mongoid.master.collections.select {|c| c.name !~ /system/ }.each(&:drop)
23
- end
24
-
25
- private
26
- def create_models
27
- @movie_class = Object.const_set(:Movie, Class.new)
28
- @movie_class.send(:include, ::Mongoid::Document)
29
- @movie_class.field(:name, :class => String)
30
- @movie_class.class_eval do
31
- def display_name
32
- "Movie: #{name}"
33
- end
34
- end
35
- end
36
-
37
- def destroy_models
38
- Object.send(:remove_const, :Movie)
39
- end
40
-
41
- end
42
- end
43
- end
@@ -1,101 +0,0 @@
1
- module Rails3JQueryAutocomplete
2
- module TestCase
3
-
4
- include Shoulda::InstanceMethods
5
- extend Shoulda::ClassMethods
6
- include Shoulda::Assertions
7
- extend Shoulda::Macros
8
- include Shoulda::Helpers
9
-
10
- context "the autocomplete gem" do
11
-
12
- should "be able to access the autocomplete action regardless of the quality of param[:term]" do
13
- get :autocomplete_movie_name
14
- assert_response :success
15
-
16
- get :autocomplete_movie_name, :term => ''
17
- assert_response :success
18
-
19
- get :autocomplete_movie_name, :term => nil
20
- assert_response :success
21
-
22
- get :autocomplete_movie_name, :term => 'Al'
23
- assert_response :success
24
- end
25
-
26
- should "respond with expected json" do
27
- get :autocomplete_movie_name, :term => 'Al'
28
- json_response = JSON.parse(@response.body)
29
- assert_equal(json_response.first["label"], @movie1.name)
30
- assert_equal(json_response.first["value"], @movie1.name)
31
- assert_equal(json_response.first["id"].to_s, @movie1.id.to_s)
32
- end
33
-
34
- should "return results in alphabetical order by default" do
35
- get :autocomplete_movie_name, :term => 'Al'
36
- json_response = JSON.parse(@response.body)
37
- assert_equal(json_response.first["label"], "Alpha")
38
- assert_equal(json_response.last["label"], "Alzpha")
39
- end
40
-
41
- should "be able to sort in other ways if desired" do
42
- @controller.class_eval do
43
- autocomplete :movie, :name, {:order => "name DESC"}
44
- end
45
-
46
- get :autocomplete_movie_name, :term => 'Al'
47
- json_response = JSON.parse(@response.body)
48
- assert_equal(json_response.first["label"], "Alzpha")
49
- assert_equal(json_response.last["label"], "Alpha")
50
- end
51
-
52
- should "be able to limit the results" do
53
- @controller.class_eval do
54
- autocomplete :movie, :name, {:limit => 1}
55
- end
56
-
57
- get :autocomplete_movie_name, :term => 'Al'
58
- json_response = JSON.parse(@response.body)
59
- assert_equal(json_response.length, 1)
60
- end
61
-
62
- should "ignore case of search term and results" do
63
- @movie = @movie_class.create(:name => 'aLpHa')
64
-
65
- @controller.class_eval do
66
- autocomplete :movie, :name
67
- end
68
-
69
- get :autocomplete_movie_name, :term => 'Al'
70
- json_response = JSON.parse(@response.body)
71
- assert_equal(json_response.length, @movie_class.count)
72
- assert_equal(json_response.last["label"], 'aLpHa')
73
- end
74
-
75
- should "match term to letters in middle of words when full-text search is on" do
76
- @controller.class_eval do
77
- autocomplete :movie, :name, {:full => true}
78
- end
79
-
80
- get :autocomplete_movie_name, :term => 'ph'
81
- json_response = JSON.parse(@response.body)
82
- assert_equal(json_response.length, @movie_class.count)
83
- assert_equal(json_response.first["label"], @movie1.name)
84
- end
85
-
86
- should "be able to customize what is displayed" do
87
- @controller.class_eval do
88
- autocomplete :movie, :name, {:display_value => :display_name}
89
- end
90
-
91
- get :autocomplete_movie_name, :term => 'Al'
92
-
93
- json_response = JSON.parse(@response.body)
94
-
95
- assert_equal(@movie1.display_name, json_response.first["label"])
96
- assert_equal(@movie1.display_name, json_response.first["value"])
97
- assert_equal(@movie1.id.to_s, json_response.first["id"].to_s)
98
- end
99
- end
100
- end
101
- end