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.
- data/CHANGELOG.md +1 -0
- data/README.markdown +11 -2
- data/Rakefile +8 -0
- data/integration/app/views/id_elements/new.html.haml +1 -1
- data/integration/public/javascripts/autocomplete-rails.js +2 -99
- data/lib/generators/templates/autocomplete-rails-uncompressed.js +4 -4
- data/lib/generators/templates/autocomplete-rails.js +2 -2
- data/lib/rails3-jquery-autocomplete.rb +7 -6
- data/lib/rails3-jquery-autocomplete/autocomplete.rb +87 -41
- data/lib/rails3-jquery-autocomplete/orm.rb +8 -0
- data/lib/rails3-jquery-autocomplete/orm/active_record.rb +47 -0
- data/lib/rails3-jquery-autocomplete/orm/mongo_mapper.rb +30 -0
- data/lib/rails3-jquery-autocomplete/orm/mongoid.rb +30 -0
- data/lib/rails3-jquery-autocomplete/version.rb +1 -1
- data/rails3-jquery-autocomplete.gemspec +2 -1
- data/test/generators/autocomplete/install_generator_test.rb +1 -1
- data/test/generators/autocomplete/uncompressed_generator_test.rb +2 -2
- data/test/lib/rails3-jquery-autocomplete/autocomplete_test.rb +59 -0
- data/test/lib/rails3-jquery-autocomplete/orm/active_record_test.rb +130 -0
- data/test/lib/rails3-jquery-autocomplete/orm/mongo_mapper_test.rb +60 -0
- data/test/lib/rails3-jquery-autocomplete/orm/mongoid_test.rb +60 -0
- data/test/lib/rails3-jquery-autocomplete_test.rb +38 -0
- data/test/test_helper.rb +5 -2
- metadata +56 -41
- data/lib/rails3-jquery-autocomplete/helpers.rb +0 -137
- data/test/implementations_test.rb +0 -41
- data/test/lib/rails3-jquery-autocomplete/helpers_test.rb +0 -16
- data/test/support/active_record.rb +0 -44
- data/test/support/mongo_mapper.rb +0 -39
- data/test/support/mongoid.rb +0 -43
- data/test/test_controller.rb +0 -101
data/test/support/mongoid.rb
DELETED
@@ -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
|
data/test/test_controller.rb
DELETED
@@ -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
|