rails3-jquery-autocomplete 0.8.0 → 0.9.0
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.
- 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
|