rails3-jquery-autocomplete 1.0.7 → 1.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,17 +1,30 @@
1
1
  module SimpleForm
2
-
3
2
  module Inputs
3
+ module Autocomplete
4
+ #
5
+ # Method used to rename the autocomplete key to a more standard
6
+ # data-autocomplete key
7
+ #
8
+ def rewrite_autocomplete_option
9
+ new_options = {}
10
+ new_options["data-update-elements"] = JSON.generate(options.delete :update_elements) if options[:update_elements]
11
+ new_options["data-id-element"] = options.delete :id_element if options[:id_element]
12
+ input_html_options.merge new_options
13
+ end
14
+ end
15
+
4
16
  class AutocompleteInput < Base
17
+ include Autocomplete
18
+
5
19
  def input
6
20
  @builder.autocomplete_field(
7
21
  attribute_name,
8
22
  options[:url],
9
- html_options
23
+ rewrite_autocomplete_option
10
24
  )
11
25
  end
12
26
 
13
- protected
14
-
27
+ protected
15
28
  def limit
16
29
  column && column.limit
17
30
  end
@@ -19,23 +32,50 @@ module SimpleForm
19
32
  def has_placeholder?
20
33
  placeholder_present?
21
34
  end
35
+ end
22
36
 
23
- def html_options
24
- input_html_options.merge update_elements options[:update_elements]
25
- end
37
+ class AutocompleteCollectionInput < CollectionInput
38
+ include Autocomplete
26
39
 
27
- def update_elements(elements)
28
- if elements
29
- {'data-update-elements' => elements.to_json}
40
+ def input
41
+ id_element = options[:id_element]
42
+ if id_element
43
+ id_element << ", ##{object_name}_#{attribute_name}[type=hidden]"
30
44
  else
31
- {}
45
+ id_element = "##{object_name}_#{attribute_name}[type=hidden]"
32
46
  end
47
+ options[:id_element] = id_element
48
+ autocomplete_options = rewrite_autocomplete_option
49
+ #
50
+ label_method, value_method = detect_collection_methods
51
+ association = object.send(reflection.name)
52
+ if association && association.respond_to?(label_method)
53
+ autocomplete_options[:value] = association.send(label_method)
54
+ end
55
+ out = @builder.autocomplete_field(
56
+ attribute_name,
57
+ options[:url],
58
+ autocomplete_options
59
+ )
60
+ hidden_options = if association && association.respond_to?(value_method)
61
+ new_options = {}
62
+ new_options[:value] = association.send(value_method)
63
+ input_html_options.merge new_options
64
+ else
65
+ input_html_options
66
+ end
67
+ out << @builder.hidden_field(
68
+ attribute_name,
69
+ hidden_options
70
+ )
71
+ out.html_safe
33
72
  end
34
73
  end
35
74
  end
36
75
 
37
76
  class FormBuilder
38
77
  map_type :autocomplete, :to => SimpleForm::Inputs::AutocompleteInput
78
+ map_type :autocomplete_collection, :to => SimpleForm::Inputs::AutocompleteCollectionInput
39
79
  end
40
80
 
41
81
  end
@@ -1,3 +1,3 @@
1
1
  module Rails3JQueryAutocomplete
2
- VERSION = '1.0.7'
2
+ VERSION = '1.0.8'
3
3
  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.7
4
+ version: 1.0.8
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: 2012-04-18 00:00:00.000000000 Z
12
+ date: 2012-08-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70154298640540 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70154298640540
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: sqlite3-ruby
27
- requirement: &70154298638880 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70154298638880
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: mongoid
38
- requirement: &70154298635000 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: 2.0.0
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70154298635000
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.0.0
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: mongo_mapper
49
- requirement: &70154298653820 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '0.9'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *70154298653820
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0.9'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: mongo
60
- requirement: &70154298665520 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ~>
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: 1.6.2
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *70154298665520
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.6.2
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: bson_ext
71
- requirement: &70154298664280 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ~>
@@ -76,10 +101,15 @@ dependencies:
76
101
  version: 1.6.2
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *70154298664280
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 1.6.2
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: guard
82
- requirement: &70154298661600 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ! '>='
@@ -87,10 +117,15 @@ dependencies:
87
117
  version: '0'
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *70154298661600
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
91
126
  - !ruby/object:Gem::Dependency
92
127
  name: guard-test
93
- requirement: &70154298658700 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
131
  - - ! '>='
@@ -98,10 +133,15 @@ dependencies:
98
133
  version: '0'
99
134
  type: :development
100
135
  prerelease: false
101
- version_requirements: *70154298658700
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
102
142
  - !ruby/object:Gem::Dependency
103
143
  name: test-unit
104
- requirement: &70154298671440 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
105
145
  none: false
106
146
  requirements:
107
147
  - - ~>
@@ -109,10 +149,15 @@ dependencies:
109
149
  version: 2.2.0
110
150
  type: :development
111
151
  prerelease: false
112
- version_requirements: *70154298671440
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: 2.2.0
113
158
  - !ruby/object:Gem::Dependency
114
159
  name: shoulda
115
- requirement: &70154298668460 !ruby/object:Gem::Requirement
160
+ requirement: !ruby/object:Gem::Requirement
116
161
  none: false
117
162
  requirements:
118
163
  - - ~>
@@ -120,10 +165,15 @@ dependencies:
120
165
  version: 3.0.1
121
166
  type: :development
122
167
  prerelease: false
123
- version_requirements: *70154298668460
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: 3.0.1
124
174
  - !ruby/object:Gem::Dependency
125
175
  name: uglifier
126
- requirement: &70154314667660 !ruby/object:Gem::Requirement
176
+ requirement: !ruby/object:Gem::Requirement
127
177
  none: false
128
178
  requirements:
129
179
  - - ! '>='
@@ -131,10 +181,15 @@ dependencies:
131
181
  version: '0'
132
182
  type: :development
133
183
  prerelease: false
134
- version_requirements: *70154314667660
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
135
190
  - !ruby/object:Gem::Dependency
136
191
  name: rr
137
- requirement: &70154314666660 !ruby/object:Gem::Requirement
192
+ requirement: !ruby/object:Gem::Requirement
138
193
  none: false
139
194
  requirements:
140
195
  - - ! '>='
@@ -142,10 +197,15 @@ dependencies:
142
197
  version: '0'
143
198
  type: :development
144
199
  prerelease: false
145
- version_requirements: *70154314666660
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
146
206
  - !ruby/object:Gem::Dependency
147
207
  name: simple_form
148
- requirement: &70154314664920 !ruby/object:Gem::Requirement
208
+ requirement: !ruby/object:Gem::Requirement
149
209
  none: false
150
210
  requirements:
151
211
  - - ~>
@@ -153,7 +213,12 @@ dependencies:
153
213
  version: '1.5'
154
214
  type: :development
155
215
  prerelease: false
156
- version_requirements: *70154314664920
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ~>
220
+ - !ruby/object:Gem::Version
221
+ version: '1.5'
157
222
  description: Use jQuery's autocomplete plugin with Rails 3.
158
223
  email: david.padilla@crowdint.com
159
224
  executables: []
@@ -205,21 +270,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
205
270
  - - ! '>='
206
271
  - !ruby/object:Gem::Version
207
272
  version: '0'
208
- segments:
209
- - 0
210
- hash: -2709210459065488220
211
273
  required_rubygems_version: !ruby/object:Gem::Requirement
212
274
  none: false
213
275
  requirements:
214
276
  - - ! '>='
215
277
  - !ruby/object:Gem::Version
216
278
  version: '0'
217
- segments:
218
- - 0
219
- hash: -2709210459065488220
220
279
  requirements: []
221
280
  rubyforge_project:
222
- rubygems_version: 1.8.11
281
+ rubygems_version: 1.8.23
223
282
  signing_key:
224
283
  specification_version: 3
225
284
  summary: Use jQuery's autocomplete plugin with Rails 3.