rails3-jquery-autocomplete 1.0.5 → 1.0.6
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/Rakefile +0 -7
- data/lib/rails3-jquery-autocomplete/orm/active_record.rb +8 -3
- data/lib/rails3-jquery-autocomplete/simple_form_plugin.rb +5 -1
- data/lib/rails3-jquery-autocomplete/version.rb +1 -1
- data/test/lib/rails3-jquery-autocomplete/orm/active_record_test.rb +24 -9
- metadata +19 -30
data/CHANGELOG.md
CHANGED
data/Rakefile
CHANGED
@@ -2,7 +2,6 @@ require 'bundler'
|
|
2
2
|
Bundler::GemHelper.install_tasks
|
3
3
|
|
4
4
|
require 'rake/testtask'
|
5
|
-
require 'rcov/rcovtask'
|
6
5
|
|
7
6
|
task :default => [:uglify, :test]
|
8
7
|
|
@@ -20,9 +19,3 @@ task :uglify do
|
|
20
19
|
end
|
21
20
|
end
|
22
21
|
|
23
|
-
Rcov::RcovTask.new do |t|
|
24
|
-
t.libs << "test"
|
25
|
-
t.test_files = FileList['test/**/*_test.rb']
|
26
|
-
t.rcov_opts = %w{--exclude \/gems\/}
|
27
|
-
t.verbose = true
|
28
|
-
end
|
@@ -14,6 +14,7 @@ module Rails3JQueryAutocomplete
|
|
14
14
|
method = parameters[:method]
|
15
15
|
options = parameters[:options]
|
16
16
|
scopes = Array(options[:scopes])
|
17
|
+
where = options[:where]
|
17
18
|
limit = get_autocomplete_limit(options)
|
18
19
|
order = get_autocomplete_order(method, options, model)
|
19
20
|
|
@@ -25,6 +26,9 @@ module Rails3JQueryAutocomplete
|
|
25
26
|
items = items.select(get_autocomplete_select_clause(model, method, options)) unless options[:full_model]
|
26
27
|
items = items.where(get_autocomplete_where_clause(model, term, method, options)).
|
27
28
|
limit(limit).order(order)
|
29
|
+
items = items.where(where) unless where.blank?
|
30
|
+
|
31
|
+
items
|
28
32
|
end
|
29
33
|
|
30
34
|
def get_autocomplete_select_clause(model, method, options)
|
@@ -35,12 +39,13 @@ module Rails3JQueryAutocomplete
|
|
35
39
|
def get_autocomplete_where_clause(model, term, method, options)
|
36
40
|
table_name = model.table_name
|
37
41
|
is_full_search = options[:full]
|
38
|
-
like_clause = (postgres? ? 'ILIKE' : 'LIKE')
|
42
|
+
like_clause = (postgres?(model) ? 'ILIKE' : 'LIKE')
|
39
43
|
["LOWER(#{table_name}.#{method}) #{like_clause} ?", "#{(is_full_search ? '%' : '')}#{term.downcase}%"]
|
40
44
|
end
|
41
45
|
|
42
|
-
def postgres?
|
43
|
-
|
46
|
+
def postgres?(model)
|
47
|
+
# Figure out if this particular model uses the PostgreSQL adapter
|
48
|
+
model.connection.class.to_s.match(/PostgreSQLAdapter/)
|
44
49
|
end
|
45
50
|
end
|
46
51
|
end
|
@@ -2,7 +2,7 @@ module SimpleForm
|
|
2
2
|
module Inputs
|
3
3
|
class AutocompleteInput < Base
|
4
4
|
def input
|
5
|
-
@builder.autocomplete_field(attribute_name, options[:url], input_html_options)
|
5
|
+
@builder.autocomplete_field(attribute_name, options[:url], input_html_options.merge(update_elements(options[:update_elements])))
|
6
6
|
end
|
7
7
|
|
8
8
|
protected
|
@@ -14,6 +14,10 @@ module SimpleForm
|
|
14
14
|
def has_placeholder?
|
15
15
|
placeholder_present?
|
16
16
|
end
|
17
|
+
|
18
|
+
def update_elements(elements)
|
19
|
+
{'data-update-elements' => elements.to_json}
|
20
|
+
end
|
17
21
|
end
|
18
22
|
end
|
19
23
|
end
|
@@ -84,7 +84,7 @@ module Rails3JQueryAutocomplete
|
|
84
84
|
context '#get_autocomplete_where_clause' do
|
85
85
|
setup do
|
86
86
|
@model = Object.new
|
87
|
-
mock(@model).table_name
|
87
|
+
mock(@model).table_name { 'table_name' }
|
88
88
|
|
89
89
|
@term = 'query'
|
90
90
|
@options = {}
|
@@ -93,21 +93,21 @@ module Rails3JQueryAutocomplete
|
|
93
93
|
|
94
94
|
context 'Not Postgres' do
|
95
95
|
should 'return options for where' do
|
96
|
-
mock(self).postgres? { false }
|
96
|
+
mock(self).postgres?(@model) { false }
|
97
97
|
assert_equal ["LOWER(table_name.method) LIKE ?", "query%"], get_autocomplete_where_clause(@model, @term, @method, @options)
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
101
|
context 'Postgres' do
|
102
102
|
should 'return options for where with ILIKE' do
|
103
|
-
mock(self).postgres? { true }
|
103
|
+
mock(self).postgres?(@model) { true }
|
104
104
|
assert_equal ["LOWER(table_name.method) ILIKE ?", "query%"], get_autocomplete_where_clause(@model, @term, @method, @options)
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
108
108
|
context 'full search' do
|
109
109
|
should 'return options for where with the term sourrounded by %%' do
|
110
|
-
mock(self).postgres? { false }
|
110
|
+
mock(self).postgres?(@model) { false }
|
111
111
|
@options[:full] = true
|
112
112
|
assert_equal ["LOWER(table_name.method) LIKE ?", "%query%"], get_autocomplete_where_clause(@model, @term, @method, @options)
|
113
113
|
end
|
@@ -115,14 +115,29 @@ module Rails3JQueryAutocomplete
|
|
115
115
|
end
|
116
116
|
|
117
117
|
context '#postgres?' do
|
118
|
-
|
119
|
-
|
118
|
+
setup do
|
119
|
+
@model = stub
|
120
120
|
end
|
121
121
|
|
122
|
-
|
123
|
-
|
122
|
+
context 'the connection class is not postgres' do
|
123
|
+
setup do
|
124
|
+
mock(@model).connection { stub }
|
125
|
+
end
|
124
126
|
|
125
|
-
|
127
|
+
should 'return nil if the connection class matches PostgreSQLAdapter' do
|
128
|
+
assert_nil self.postgres?(@model)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
context 'the connection class matches PostgreSQLAdapter' do
|
133
|
+
setup do
|
134
|
+
class PostgreSQLAdapter; end
|
135
|
+
mock(@model).connection { PostgreSQLAdapter.new }
|
136
|
+
end
|
137
|
+
|
138
|
+
should 'return true' do
|
139
|
+
assert self.postgres?(@model)
|
140
|
+
end
|
126
141
|
end
|
127
142
|
end
|
128
143
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails3-jquery-autocomplete
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2012-02-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70131949113700 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70131949113700
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: sqlite3-ruby
|
27
|
-
requirement: &
|
27
|
+
requirement: &70131949113280 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70131949113280
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: mongoid
|
38
|
-
requirement: &
|
38
|
+
requirement: &70131949112740 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 2.0.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70131949112740
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: mongo_mapper
|
49
|
-
requirement: &
|
49
|
+
requirement: &70131949112240 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0.9'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70131949112240
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: bson_ext
|
60
|
-
requirement: &
|
60
|
+
requirement: &70131949111780 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.3.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70131949111780
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: shoulda
|
71
|
-
requirement: &
|
71
|
+
requirement: &70131949111320 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 2.11.1
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70131949111320
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: uglifier
|
82
|
-
requirement: &
|
82
|
+
requirement: &70131949110940 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70131949110940
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: rr
|
93
|
-
requirement: &
|
93
|
+
requirement: &70131949110480 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,18 +98,7 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
102
|
-
- !ruby/object:Gem::Dependency
|
103
|
-
name: rcov
|
104
|
-
requirement: &70221319858060 !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
110
|
-
type: :development
|
111
|
-
prerelease: false
|
112
|
-
version_requirements: *70221319858060
|
101
|
+
version_requirements: *70131949110480
|
113
102
|
description: Use jQuery's autocomplete plugin with Rails 3.
|
114
103
|
email: david.padilla@crowdint.com
|
115
104
|
executables: []
|
@@ -167,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
167
156
|
version: '0'
|
168
157
|
requirements: []
|
169
158
|
rubyforge_project:
|
170
|
-
rubygems_version: 1.8.
|
159
|
+
rubygems_version: 1.8.11
|
171
160
|
signing_key:
|
172
161
|
specification_version: 3
|
173
162
|
summary: Use jQuery's autocomplete plugin with Rails 3.
|