rails3-jquery-autocomplete 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/Manifest CHANGED
@@ -5,6 +5,7 @@ lib/autocomplete.rb
5
5
  lib/generators/autocomplete_generator.rb
6
6
  lib/generators/templates/autocomplete-rails.js
7
7
  rails3-jquery-autocomplete.gemspec
8
+ test/autocomplete_generator_test.rb
8
9
  test/controller_module_test.rb
9
10
  test/test_helper.rb
10
11
  Manifest
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.1', :require => 'autocomplete'
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.2') do |p|
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.2"
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-19}
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: 31
4
+ hash: 29
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 2
10
- version: 0.1.2
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-19 00:00:00 -05:00
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