client_side_validations 3.0.4 → 3.0.5

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.
Files changed (53) hide show
  1. data/client_side_validations.gemspec +2 -3
  2. data/javascript/rails.validations.js +26 -12
  3. data/lib/client_side_validations.rb +2 -0
  4. data/lib/client_side_validations/action_view/form_builder.rb +55 -5
  5. data/lib/client_side_validations/action_view/form_helper.rb +20 -2
  6. data/lib/client_side_validations/active_model.rb +22 -13
  7. data/lib/client_side_validations/active_model/length.rb +12 -10
  8. data/lib/client_side_validations/active_model/numericality.rb +14 -9
  9. data/lib/client_side_validations/active_record/middleware.rb +5 -1
  10. data/lib/client_side_validations/active_record/uniqueness.rb +10 -8
  11. data/lib/client_side_validations/middleware.rb +2 -0
  12. data/lib/client_side_validations/mongo_mapper.rb +9 -0
  13. data/lib/client_side_validations/mongo_mapper/middleware.rb +20 -0
  14. data/lib/client_side_validations/mongo_mapper/uniqueness.rb +28 -0
  15. data/lib/client_side_validations/mongoid/uniqueness.rb +10 -8
  16. data/lib/client_side_validations/version.rb +1 -1
  17. data/test/action_view/cases/helper.rb +7 -1
  18. data/test/action_view/cases/test_helpers.rb +263 -0
  19. data/test/action_view/cases/test_legacy_helpers.rb +11 -0
  20. data/test/active_model/cases/test_validations.rb +21 -8
  21. data/test/active_record/cases/test_middleware.rb +25 -0
  22. data/test/active_record/cases/test_uniqueness_validator.rb +5 -0
  23. data/test/active_record/models/user.rb +4 -0
  24. data/test/formtastic/cases/test_form_helper.rb +1 -1
  25. data/test/javascript/public/test/callbacks/elementAfter.js +1 -1
  26. data/test/javascript/public/test/callbacks/elementBefore.js +1 -1
  27. data/test/javascript/public/test/callbacks/elementFail.js +1 -1
  28. data/test/javascript/public/test/callbacks/elementPass.js +1 -1
  29. data/test/javascript/public/test/callbacks/formAfter.js +1 -1
  30. data/test/javascript/public/test/callbacks/formBefore.js +1 -1
  31. data/test/javascript/public/test/callbacks/formFail.js +1 -1
  32. data/test/javascript/public/test/callbacks/formPass.js +1 -1
  33. data/test/javascript/public/test/form_builders/validateForm.js +1 -1
  34. data/test/javascript/public/test/form_builders/validateFormtastic.js +1 -1
  35. data/test/javascript/public/test/form_builders/validateNestedForm.js +66 -0
  36. data/test/javascript/public/test/form_builders/validateSimpleForm.js +1 -1
  37. data/test/javascript/public/test/validateElement.js +36 -1
  38. data/test/javascript/public/test/validators/length.js +7 -1
  39. data/test/javascript/public/test/validators/numericality.js +7 -0
  40. data/test/javascript/public/test/validators/presence.js +6 -0
  41. data/test/javascript/public/test/validators/uniqueness.js +8 -1
  42. data/test/javascript/server.rb +7 -1
  43. data/test/javascript/views/index.erb +1 -1
  44. data/test/mongo_mapper/cases/helper.rb +9 -0
  45. data/test/mongo_mapper/cases/test_base.rb +15 -0
  46. data/test/mongo_mapper/cases/test_middleware.rb +77 -0
  47. data/test/mongo_mapper/cases/test_uniqueness_validator.rb +50 -0
  48. data/test/mongo_mapper/models/magazine.rb +11 -0
  49. data/test/mongoid/cases/test_middleware.rb +9 -0
  50. data/test/mongoid/cases/test_uniqueness_validator.rb +5 -0
  51. data/test/mongoid/models/book.rb +4 -0
  52. data/test/simple_form/cases/test_form_helper.rb +1 -1
  53. metadata +46 -20
@@ -0,0 +1,11 @@
1
+ class Magazine
2
+ include MongoMapper::Document
3
+
4
+ key :age, Integer
5
+ key :author_name, String
6
+ key :author_email, String
7
+ end
8
+
9
+ module MongoMapperTestModule
10
+ class Magazine2 < Magazine; end
11
+ end
@@ -65,4 +65,13 @@ class ClientSideValidationsMongoidMiddlewareTest < Test::Unit::TestCase
65
65
  assert_equal 'false', last_response.body
66
66
  assert last_response.ok?
67
67
  end
68
+
69
+ def test_uniqueness_when_resource_is_a_nested_module
70
+ MongoidTestModule::Book2.create(:author_email => 'book@test.com')
71
+ get '/validators/uniqueness.json', { 'mongoid_test_module/book2[author_email]' => 'book@test.com' }
72
+
73
+ assert_equal 'false', last_response.body
74
+ assert last_response.ok?
75
+ end
68
76
  end
77
+
@@ -40,5 +40,10 @@ class Mongoid::UniqunessValidatorTest < ClientSideValidations::MongoidTestBase
40
40
  assert_equal expected_hash, result_hash
41
41
  end
42
42
 
43
+ def test_uniqueness_client_side_hash_when_nested_module
44
+ @book = MongoidTestModule::Book2.new
45
+ expected_hash = { :message => "is already taken", :class => 'mongoid_test_module/book2' }
46
+ assert_equal expected_hash, UniquenessValidator.new(:attributes => [:name]).client_side_hash(@book, :age)
47
+ end
43
48
  end
44
49
 
@@ -6,3 +6,7 @@ class Book
6
6
  field :author_email, :type => String
7
7
  end
8
8
 
9
+ module MongoidTestModule
10
+ class Book2 < Book; end
11
+ end
12
+
@@ -14,7 +14,7 @@ class ClientSideValidations::SimpleForm::FormHelperTest < ActionView::TestCase
14
14
  concat f.input(:cost)
15
15
  end
16
16
 
17
- expected = %{<form accept-charset="UTF-8" action="/posts/123" class="simple_form post" data-validate="true" id="edit_post_123" method="post" novalidate="novalidate"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="_method" type="hidden" value="put" /></div><div class="input string required"><label class="string required" for="post_cost"><abbr title="required">*</abbr> Cost</label><input class="string required" data-validate="true" id="post_cost" name="post[cost]" required="required" size="50" type="text" /></div></form><script>var edit_post_123 = {"type":"SimpleForm::FormBuilder","error_class":"error","error_tag":"span","wrapper_error_class":"field_with_errors","wrapper_tag":"div","validators":{"post[cost]":{"presence":{"message":"can't be blank"}}}};</script>}
17
+ expected = %{<form accept-charset="UTF-8" action="/posts/123" class="simple_form post" data-validate="true" id="edit_post_123" method="post" novalidate="novalidate"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="_method" type="hidden" value="put" /></div><div class="input string required"><label class="string required" for="post_cost"><abbr title="required">*</abbr> Cost</label><input class="string required" data-validate="true" id="post_cost" name="post[cost]" required="required" size="50" type="text" /></div></form><script>window['edit_post_123'] = {"type":"SimpleForm::FormBuilder","error_class":"error","error_tag":"span","wrapper_error_class":"field_with_errors","wrapper_tag":"div","validators":{"post[cost]":{"presence":{"message":"can't be blank"}}}};</script>}
18
18
  assert_equal expected, output_buffer, "\n\n *** If you're running Ruby 1.8 and this test fails is is most likely due to 1.8's lack of insertion order persistence with Hashes ***\n"
19
19
  end
20
20
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: client_side_validations
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 3.0.4
5
+ version: 3.0.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - Brian Cardarella
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-21 00:00:00 -04:00
13
+ date: 2011-06-06 00:00:00 -04:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -19,9 +19,9 @@ dependencies:
19
19
  requirement: &id001 !ruby/object:Gem::Requirement
20
20
  none: false
21
21
  requirements:
22
- - - ~>
22
+ - - ">="
23
23
  - !ruby/object:Gem::Version
24
- version: 3.0.0
24
+ version: "0"
25
25
  type: :runtime
26
26
  version_requirements: *id001
27
27
  - !ruby/object:Gem::Dependency
@@ -69,18 +69,18 @@ dependencies:
69
69
  type: :development
70
70
  version_requirements: *id005
71
71
  - !ruby/object:Gem::Dependency
72
- name: mocha
72
+ name: mongo_mapper
73
73
  prerelease: false
74
74
  requirement: &id006 !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
77
- - - ">="
77
+ - - ~>
78
78
  - !ruby/object:Gem::Version
79
- version: "0"
79
+ version: 0.9.0
80
80
  type: :development
81
81
  version_requirements: *id006
82
82
  - !ruby/object:Gem::Dependency
83
- name: simple_form
83
+ name: mocha
84
84
  prerelease: false
85
85
  requirement: &id007 !ruby/object:Gem::Requirement
86
86
  none: false
@@ -91,7 +91,7 @@ dependencies:
91
91
  type: :development
92
92
  version_requirements: *id007
93
93
  - !ruby/object:Gem::Dependency
94
- name: formtastic
94
+ name: simple_form
95
95
  prerelease: false
96
96
  requirement: &id008 !ruby/object:Gem::Requirement
97
97
  none: false
@@ -102,29 +102,29 @@ dependencies:
102
102
  type: :development
103
103
  version_requirements: *id008
104
104
  - !ruby/object:Gem::Dependency
105
- name: sinatra
105
+ name: formtastic
106
106
  prerelease: false
107
107
  requirement: &id009 !ruby/object:Gem::Requirement
108
108
  none: false
109
109
  requirements:
110
- - - ~>
110
+ - - ">="
111
111
  - !ruby/object:Gem::Version
112
- version: "1.0"
112
+ version: "0"
113
113
  type: :development
114
114
  version_requirements: *id009
115
115
  - !ruby/object:Gem::Dependency
116
- name: shotgun
116
+ name: sinatra
117
117
  prerelease: false
118
118
  requirement: &id010 !ruby/object:Gem::Requirement
119
119
  none: false
120
120
  requirements:
121
- - - ">="
121
+ - - ~>
122
122
  - !ruby/object:Gem::Version
123
- version: "0"
123
+ version: "1.0"
124
124
  type: :development
125
125
  version_requirements: *id010
126
126
  - !ruby/object:Gem::Dependency
127
- name: thin
127
+ name: shotgun
128
128
  prerelease: false
129
129
  requirement: &id011 !ruby/object:Gem::Requirement
130
130
  none: false
@@ -135,7 +135,7 @@ dependencies:
135
135
  type: :development
136
136
  version_requirements: *id011
137
137
  - !ruby/object:Gem::Dependency
138
- name: json
138
+ name: thin
139
139
  prerelease: false
140
140
  requirement: &id012 !ruby/object:Gem::Requirement
141
141
  none: false
@@ -146,7 +146,7 @@ dependencies:
146
146
  type: :development
147
147
  version_requirements: *id012
148
148
  - !ruby/object:Gem::Dependency
149
- name: ruby-debug19
149
+ name: json
150
150
  prerelease: false
151
151
  requirement: &id013 !ruby/object:Gem::Requirement
152
152
  none: false
@@ -156,6 +156,17 @@ dependencies:
156
156
  version: "0"
157
157
  type: :development
158
158
  version_requirements: *id013
159
+ - !ruby/object:Gem::Dependency
160
+ name: ruby-debug19
161
+ prerelease: false
162
+ requirement: &id014 !ruby/object:Gem::Requirement
163
+ none: false
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: "0"
168
+ type: :development
169
+ version_requirements: *id014
159
170
  description: Client Side Validations
160
171
  email:
161
172
  - bcardarella@gmail.com
@@ -189,6 +200,9 @@ files:
189
200
  - lib/client_side_validations/core_ext/regexp.rb
190
201
  - lib/client_side_validations/formtastic.rb
191
202
  - lib/client_side_validations/middleware.rb
203
+ - lib/client_side_validations/mongo_mapper.rb
204
+ - lib/client_side_validations/mongo_mapper/middleware.rb
205
+ - lib/client_side_validations/mongo_mapper/uniqueness.rb
192
206
  - lib/client_side_validations/mongoid.rb
193
207
  - lib/client_side_validations/mongoid/middleware.rb
194
208
  - lib/client_side_validations/mongoid/uniqueness.rb
@@ -238,6 +252,7 @@ files:
238
252
  - test/javascript/public/test/callbacks/formPass.js
239
253
  - test/javascript/public/test/form_builders/validateForm.js
240
254
  - test/javascript/public/test/form_builders/validateFormtastic.js
255
+ - test/javascript/public/test/form_builders/validateNestedForm.js
241
256
  - test/javascript/public/test/form_builders/validateSimpleForm.js
242
257
  - test/javascript/public/test/settings.js
243
258
  - test/javascript/public/test/validateElement.js
@@ -258,6 +273,11 @@ files:
258
273
  - test/javascript/views/layout.erb
259
274
  - test/middleware/cases/helper.rb
260
275
  - test/middleware/cases/test_middleware.rb
276
+ - test/mongo_mapper/cases/helper.rb
277
+ - test/mongo_mapper/cases/test_base.rb
278
+ - test/mongo_mapper/cases/test_middleware.rb
279
+ - test/mongo_mapper/cases/test_uniqueness_validator.rb
280
+ - test/mongo_mapper/models/magazine.rb
261
281
  - test/mongoid/cases/helper.rb
262
282
  - test/mongoid/cases/test_base.rb
263
283
  - test/mongoid/cases/test_middleware.rb
@@ -289,8 +309,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
289
309
  version: "0"
290
310
  requirements: []
291
311
 
292
- rubyforge_project: client_side_validations
293
- rubygems_version: 1.5.3
312
+ rubyforge_project:
313
+ rubygems_version: 1.3.8
294
314
  signing_key:
295
315
  specification_version: 3
296
316
  summary: Client Side Validations
@@ -336,6 +356,7 @@ test_files:
336
356
  - test/javascript/public/test/callbacks/formPass.js
337
357
  - test/javascript/public/test/form_builders/validateForm.js
338
358
  - test/javascript/public/test/form_builders/validateFormtastic.js
359
+ - test/javascript/public/test/form_builders/validateNestedForm.js
339
360
  - test/javascript/public/test/form_builders/validateSimpleForm.js
340
361
  - test/javascript/public/test/settings.js
341
362
  - test/javascript/public/test/validateElement.js
@@ -356,6 +377,11 @@ test_files:
356
377
  - test/javascript/views/layout.erb
357
378
  - test/middleware/cases/helper.rb
358
379
  - test/middleware/cases/test_middleware.rb
380
+ - test/mongo_mapper/cases/helper.rb
381
+ - test/mongo_mapper/cases/test_base.rb
382
+ - test/mongo_mapper/cases/test_middleware.rb
383
+ - test/mongo_mapper/cases/test_uniqueness_validator.rb
384
+ - test/mongo_mapper/models/magazine.rb
359
385
  - test/mongoid/cases/helper.rb
360
386
  - test/mongoid/cases/test_base.rb
361
387
  - test/mongoid/cases/test_middleware.rb