validation_sync 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/generate_validations.js.erb +138 -0
  3. data/app/assets/javascripts/validation_sync.js +2 -1
  4. data/app/helpers/validation_sync_form_helper.rb +12 -71
  5. data/lib/validation_sync/engine.rb +2 -0
  6. data/lib/validation_sync/validation_builder.rb +139 -0
  7. data/lib/validation_sync/version.rb +1 -1
  8. data/lib/validation_sync.rb +1 -0
  9. data/spec/dummy/app/controllers/posts_controller.rb +1 -1
  10. data/spec/dummy/app/controllers/users_controller.rb +58 -0
  11. data/spec/dummy/app/models/post.rb +15 -4
  12. data/spec/dummy/app/models/user.rb +11 -0
  13. data/spec/dummy/app/views/posts/_form.html.erb +8 -0
  14. data/spec/dummy/app/views/posts/show.html.erb +5 -0
  15. data/spec/dummy/app/views/users/_form.html.erb +33 -0
  16. data/spec/dummy/app/views/users/edit.html.erb +6 -0
  17. data/spec/dummy/app/views/users/index.html.erb +29 -0
  18. data/spec/dummy/app/views/users/new.html.erb +5 -0
  19. data/spec/dummy/app/views/users/show.html.erb +14 -0
  20. data/spec/dummy/config/application.rb +1 -0
  21. data/spec/dummy/config/routes.rb +3 -0
  22. data/spec/dummy/db/development.sqlite3 +0 -0
  23. data/spec/dummy/db/migrate/20140211200846_create_users.rb +10 -0
  24. data/spec/dummy/db/migrate/20140212170448_add_order_to_posts.rb +5 -0
  25. data/spec/dummy/db/migrate/20140212173012_add_user_id_to_posts.rb +5 -0
  26. data/spec/dummy/db/schema.rb +10 -1
  27. data/spec/dummy/db/test.sqlite3 +0 -0
  28. data/spec/dummy/log/development.log +7256 -0
  29. data/spec/dummy/log/test.log +6037 -0
  30. data/spec/dummy/spec/factories/posts.rb +26 -0
  31. data/spec/dummy/spec/factories/users.rb +14 -0
  32. data/spec/dummy/spec/models/post_spec.rb +98 -0
  33. data/spec/dummy/spec/models/user_spec.rb +27 -0
  34. data/spec/dummy/tmp/cache/assets/development/sprockets/10c6f05e183df4466be1e0171868fbd3 +0 -0
  35. data/spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  36. data/spec/dummy/tmp/cache/assets/development/sprockets/254f7fcb30f60607963da8bbb320eb25 +0 -0
  37. data/spec/dummy/tmp/cache/assets/development/sprockets/256916ba749d0c14e36b55d4b382e9f5 +0 -0
  38. data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  39. data/spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  40. data/spec/dummy/tmp/cache/assets/development/sprockets/38ec44893aed52b20a20a929a47e0ad9 +0 -0
  41. data/spec/dummy/tmp/cache/assets/development/sprockets/4a4d6fda449d6b443e5b29ccb755c732 +0 -0
  42. data/spec/dummy/tmp/cache/assets/development/sprockets/513dd40b9b52367f54d64438a9d802b9 +0 -0
  43. data/spec/dummy/tmp/cache/assets/development/sprockets/56146675dbad13c72d3eb9ebd823dc11 +0 -0
  44. data/spec/dummy/tmp/cache/assets/development/sprockets/7aaf7da4e6ec4c84cc7948fb20c35064 +0 -0
  45. data/spec/dummy/tmp/cache/assets/development/sprockets/ba165ee56ce37f61865fe03d6503539b +0 -0
  46. data/spec/dummy/tmp/cache/assets/development/sprockets/bfaeb96080cc4d8ba400fbdcd1d4aab2 +0 -0
  47. data/spec/dummy/tmp/cache/assets/development/sprockets/c4f1b332263aa5004a8ac54ca9530510 +0 -0
  48. data/spec/dummy/tmp/cache/assets/development/sprockets/c63406c52c03bbb24922ded6ebb0e0a2 +0 -0
  49. data/spec/dummy/tmp/cache/assets/development/sprockets/cbc66bd36b3aa4411f9ce20da0fd37a0 +0 -0
  50. data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  51. data/spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  52. data/spec/dummy/tmp/cache/assets/development/sprockets/d7874cf8a5946ec3899e5bb627905ca5 +0 -0
  53. data/spec/dummy/tmp/cache/assets/development/sprockets/e1d4998592ddfea795aca82d742d9478 +0 -0
  54. data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  55. data/spec/dummy/tmp/cache/assets/test/sprockets/0f11e0b3e0ece93d6c047318f2e5497d +0 -0
  56. data/spec/dummy/tmp/cache/assets/test/sprockets/10c6f05e183df4466be1e0171868fbd3 +0 -0
  57. data/spec/dummy/tmp/cache/assets/test/sprockets/122e92d06837af295d6c941999a8d48f +0 -0
  58. data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  59. data/spec/dummy/tmp/cache/assets/test/sprockets/254f7fcb30f60607963da8bbb320eb25 +0 -0
  60. data/spec/dummy/tmp/cache/assets/test/sprockets/256916ba749d0c14e36b55d4b382e9f5 +0 -0
  61. data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  62. data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  63. data/spec/dummy/tmp/cache/assets/test/sprockets/4a4d6fda449d6b443e5b29ccb755c732 +0 -0
  64. data/spec/dummy/tmp/cache/assets/test/sprockets/56146675dbad13c72d3eb9ebd823dc11 +0 -0
  65. data/spec/dummy/tmp/cache/assets/test/sprockets/bfaeb96080cc4d8ba400fbdcd1d4aab2 +0 -0
  66. data/spec/dummy/tmp/cache/assets/test/sprockets/c4f1b332263aa5004a8ac54ca9530510 +0 -0
  67. data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  68. data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  69. data/spec/dummy/tmp/cache/assets/test/sprockets/d7874cf8a5946ec3899e5bb627905ca5 +0 -0
  70. data/spec/dummy/tmp/cache/assets/test/sprockets/e1d4998592ddfea795aca82d742d9478 +0 -0
  71. data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  72. data/spec/dummy/tmp/capybara/capybara-201402111733312899331645.html +39 -0
  73. data/spec/dummy/tmp/capybara/capybara-201402111742049902988712.html +39 -0
  74. data/spec/dummy/tmp/capybara/capybara-201402111743461497527818.html +39 -0
  75. data/spec/dummy/tmp/capybara/capybara-201402121034216891460553.html +39 -0
  76. data/spec/dummy/tmp/capybara/capybara-201402121100145511229652.html +39 -0
  77. data/spec/dummy/tmp/capybara/capybara-20140212110749239625833.html +39 -0
  78. data/spec/dummy/tmp/capybara/capybara-201402121110009350488348.html +39 -0
  79. data/spec/dummy/tmp/capybara/capybara-201402121242315707153414.html +54 -0
  80. data/spec/dummy/tmp/capybara/capybara-2014021212463939561980.html +47 -0
  81. data/spec/dummy/tmp/capybara/capybara-201402121308362867044001.html +47 -0
  82. data/spec/dummy/tmp/capybara/capybara-201402121309286432044699.html +47 -0
  83. data/spec/dummy/tmp/capybara/capybara-201402121506235794052148.html +39 -0
  84. data/spec/dummy/tmp/capybara/capybara-201402121507316558835315.html +27 -0
  85. data/spec/dummy/tmp/capybara/capybara-201402121512202956445364.html +39 -0
  86. data/spec/dummy/tmp/capybara/capybara-201402121517176338336364.html +39 -0
  87. data/spec/dummy/tmp/capybara/capybara-201402121518121290133083.html +39 -0
  88. data/spec/dummy/tmp/pids/server.pid +1 -0
  89. data/spec/features/form_interactions_spec.rb +153 -0
  90. data/spec/features/generate_validations_spec.rb +26 -0
  91. data/spec/helpers/validation_sync_form_helper_spec.rb +24 -0
  92. data/spec/lib/validation_builder_spec.rb +173 -0
  93. data/spec/spec_helper.rb +7 -1
  94. metadata +120 -11
  95. data/app/assets/javascripts/validations.js.coffee.erb +0 -51
  96. data/spec/dummy/app/assets/javascripts/posts.js +0 -2
  97. data/spec/dummy/app/assets/stylesheets/posts.css +0 -4
  98. data/spec/features/form_validation_spec.rb +0 -53
  99. data/spec/helpers/form_helper_spec.rb +0 -4
data/spec/spec_helper.rb CHANGED
@@ -4,6 +4,8 @@ require File.expand_path("../dummy/config/environment.rb", __FILE__)
4
4
  require 'rspec/rails'
5
5
  require 'rspec/autorun'
6
6
  require 'factory_girl_rails'
7
+ require 'capybara-webkit'
8
+ require 'coffee_script'
7
9
 
8
10
  Rails.backtrace_cleaner.remove_silencers!
9
11
 
@@ -23,4 +25,8 @@ RSpec.configure do |config|
23
25
 
24
26
  # Allow for short-hand Factory Girl syntax
25
27
  config.include FactoryGirl::Syntax::Methods
26
- end
28
+ end
29
+
30
+ # Pick up on factories in the dummy app
31
+ FactoryGirl.definition_file_paths = %W(spec/dummy/spec/factories)
32
+ FactoryGirl.reload
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validation_sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Hackley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-10 00:00:00.000000000 Z
11
+ date: 2014-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -159,34 +159,40 @@ extra_rdoc_files: []
159
159
  files:
160
160
  - MIT-LICENSE
161
161
  - Rakefile
162
+ - app/assets/javascripts/generate_validations.js.erb
162
163
  - app/assets/javascripts/jquery.validate.min.js
163
164
  - app/assets/javascripts/validation_sync.js
164
- - app/assets/javascripts/validations.js.coffee.erb
165
165
  - app/assets/stylesheets/validation_sync/application.css
166
166
  - app/helpers/validation_sync_form_helper.rb
167
167
  - config/routes.rb
168
168
  - lib/tasks/validation_sync_tasks.rake
169
169
  - lib/validation_sync.rb
170
170
  - lib/validation_sync/engine.rb
171
+ - lib/validation_sync/validation_builder.rb
171
172
  - lib/validation_sync/version.rb
172
173
  - spec/dummy/README.rdoc
173
174
  - spec/dummy/Rakefile
174
175
  - spec/dummy/app/assets/javascripts/application.js
175
- - spec/dummy/app/assets/javascripts/posts.js
176
176
  - spec/dummy/app/assets/stylesheets/application.css
177
- - spec/dummy/app/assets/stylesheets/posts.css
178
177
  - spec/dummy/app/assets/stylesheets/scaffold.css
179
178
  - spec/dummy/app/controllers/application_controller.rb
180
179
  - spec/dummy/app/controllers/posts_controller.rb
180
+ - spec/dummy/app/controllers/users_controller.rb
181
181
  - spec/dummy/app/helpers/application_helper.rb
182
182
  - spec/dummy/app/helpers/posts_helper.rb
183
183
  - spec/dummy/app/models/post.rb
184
+ - spec/dummy/app/models/user.rb
184
185
  - spec/dummy/app/views/layouts/application.html.erb
185
186
  - spec/dummy/app/views/posts/_form.html.erb
186
187
  - spec/dummy/app/views/posts/edit.html.erb
187
188
  - spec/dummy/app/views/posts/index.html.erb
188
189
  - spec/dummy/app/views/posts/new.html.erb
189
190
  - spec/dummy/app/views/posts/show.html.erb
191
+ - spec/dummy/app/views/users/_form.html.erb
192
+ - spec/dummy/app/views/users/edit.html.erb
193
+ - spec/dummy/app/views/users/index.html.erb
194
+ - spec/dummy/app/views/users/new.html.erb
195
+ - spec/dummy/app/views/users/show.html.erb
190
196
  - spec/dummy/bin/bundle
191
197
  - spec/dummy/bin/rails
192
198
  - spec/dummy/bin/rake
@@ -209,6 +215,9 @@ files:
209
215
  - spec/dummy/config/routes.rb
210
216
  - spec/dummy/db/development.sqlite3
211
217
  - spec/dummy/db/migrate/20140210065920_create_posts.rb
218
+ - spec/dummy/db/migrate/20140211200846_create_users.rb
219
+ - spec/dummy/db/migrate/20140212170448_add_order_to_posts.rb
220
+ - spec/dummy/db/migrate/20140212173012_add_user_id_to_posts.rb
212
221
  - spec/dummy/db/schema.rb
213
222
  - spec/dummy/db/test.sqlite3
214
223
  - spec/dummy/log/development.log
@@ -217,6 +226,10 @@ files:
217
226
  - spec/dummy/public/422.html
218
227
  - spec/dummy/public/500.html
219
228
  - spec/dummy/public/favicon.ico
229
+ - spec/dummy/spec/factories/posts.rb
230
+ - spec/dummy/spec/factories/users.rb
231
+ - spec/dummy/spec/models/post_spec.rb
232
+ - spec/dummy/spec/models/user_spec.rb
220
233
  - spec/dummy/tmp/cache/assets/development/sprockets/04f730b2979d2f24cffafefd80e430f0
221
234
  - spec/dummy/tmp/cache/assets/development/sprockets/0f11e0b3e0ece93d6c047318f2e5497d
222
235
  - spec/dummy/tmp/cache/assets/development/sprockets/0f53e3491015320ad54b7352dd6e9245
@@ -226,21 +239,31 @@ files:
226
239
  - spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705
227
240
  - spec/dummy/tmp/cache/assets/development/sprockets/1e8f75a6b5b33970fb8e397347caa0a1
228
241
  - spec/dummy/tmp/cache/assets/development/sprockets/24204f742af588c8166d3160b500d20f
242
+ - spec/dummy/tmp/cache/assets/development/sprockets/254f7fcb30f60607963da8bbb320eb25
243
+ - spec/dummy/tmp/cache/assets/development/sprockets/256916ba749d0c14e36b55d4b382e9f5
229
244
  - spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af
230
245
  - spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953
231
246
  - spec/dummy/tmp/cache/assets/development/sprockets/371bf96e99717688ed7313a0c53f4212
247
+ - spec/dummy/tmp/cache/assets/development/sprockets/38ec44893aed52b20a20a929a47e0ad9
232
248
  - spec/dummy/tmp/cache/assets/development/sprockets/416150dc3ac35079c94273cc46e90aa6
233
249
  - spec/dummy/tmp/cache/assets/development/sprockets/43b02dba04222f7470018fdda830925e
234
250
  - spec/dummy/tmp/cache/assets/development/sprockets/467cb2a85cb807b3c28bacd8f6147dfc
251
+ - spec/dummy/tmp/cache/assets/development/sprockets/4a4d6fda449d6b443e5b29ccb755c732
235
252
  - spec/dummy/tmp/cache/assets/development/sprockets/510da110ae528e2d22533be39ff696c5
253
+ - spec/dummy/tmp/cache/assets/development/sprockets/513dd40b9b52367f54d64438a9d802b9
236
254
  - spec/dummy/tmp/cache/assets/development/sprockets/5384ad85f52d3272dbc64d46ef3876a4
237
255
  - spec/dummy/tmp/cache/assets/development/sprockets/56146675dbad13c72d3eb9ebd823dc11
238
256
  - spec/dummy/tmp/cache/assets/development/sprockets/5957a00e12da95bda275e8c3565a0316
239
257
  - spec/dummy/tmp/cache/assets/development/sprockets/62d3fdf824fa141115db660a17ab94bc
240
258
  - spec/dummy/tmp/cache/assets/development/sprockets/6fc757c2c8329244ca95d6909865bbc2
241
259
  - spec/dummy/tmp/cache/assets/development/sprockets/76cec3171960b0a527249d215835fade
260
+ - spec/dummy/tmp/cache/assets/development/sprockets/7aaf7da4e6ec4c84cc7948fb20c35064
242
261
  - spec/dummy/tmp/cache/assets/development/sprockets/87283d82c809770d9da81fe4e72a2abe
243
262
  - spec/dummy/tmp/cache/assets/development/sprockets/97892dcc76bfd97e09ab26d3f7a6d522
263
+ - spec/dummy/tmp/cache/assets/development/sprockets/ba165ee56ce37f61865fe03d6503539b
264
+ - spec/dummy/tmp/cache/assets/development/sprockets/bfaeb96080cc4d8ba400fbdcd1d4aab2
265
+ - spec/dummy/tmp/cache/assets/development/sprockets/c4f1b332263aa5004a8ac54ca9530510
266
+ - spec/dummy/tmp/cache/assets/development/sprockets/c63406c52c03bbb24922ded6ebb0e0a2
244
267
  - spec/dummy/tmp/cache/assets/development/sprockets/c71eea08c37d8da406449ab45486b070
245
268
  - spec/dummy/tmp/cache/assets/development/sprockets/c85016e7bbd4f3adbb7635d01f85d39b
246
269
  - spec/dummy/tmp/cache/assets/development/sprockets/cbc66bd36b3aa4411f9ce20da0fd37a0
@@ -249,21 +272,53 @@ files:
249
272
  - spec/dummy/tmp/cache/assets/development/sprockets/d066c004d1fd26ae76a61303a7a18145
250
273
  - spec/dummy/tmp/cache/assets/development/sprockets/d5a2d5bfe451248efe5aa31d1c94575c
251
274
  - spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6
275
+ - spec/dummy/tmp/cache/assets/development/sprockets/d7874cf8a5946ec3899e5bb627905ca5
276
+ - spec/dummy/tmp/cache/assets/development/sprockets/e1d4998592ddfea795aca82d742d9478
252
277
  - spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
278
+ - spec/dummy/tmp/cache/assets/test/sprockets/0f11e0b3e0ece93d6c047318f2e5497d
279
+ - spec/dummy/tmp/cache/assets/test/sprockets/10c6f05e183df4466be1e0171868fbd3
280
+ - spec/dummy/tmp/cache/assets/test/sprockets/122e92d06837af295d6c941999a8d48f
253
281
  - spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
282
+ - spec/dummy/tmp/cache/assets/test/sprockets/254f7fcb30f60607963da8bbb320eb25
283
+ - spec/dummy/tmp/cache/assets/test/sprockets/256916ba749d0c14e36b55d4b382e9f5
254
284
  - spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
255
285
  - spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
256
286
  - spec/dummy/tmp/cache/assets/test/sprockets/371bf96e99717688ed7313a0c53f4212
257
287
  - spec/dummy/tmp/cache/assets/test/sprockets/416150dc3ac35079c94273cc46e90aa6
288
+ - spec/dummy/tmp/cache/assets/test/sprockets/4a4d6fda449d6b443e5b29ccb755c732
258
289
  - spec/dummy/tmp/cache/assets/test/sprockets/5384ad85f52d3272dbc64d46ef3876a4
290
+ - spec/dummy/tmp/cache/assets/test/sprockets/56146675dbad13c72d3eb9ebd823dc11
259
291
  - spec/dummy/tmp/cache/assets/test/sprockets/6fc757c2c8329244ca95d6909865bbc2
292
+ - spec/dummy/tmp/cache/assets/test/sprockets/bfaeb96080cc4d8ba400fbdcd1d4aab2
293
+ - spec/dummy/tmp/cache/assets/test/sprockets/c4f1b332263aa5004a8ac54ca9530510
260
294
  - spec/dummy/tmp/cache/assets/test/sprockets/c85016e7bbd4f3adbb7635d01f85d39b
261
295
  - spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
262
296
  - spec/dummy/tmp/cache/assets/test/sprockets/d066c004d1fd26ae76a61303a7a18145
263
297
  - spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
298
+ - spec/dummy/tmp/cache/assets/test/sprockets/d7874cf8a5946ec3899e5bb627905ca5
299
+ - spec/dummy/tmp/cache/assets/test/sprockets/e1d4998592ddfea795aca82d742d9478
264
300
  - spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
265
- - spec/features/form_validation_spec.rb
266
- - spec/helpers/form_helper_spec.rb
301
+ - spec/dummy/tmp/capybara/capybara-201402111733312899331645.html
302
+ - spec/dummy/tmp/capybara/capybara-201402111742049902988712.html
303
+ - spec/dummy/tmp/capybara/capybara-201402111743461497527818.html
304
+ - spec/dummy/tmp/capybara/capybara-201402121034216891460553.html
305
+ - spec/dummy/tmp/capybara/capybara-201402121100145511229652.html
306
+ - spec/dummy/tmp/capybara/capybara-20140212110749239625833.html
307
+ - spec/dummy/tmp/capybara/capybara-201402121110009350488348.html
308
+ - spec/dummy/tmp/capybara/capybara-201402121242315707153414.html
309
+ - spec/dummy/tmp/capybara/capybara-2014021212463939561980.html
310
+ - spec/dummy/tmp/capybara/capybara-201402121308362867044001.html
311
+ - spec/dummy/tmp/capybara/capybara-201402121309286432044699.html
312
+ - spec/dummy/tmp/capybara/capybara-201402121506235794052148.html
313
+ - spec/dummy/tmp/capybara/capybara-201402121507316558835315.html
314
+ - spec/dummy/tmp/capybara/capybara-201402121512202956445364.html
315
+ - spec/dummy/tmp/capybara/capybara-201402121517176338336364.html
316
+ - spec/dummy/tmp/capybara/capybara-201402121518121290133083.html
317
+ - spec/dummy/tmp/pids/server.pid
318
+ - spec/features/form_interactions_spec.rb
319
+ - spec/features/generate_validations_spec.rb
320
+ - spec/helpers/validation_sync_form_helper_spec.rb
321
+ - spec/lib/validation_builder_spec.rb
267
322
  - spec/spec_helper.rb
268
323
  homepage: ''
269
324
  licenses: []
@@ -290,21 +345,26 @@ specification_version: 4
290
345
  summary: Reuse your Rails model validations on the client-side.
291
346
  test_files:
292
347
  - spec/dummy/app/assets/javascripts/application.js
293
- - spec/dummy/app/assets/javascripts/posts.js
294
348
  - spec/dummy/app/assets/stylesheets/application.css
295
- - spec/dummy/app/assets/stylesheets/posts.css
296
349
  - spec/dummy/app/assets/stylesheets/scaffold.css
297
350
  - spec/dummy/app/controllers/application_controller.rb
298
351
  - spec/dummy/app/controllers/posts_controller.rb
352
+ - spec/dummy/app/controllers/users_controller.rb
299
353
  - spec/dummy/app/helpers/application_helper.rb
300
354
  - spec/dummy/app/helpers/posts_helper.rb
301
355
  - spec/dummy/app/models/post.rb
356
+ - spec/dummy/app/models/user.rb
302
357
  - spec/dummy/app/views/layouts/application.html.erb
303
358
  - spec/dummy/app/views/posts/_form.html.erb
304
359
  - spec/dummy/app/views/posts/edit.html.erb
305
360
  - spec/dummy/app/views/posts/index.html.erb
306
361
  - spec/dummy/app/views/posts/new.html.erb
307
362
  - spec/dummy/app/views/posts/show.html.erb
363
+ - spec/dummy/app/views/users/_form.html.erb
364
+ - spec/dummy/app/views/users/edit.html.erb
365
+ - spec/dummy/app/views/users/index.html.erb
366
+ - spec/dummy/app/views/users/new.html.erb
367
+ - spec/dummy/app/views/users/show.html.erb
308
368
  - spec/dummy/bin/bundle
309
369
  - spec/dummy/bin/rails
310
370
  - spec/dummy/bin/rake
@@ -327,6 +387,9 @@ test_files:
327
387
  - spec/dummy/config.ru
328
388
  - spec/dummy/db/development.sqlite3
329
389
  - spec/dummy/db/migrate/20140210065920_create_posts.rb
390
+ - spec/dummy/db/migrate/20140211200846_create_users.rb
391
+ - spec/dummy/db/migrate/20140212170448_add_order_to_posts.rb
392
+ - spec/dummy/db/migrate/20140212173012_add_user_id_to_posts.rb
330
393
  - spec/dummy/db/schema.rb
331
394
  - spec/dummy/db/test.sqlite3
332
395
  - spec/dummy/log/development.log
@@ -337,6 +400,10 @@ test_files:
337
400
  - spec/dummy/public/favicon.ico
338
401
  - spec/dummy/Rakefile
339
402
  - spec/dummy/README.rdoc
403
+ - spec/dummy/spec/factories/posts.rb
404
+ - spec/dummy/spec/factories/users.rb
405
+ - spec/dummy/spec/models/post_spec.rb
406
+ - spec/dummy/spec/models/user_spec.rb
340
407
  - spec/dummy/tmp/cache/assets/development/sprockets/04f730b2979d2f24cffafefd80e430f0
341
408
  - spec/dummy/tmp/cache/assets/development/sprockets/0f11e0b3e0ece93d6c047318f2e5497d
342
409
  - spec/dummy/tmp/cache/assets/development/sprockets/0f53e3491015320ad54b7352dd6e9245
@@ -346,21 +413,31 @@ test_files:
346
413
  - spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705
347
414
  - spec/dummy/tmp/cache/assets/development/sprockets/1e8f75a6b5b33970fb8e397347caa0a1
348
415
  - spec/dummy/tmp/cache/assets/development/sprockets/24204f742af588c8166d3160b500d20f
416
+ - spec/dummy/tmp/cache/assets/development/sprockets/254f7fcb30f60607963da8bbb320eb25
417
+ - spec/dummy/tmp/cache/assets/development/sprockets/256916ba749d0c14e36b55d4b382e9f5
349
418
  - spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af
350
419
  - spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953
351
420
  - spec/dummy/tmp/cache/assets/development/sprockets/371bf96e99717688ed7313a0c53f4212
421
+ - spec/dummy/tmp/cache/assets/development/sprockets/38ec44893aed52b20a20a929a47e0ad9
352
422
  - spec/dummy/tmp/cache/assets/development/sprockets/416150dc3ac35079c94273cc46e90aa6
353
423
  - spec/dummy/tmp/cache/assets/development/sprockets/43b02dba04222f7470018fdda830925e
354
424
  - spec/dummy/tmp/cache/assets/development/sprockets/467cb2a85cb807b3c28bacd8f6147dfc
425
+ - spec/dummy/tmp/cache/assets/development/sprockets/4a4d6fda449d6b443e5b29ccb755c732
355
426
  - spec/dummy/tmp/cache/assets/development/sprockets/510da110ae528e2d22533be39ff696c5
427
+ - spec/dummy/tmp/cache/assets/development/sprockets/513dd40b9b52367f54d64438a9d802b9
356
428
  - spec/dummy/tmp/cache/assets/development/sprockets/5384ad85f52d3272dbc64d46ef3876a4
357
429
  - spec/dummy/tmp/cache/assets/development/sprockets/56146675dbad13c72d3eb9ebd823dc11
358
430
  - spec/dummy/tmp/cache/assets/development/sprockets/5957a00e12da95bda275e8c3565a0316
359
431
  - spec/dummy/tmp/cache/assets/development/sprockets/62d3fdf824fa141115db660a17ab94bc
360
432
  - spec/dummy/tmp/cache/assets/development/sprockets/6fc757c2c8329244ca95d6909865bbc2
361
433
  - spec/dummy/tmp/cache/assets/development/sprockets/76cec3171960b0a527249d215835fade
434
+ - spec/dummy/tmp/cache/assets/development/sprockets/7aaf7da4e6ec4c84cc7948fb20c35064
362
435
  - spec/dummy/tmp/cache/assets/development/sprockets/87283d82c809770d9da81fe4e72a2abe
363
436
  - spec/dummy/tmp/cache/assets/development/sprockets/97892dcc76bfd97e09ab26d3f7a6d522
437
+ - spec/dummy/tmp/cache/assets/development/sprockets/ba165ee56ce37f61865fe03d6503539b
438
+ - spec/dummy/tmp/cache/assets/development/sprockets/bfaeb96080cc4d8ba400fbdcd1d4aab2
439
+ - spec/dummy/tmp/cache/assets/development/sprockets/c4f1b332263aa5004a8ac54ca9530510
440
+ - spec/dummy/tmp/cache/assets/development/sprockets/c63406c52c03bbb24922ded6ebb0e0a2
364
441
  - spec/dummy/tmp/cache/assets/development/sprockets/c71eea08c37d8da406449ab45486b070
365
442
  - spec/dummy/tmp/cache/assets/development/sprockets/c85016e7bbd4f3adbb7635d01f85d39b
366
443
  - spec/dummy/tmp/cache/assets/development/sprockets/cbc66bd36b3aa4411f9ce20da0fd37a0
@@ -369,19 +446,51 @@ test_files:
369
446
  - spec/dummy/tmp/cache/assets/development/sprockets/d066c004d1fd26ae76a61303a7a18145
370
447
  - spec/dummy/tmp/cache/assets/development/sprockets/d5a2d5bfe451248efe5aa31d1c94575c
371
448
  - spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6
449
+ - spec/dummy/tmp/cache/assets/development/sprockets/d7874cf8a5946ec3899e5bb627905ca5
450
+ - spec/dummy/tmp/cache/assets/development/sprockets/e1d4998592ddfea795aca82d742d9478
372
451
  - spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
452
+ - spec/dummy/tmp/cache/assets/test/sprockets/0f11e0b3e0ece93d6c047318f2e5497d
453
+ - spec/dummy/tmp/cache/assets/test/sprockets/10c6f05e183df4466be1e0171868fbd3
454
+ - spec/dummy/tmp/cache/assets/test/sprockets/122e92d06837af295d6c941999a8d48f
373
455
  - spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
456
+ - spec/dummy/tmp/cache/assets/test/sprockets/254f7fcb30f60607963da8bbb320eb25
457
+ - spec/dummy/tmp/cache/assets/test/sprockets/256916ba749d0c14e36b55d4b382e9f5
374
458
  - spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
375
459
  - spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
376
460
  - spec/dummy/tmp/cache/assets/test/sprockets/371bf96e99717688ed7313a0c53f4212
377
461
  - spec/dummy/tmp/cache/assets/test/sprockets/416150dc3ac35079c94273cc46e90aa6
462
+ - spec/dummy/tmp/cache/assets/test/sprockets/4a4d6fda449d6b443e5b29ccb755c732
378
463
  - spec/dummy/tmp/cache/assets/test/sprockets/5384ad85f52d3272dbc64d46ef3876a4
464
+ - spec/dummy/tmp/cache/assets/test/sprockets/56146675dbad13c72d3eb9ebd823dc11
379
465
  - spec/dummy/tmp/cache/assets/test/sprockets/6fc757c2c8329244ca95d6909865bbc2
466
+ - spec/dummy/tmp/cache/assets/test/sprockets/bfaeb96080cc4d8ba400fbdcd1d4aab2
467
+ - spec/dummy/tmp/cache/assets/test/sprockets/c4f1b332263aa5004a8ac54ca9530510
380
468
  - spec/dummy/tmp/cache/assets/test/sprockets/c85016e7bbd4f3adbb7635d01f85d39b
381
469
  - spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
382
470
  - spec/dummy/tmp/cache/assets/test/sprockets/d066c004d1fd26ae76a61303a7a18145
383
471
  - spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
472
+ - spec/dummy/tmp/cache/assets/test/sprockets/d7874cf8a5946ec3899e5bb627905ca5
473
+ - spec/dummy/tmp/cache/assets/test/sprockets/e1d4998592ddfea795aca82d742d9478
384
474
  - spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
385
- - spec/features/form_validation_spec.rb
386
- - spec/helpers/form_helper_spec.rb
475
+ - spec/dummy/tmp/capybara/capybara-201402111733312899331645.html
476
+ - spec/dummy/tmp/capybara/capybara-201402111742049902988712.html
477
+ - spec/dummy/tmp/capybara/capybara-201402111743461497527818.html
478
+ - spec/dummy/tmp/capybara/capybara-201402121034216891460553.html
479
+ - spec/dummy/tmp/capybara/capybara-201402121100145511229652.html
480
+ - spec/dummy/tmp/capybara/capybara-20140212110749239625833.html
481
+ - spec/dummy/tmp/capybara/capybara-201402121110009350488348.html
482
+ - spec/dummy/tmp/capybara/capybara-201402121242315707153414.html
483
+ - spec/dummy/tmp/capybara/capybara-2014021212463939561980.html
484
+ - spec/dummy/tmp/capybara/capybara-201402121308362867044001.html
485
+ - spec/dummy/tmp/capybara/capybara-201402121309286432044699.html
486
+ - spec/dummy/tmp/capybara/capybara-201402121506235794052148.html
487
+ - spec/dummy/tmp/capybara/capybara-201402121507316558835315.html
488
+ - spec/dummy/tmp/capybara/capybara-201402121512202956445364.html
489
+ - spec/dummy/tmp/capybara/capybara-201402121517176338336364.html
490
+ - spec/dummy/tmp/capybara/capybara-201402121518121290133083.html
491
+ - spec/dummy/tmp/pids/server.pid
492
+ - spec/features/form_interactions_spec.rb
493
+ - spec/features/generate_validations_spec.rb
494
+ - spec/helpers/validation_sync_form_helper_spec.rb
495
+ - spec/lib/validation_builder_spec.rb
387
496
  - spec/spec_helper.rb
@@ -1,51 +0,0 @@
1
- # bring in ValidationSyncFormHelper module
2
- <% environment.context_class.instance_eval { include ValidationSyncFormHelper } %>
3
-
4
- ValidationSync =
5
-
6
- init: ->
7
- <% find_all_models.each do |model| %>
8
- # validate if a relevant form is present
9
- ValidationSync.validate<%= model[:name].camelize %>() if $(".new_<%= model[:name] %>[data-sync-validations='true'], .edit_<%= model[:name] %>[data-sync-validations='true']").length
10
- <% end %>
11
-
12
-
13
-
14
- # build a validateModel() method for each ActiveRecord model
15
- <% find_all_models.each do |model| %>
16
-
17
- validate<%= model[:name].camelize %>: ->
18
-
19
- # trigger validation
20
- $(".new_<%= model[:name] %>[data-sync-validations='true'], .edit_<%= model[:name] %>[data-sync-validations='true']").validate
21
-
22
- # what attributes should we validate?
23
- rules:
24
-
25
- <% model[:attributes].each do |attr| %>
26
- "<%= model[:name] %>[<%= attr %>]":
27
- required: <%= check_model_validation(model[:name], attr, ActiveRecord::Validations::PresenceValidator) %>
28
- number: <%= check_model_validation(model[:name], attr, ActiveModel::Validations::NumericalityValidator) %>
29
- minlength: '<%= get_validation_attr(model[:name], attr, ActiveModel::Validations::LengthValidator, :minimum) %>'
30
-
31
- <% unless get_validation_attr(model[:name], attr, ActiveModel::Validations::LengthValidator, :maximum).nil? %>
32
- maxlength: '<%= get_validation_attr(model[:name], attr, ActiveModel::Validations::LengthValidator, :maximum) %>'
33
- <% end %>
34
- <% end %>
35
-
36
-
37
- # what error messages should show?
38
- messages:
39
-
40
- <% model[:attributes].each do |attr| %>
41
- "<%= model[:name] %>[<%= attr %>]":
42
- required: "<%= get_validation_message(model[:name], attr, ActiveRecord::Validations::PresenceValidator) %>"
43
- number: "<%= get_validation_message(model[:name], attr, ActiveModel::Validations::NumericalityValidator) %>"
44
- <% end %>
45
-
46
- <% end # find_all_models.each %>
47
-
48
-
49
-
50
- # Fire init() on ready (page:load for turbolinks)
51
- $(document).on('ready page:load', ValidationSync.init)
@@ -1,2 +0,0 @@
1
- // Place all the behaviors and hooks related to the matching controller here.
2
- // All this logic will automatically be available in application.js.
@@ -1,4 +0,0 @@
1
- /*
2
- Place all the styles related to the matching controller here.
3
- They will automatically be included in application.css.
4
- */
@@ -1,53 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Adding validation classes to form inputs" do
4
-
5
- # Required
6
-
7
- it "adds the 'required' class when an attribute is required" do
8
- # are we validating the model correctly?
9
- expect(Post.validators_on(:title).map(&:class)).to include ActiveRecord::Validations::PresenceValidator
10
-
11
- # are we adding the 'required' class?
12
- visit new_post_path
13
- within("#new_post") do
14
- expect(page).to have_css('input#post_title.required')
15
- end
16
- end
17
-
18
- it "doesn't add the 'required' class when an attribute is not required" do
19
- expect(Post.validators_on(:author_email).map(&:class)).not_to include ActiveRecord::Validations::PresenceValidator
20
-
21
- # are we adding the 'required' class?
22
- visit new_post_path
23
- within("#new_post") do
24
- expect(page).not_to have_css('input#post_author_email.required')
25
- end
26
- end
27
-
28
-
29
- # Numericality
30
-
31
- it "adds the 'number' class when a number is required" do
32
- # are we validating the model correctly?
33
- expect(Post.validators_on(:view_count).map(&:class)).to include ActiveModel::Validations::NumericalityValidator
34
-
35
- # are we adding the 'number' class?
36
- visit new_post_path
37
- within("#new_post") do
38
- expect(page).to have_css('input#post_view_count.number')
39
- end
40
- end
41
-
42
- it "doesn't add the 'number' class when a number is not required" do
43
- # are we validating the model correctly?
44
- expect(Post.validators_on(:author_email).map(&:class)).not_to include ActiveModel::Validations::NumericalityValidator
45
-
46
- # are we adding the 'number' class?
47
- visit new_post_path
48
- within("#new_post") do
49
- expect(page).not_to have_css('input#post_author_email.number')
50
- end
51
- end
52
-
53
- end
@@ -1,4 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe FormHelper do
4
- end