client_side_validations 3.0.4 → 3.0.5

Sign up to get free protection for your applications and to get access to all the features.
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