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 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