rails3-jquery-autocomplete 0.1.2 → 0.1.3
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/Manifest +1 -0
- data/README.markdown +13 -1
- data/Rakefile +2 -2
- data/lib/autocomplete.rb +2 -1
- data/rails3-jquery-autocomplete.gemspec +4 -4
- data/test/autocomplete_generator_test.rb +22 -0
- data/test/controller_module_test.rb +25 -3
- metadata +6 -4
data/Manifest
CHANGED
data/README.markdown
CHANGED
@@ -19,7 +19,7 @@ I'd recommend you understand what's happening with those 3 tools before attempti
|
|
19
19
|
|
20
20
|
Include the gem on your Gemfile
|
21
21
|
|
22
|
-
gem 'rails3-jquery-autocomplete', '>= 0.1.
|
22
|
+
gem 'rails3-jquery-autocomplete', '>= 0.1.3', :require => 'autocomplete'
|
23
23
|
|
24
24
|
Install it
|
25
25
|
|
@@ -51,6 +51,18 @@ don't forget to add it on your routes file
|
|
51
51
|
get :autocomplete_brand_name, :on => :collection
|
52
52
|
end
|
53
53
|
|
54
|
+
By default, the search starts from the beginning of the string you're searching for. If you want to do a full search, set the _full_ parameter to true.
|
55
|
+
|
56
|
+
class ProductsController < Admin::BaseController
|
57
|
+
autocomplete :brand, :name, :full => true
|
58
|
+
end
|
59
|
+
|
60
|
+
The following list would match the term query 'un':
|
61
|
+
|
62
|
+
* Luna
|
63
|
+
* Unacceptable
|
64
|
+
* Rerun
|
65
|
+
|
54
66
|
### View
|
55
67
|
|
56
68
|
On your view, all you have to do is include the attribute autocomplete on the text field
|
data/Rakefile
CHANGED
@@ -2,11 +2,11 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
require 'echoe'
|
4
4
|
|
5
|
-
Echoe.new('rails3-jquery-autocomplete', '0.1.
|
5
|
+
Echoe.new('rails3-jquery-autocomplete', '0.1.3') do |p|
|
6
6
|
p.description = "Use jQuery's autocomplete plugin with Rails 3."
|
7
7
|
p.url = "http://github.com/crowdint/rails3-jquery-autocomplete"
|
8
8
|
p.author = "David Padilla"
|
9
9
|
p.email = "david@crowdint.com"
|
10
10
|
p.ignore_pattern = ["tmp/*", "script/*"]
|
11
11
|
p.development_dependencies = []
|
12
|
-
end
|
12
|
+
end
|
data/lib/autocomplete.rb
CHANGED
@@ -29,10 +29,11 @@ module Autocomplete
|
|
29
29
|
def autocomplete(object, method, options = {})
|
30
30
|
limit = options[:limit] || 10
|
31
31
|
order = options[:order] || "#{method} ASC"
|
32
|
+
inner = options[:full] || false
|
32
33
|
|
33
34
|
define_method("autocomplete_#{object}_#{method}") do
|
34
35
|
unless params[:term] && params[:term].empty?
|
35
|
-
items = object.to_s.camelize.constantize.where(["LOWER(#{method}) LIKE ?", "#{params[:term]}%"]).limit(limit).order(order)
|
36
|
+
items = object.to_s.camelize.constantize.where(["LOWER(#{method}) LIKE ?", "#{(options[:full] ? '%' : '')}#{params[:term].downcase}%"]).limit(limit).order(order)
|
36
37
|
else
|
37
38
|
items = {}
|
38
39
|
end
|
@@ -2,22 +2,22 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{rails3-jquery-autocomplete}
|
5
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.3"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["David Padilla"]
|
9
|
-
s.date = %q{2010-07-
|
9
|
+
s.date = %q{2010-07-25}
|
10
10
|
s.description = %q{Use jQuery's autocomplete plugin with Rails 3.}
|
11
11
|
s.email = %q{david@crowdint.com}
|
12
12
|
s.extra_rdoc_files = ["README.markdown", "lib/autocomplete.rb", "lib/generators/autocomplete_generator.rb", "lib/generators/templates/autocomplete-rails.js"]
|
13
|
-
s.files = ["README.markdown", "Rakefile", "init.rb", "lib/autocomplete.rb", "lib/generators/autocomplete_generator.rb", "lib/generators/templates/autocomplete-rails.js", "rails3-jquery-autocomplete.gemspec", "test/controller_module_test.rb", "test/test_helper.rb", "Manifest"]
|
13
|
+
s.files = ["README.markdown", "Rakefile", "init.rb", "lib/autocomplete.rb", "lib/generators/autocomplete_generator.rb", "lib/generators/templates/autocomplete-rails.js", "rails3-jquery-autocomplete.gemspec", "test/autocomplete_generator_test.rb", "test/controller_module_test.rb", "test/test_helper.rb", "Manifest"]
|
14
14
|
s.homepage = %q{http://github.com/crowdint/rails3-jquery-autocomplete}
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rails3-jquery-autocomplete", "--main", "README.markdown"]
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
s.rubyforge_project = %q{rails3-jquery-autocomplete}
|
18
18
|
s.rubygems_version = %q{1.3.7}
|
19
19
|
s.summary = %q{Use jQuery's autocomplete plugin with Rails 3.}
|
20
|
-
s.test_files = ["test/controller_module_test.rb", "test/test_helper.rb"]
|
20
|
+
s.test_files = ["test/autocomplete_generator_test.rb", "test/controller_module_test.rb", "test/test_helper.rb"]
|
21
21
|
|
22
22
|
if s.respond_to? :specification_version then
|
23
23
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'generators/autocomplete_generator'
|
3
|
+
|
4
|
+
class AutocompleteGeneratorTest < Test::Unit::TestCase
|
5
|
+
def setup
|
6
|
+
@destination = File.join('tmp', 'test_app')
|
7
|
+
@source = AutocompleteGenerator.source_root
|
8
|
+
|
9
|
+
AutocompleteGenerator.start('', :destination_root => @destination)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_install
|
13
|
+
assert File.exists?(
|
14
|
+
File.join(@destination, 'public', 'javascripts', 'autocomplete-rails.js')
|
15
|
+
)
|
16
|
+
|
17
|
+
assert_equal(
|
18
|
+
File.read(File.join(@source, 'autocomplete-rails.js')),
|
19
|
+
File.read(File.join(@destination, 'public', 'javascripts', 'autocomplete-rails.js'))
|
20
|
+
)
|
21
|
+
end
|
22
|
+
end
|
@@ -70,14 +70,14 @@ class ActorsControllerTest < ActionController::TestCase
|
|
70
70
|
assert_equal(json_response.first["label"], "Alpha")
|
71
71
|
assert_equal(json_response.last["label"], "Alzpha")
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
def test_alternative_sort_order
|
75
75
|
@movie = Movie.create(:name => 'Alzpha')
|
76
76
|
@movie = Movie.create(:name => 'Alspha')
|
77
77
|
@movie = Movie.create(:name => 'Alpha')
|
78
78
|
|
79
79
|
ActorsController.send(:autocomplete, :movie, :name, {:order => "name DESC"})
|
80
|
-
|
80
|
+
|
81
81
|
get :autocomplete_movie_name, :term => 'Al'
|
82
82
|
json_response = JSON.parse(@response.body)
|
83
83
|
assert_equal(json_response.first["label"], "Alzpha")
|
@@ -88,11 +88,33 @@ class ActorsControllerTest < ActionController::TestCase
|
|
88
88
|
@movie = Movie.create(:name => 'Alzpha')
|
89
89
|
@movie = Movie.create(:name => 'Alspha')
|
90
90
|
@movie = Movie.create(:name => 'Alpha')
|
91
|
-
|
91
|
+
|
92
92
|
ActorsController.send(:autocomplete, :movie, :name, {:limit => 1})
|
93
93
|
|
94
94
|
get :autocomplete_movie_name, :term => 'Al'
|
95
95
|
json_response = JSON.parse(@response.body)
|
96
96
|
assert_equal(json_response.length, 1)
|
97
97
|
end
|
98
|
+
|
99
|
+
def test_downcase
|
100
|
+
@movie = Movie.create(:name => 'aLpHa')
|
101
|
+
|
102
|
+
ActorsController.send(:autocomplete, :movie, :name)
|
103
|
+
|
104
|
+
get :autocomplete_movie_name, :term => 'Al'
|
105
|
+
json_response = JSON.parse(@response.body)
|
106
|
+
assert_equal(json_response.length, 1)
|
107
|
+
assert_equal(json_response.first["label"], 'aLpHa')
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_full_search
|
111
|
+
@movie = Movie.create(:name => 'aLpHa')
|
112
|
+
|
113
|
+
ActorsController.send(:autocomplete, :movie, :name, {:full => true})
|
114
|
+
|
115
|
+
get :autocomplete_movie_name, :term => 'ph'
|
116
|
+
json_response = JSON.parse(@response.body)
|
117
|
+
assert_equal(json_response.length, 1)
|
118
|
+
assert_equal(json_response.first["label"], 'aLpHa')
|
119
|
+
end
|
98
120
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails3-jquery-autocomplete
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 29
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 3
|
10
|
+
version: 0.1.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- David Padilla
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-07-
|
18
|
+
date: 2010-07-25 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|
@@ -38,6 +38,7 @@ files:
|
|
38
38
|
- lib/generators/autocomplete_generator.rb
|
39
39
|
- lib/generators/templates/autocomplete-rails.js
|
40
40
|
- rails3-jquery-autocomplete.gemspec
|
41
|
+
- test/autocomplete_generator_test.rb
|
41
42
|
- test/controller_module_test.rb
|
42
43
|
- test/test_helper.rb
|
43
44
|
- Manifest
|
@@ -82,5 +83,6 @@ signing_key:
|
|
82
83
|
specification_version: 3
|
83
84
|
summary: Use jQuery's autocomplete plugin with Rails 3.
|
84
85
|
test_files:
|
86
|
+
- test/autocomplete_generator_test.rb
|
85
87
|
- test/controller_module_test.rb
|
86
88
|
- test/test_helper.rb
|