riojs 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. data/VERSION +1 -1
  2. data/install/script/rio_server +11 -1
  3. data/lib/rio/rio_on_rails.rb +5 -1
  4. data/public/javascripts/components/grid_view.js +1 -11
  5. data/public/javascripts/components/image.js +1 -1
  6. data/public/javascripts/components/input.js +2 -0
  7. data/public/javascripts/lib/application.js +1 -1
  8. data/public/javascripts/lib/console/docs/files.html +1 -1
  9. data/public/javascripts/lib/console/docs/index.html +1 -1
  10. data/public/javascripts/lib/console/docs/symbols/Object.html +1 -1
  11. data/public/javascripts/lib/console/docs/symbols/_global_.html +1 -1
  12. data/public/javascripts/lib/console/docs/symbols/rio.Application.html +1 -1
  13. data/public/javascripts/lib/console/docs/symbols/rio.Attr.html +1 -1
  14. data/public/javascripts/lib/console/docs/symbols/rio.Binding.html +1 -1
  15. data/public/javascripts/lib/console/docs/symbols/rio.Component.html +1 -1
  16. data/public/javascripts/lib/console/docs/symbols/rio.Cookie.html +1 -1
  17. data/public/javascripts/lib/console/docs/symbols/rio.DelayedTask#initialize.html +1 -1
  18. data/public/javascripts/lib/console/docs/symbols/rio.DelayedTask.html +1 -1
  19. data/public/javascripts/lib/console/docs/symbols/rio.JsTemplate.html +1 -1
  20. data/public/javascripts/lib/console/docs/symbols/rio.Juggernaut.html +1 -1
  21. data/public/javascripts/lib/console/docs/symbols/rio.Model.html +1 -1
  22. data/public/javascripts/lib/console/docs/symbols/rio.Page.html +1 -1
  23. data/public/javascripts/lib/console/docs/symbols/rio.Utils.html +1 -1
  24. data/public/javascripts/lib/console/docs/symbols/rio.html +1 -1
  25. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_application.js.html +1 -1
  26. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_form.js.html +71 -46
  27. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_model.js.html +2 -2
  28. data/public/javascripts/lib/form.js +31 -6
  29. data/public/javascripts/lib/model.js +2 -2
  30. data/public/javascripts/specs/lib/application_spec.js +11 -2
  31. metadata +2 -2
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
@@ -36,7 +36,17 @@ end
36
36
 
37
37
  start_juggernaut
38
38
  start_autospec
39
- start_server
39
+
40
+ if (ARGV.to_s.match(/--no-mongrel/))
41
+ begin
42
+ loop do
43
+ end
44
+ rescue Interrupt
45
+ puts
46
+ end
47
+ else
48
+ start_server
49
+ end
40
50
 
41
51
  kill_juggernaut
42
52
 
@@ -233,7 +233,7 @@ module Rio
233
233
 
234
234
  raise "Index operation not authorized" unless self.index_authorized?(parsed_index_conditions)
235
235
 
236
- render :json => scope.find(:all, :conditions => parsed_index_conditions)
236
+ render :json => index_scope.find(:all, :conditions => parsed_index_conditions)
237
237
  end
238
238
 
239
239
  def index_conditions
@@ -362,6 +362,10 @@ module Rio
362
362
  model
363
363
  end
364
364
 
365
+ def index_scope
366
+ scope
367
+ end
368
+
365
369
  def create_scope
366
370
  scope
367
371
  end
@@ -12,7 +12,6 @@ rio.components.GridView = rio.Component.create(rio.components.ListView, "GridVie
12
12
  ["rowSelectedClassName", "gridItemSelected"]
13
13
  ],
14
14
  attrHtmls: ["header"],
15
- styles: ["headerColor", "headerBackgroundColor", "headerPadding", "headerFontWeight"],
16
15
  methods: {
17
16
  initialize: function($super, options) {
18
17
  $super(options);
@@ -50,16 +49,7 @@ rio.components.GridView = rio.Component.create(rio.components.ListView, "GridVie
50
49
  buildHeaderHtml: function() {
51
50
  return rio.Tag.tr(
52
51
  this.getColumns().map(function(column) {
53
- var header = rio.Tag.td(column.header);
54
- // header.applyStyle({
55
- // color: this.headerColor,
56
- // width: column.width,
57
- // backgroundColor: this.headerBackgroundColor,
58
- // padding: this.headerPadding,
59
- // fontWeight: this.headerFontWeight,
60
- // border: "1px solid #888"
61
- // });
62
- return header;
52
+ return rio.Tag.td(column.header);
63
53
  }.bind(this)),
64
54
  { className: "gridViewHeaderRow" }
65
55
  );
@@ -1,5 +1,5 @@
1
1
  rio.components.Image = new rio.Component.create(rio.components.Base, "Image", {
2
- attrAccessors: ["src", "title"],
2
+ attrAccessors: ["src", ["title", ""]],
3
3
  attrEvents: ["click"],
4
4
  methods: {
5
5
  buildHtml: function() {
@@ -52,6 +52,7 @@ rio.components.Input = rio.Component.create(rio.components.Box, "Input", {
52
52
 
53
53
 
54
54
  this.bind("value", function(value) {
55
+ if (inputHtml.value == value) { return; }
55
56
  inputHtml.value = value;
56
57
  });
57
58
 
@@ -102,6 +103,7 @@ rio.components.Input = rio.Component.create(rio.components.Box, "Input", {
102
103
  if(this.getBlurOnEnter()) {
103
104
  inputHtml.blur();
104
105
  }
106
+ this.setValue(inputHtml.value);
105
107
  this.fire('enter');
106
108
  }
107
109
  if (e.keyCode == Event.KEY_ESC && this.getRevertOnEscape()) {
@@ -236,7 +236,7 @@ rio.Application = {
236
236
  this.setCurrentPage(page);
237
237
  }
238
238
 
239
- page.applyHistoryEntry(remainingPath, pathParts);
239
+ page.applyHistoryEntry(remainingPath, pathParts, path);
240
240
  },
241
241
 
242
242
  /** @private */
@@ -573,7 +573,7 @@ ul.inheritsList
573
573
  </div>
574
574
  <div class="fineprint" style="clear:both">
575
575
 
576
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
576
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
577
577
  </div>
578
578
  </body>
579
579
  </html>
@@ -317,7 +317,7 @@ ul.inheritsList
317
317
  </div>
318
318
  <div class="fineprint" style="clear:both">
319
319
 
320
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
320
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
321
321
  </div>
322
322
  </body>
323
323
  </html>
@@ -285,7 +285,7 @@ ul.inheritsList
285
285
  <!-- ============================== footer ================================= -->
286
286
  <div class="fineprint" style="clear:both">
287
287
 
288
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
288
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
289
289
  </div>
290
290
  </body>
291
291
  </html>
@@ -407,7 +407,7 @@ ul.inheritsList
407
407
  <!-- ============================== footer ================================= -->
408
408
  <div class="fineprint" style="clear:both">
409
409
 
410
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
410
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:48 GMT-0500 (CDT)
411
411
  </div>
412
412
  </body>
413
413
  </html>
@@ -878,7 +878,7 @@ ul.inheritsList
878
878
  <!-- ============================== footer ================================= -->
879
879
  <div class="fineprint" style="clear:both">
880
880
 
881
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
881
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
882
882
  </div>
883
883
  </body>
884
884
  </html>
@@ -1069,7 +1069,7 @@ ul.inheritsList
1069
1069
  <!-- ============================== footer ================================= -->
1070
1070
  <div class="fineprint" style="clear:both">
1071
1071
 
1072
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
1072
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
1073
1073
  </div>
1074
1074
  </body>
1075
1075
  </html>
@@ -266,7 +266,7 @@ ul.inheritsList
266
266
  <!-- ============================== footer ================================= -->
267
267
  <div class="fineprint" style="clear:both">
268
268
 
269
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
269
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
270
270
  </div>
271
271
  </body>
272
272
  </html>
@@ -413,7 +413,7 @@ ul.inheritsList
413
413
  <!-- ============================== footer ================================= -->
414
414
  <div class="fineprint" style="clear:both">
415
415
 
416
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
416
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
417
417
  </div>
418
418
  </body>
419
419
  </html>
@@ -537,7 +537,7 @@ ul.inheritsList
537
537
  <!-- ============================== footer ================================= -->
538
538
  <div class="fineprint" style="clear:both">
539
539
 
540
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
540
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
541
541
  </div>
542
542
  </body>
543
543
  </html>
@@ -264,7 +264,7 @@ ul.inheritsList
264
264
  <!-- ============================== footer ================================= -->
265
265
  <div class="fineprint" style="clear:both">
266
266
 
267
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
267
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
268
268
  </div>
269
269
  </body>
270
270
  </html>
@@ -385,7 +385,7 @@ ul.inheritsList
385
385
  <!-- ============================== footer ================================= -->
386
386
  <div class="fineprint" style="clear:both">
387
387
 
388
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
388
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
389
389
  </div>
390
390
  </body>
391
391
  </html>
@@ -265,7 +265,7 @@ ul.inheritsList
265
265
  <!-- ============================== footer ================================= -->
266
266
  <div class="fineprint" style="clear:both">
267
267
 
268
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
268
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
269
269
  </div>
270
270
  </body>
271
271
  </html>
@@ -323,7 +323,7 @@ ul.inheritsList
323
323
  <!-- ============================== footer ================================= -->
324
324
  <div class="fineprint" style="clear:both">
325
325
 
326
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
326
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
327
327
  </div>
328
328
  </body>
329
329
  </html>
@@ -816,7 +816,7 @@ ul.inheritsList
816
816
  <!-- ============================== footer ================================= -->
817
817
  <div class="fineprint" style="clear:both">
818
818
 
819
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
819
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
820
820
  </div>
821
821
  </body>
822
822
  </html>
@@ -377,7 +377,7 @@ ul.inheritsList
377
377
  <!-- ============================== footer ================================= -->
378
378
  <div class="fineprint" style="clear:both">
379
379
 
380
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
380
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
381
381
  </div>
382
382
  </body>
383
383
  </html>
@@ -611,7 +611,7 @@ ul.inheritsList
611
611
  <!-- ============================== footer ================================= -->
612
612
  <div class="fineprint" style="clear:both">
613
613
 
614
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
614
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
615
615
  </div>
616
616
  </body>
617
617
  </html>
@@ -500,7 +500,7 @@ iiii jjjj
500
500
  <!-- ============================== footer ================================= -->
501
501
  <div class="fineprint" style="clear:both">
502
502
 
503
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Thu Feb 25 2010 16:45:42 GMT-0600 (CST)
503
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 12 2010 12:37:49 GMT-0500 (CDT)
504
504
  </div>
505
505
  </body>
506
506
  </html>
@@ -243,7 +243,7 @@
243
243
  <span class='line'>236</span> </span><span class="NAME">this.setCurrentPage</span><span class="PUNC">(</span><span class="NAME">page</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
244
244
  <span class='line'>237</span> </span><span class="PUNC">}</span><span class="WHIT">
245
245
  <span class='line'>238</span>
246
- <span class='line'>239</span> </span><span class="NAME">page.applyHistoryEntry</span><span class="PUNC">(</span><span class="NAME">remainingPath</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pathParts</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
246
+ <span class='line'>239</span> </span><span class="NAME">page.applyHistoryEntry</span><span class="PUNC">(</span><span class="NAME">remainingPath</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pathParts</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
247
247
  <span class='line'>240</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
248
248
  <span class='line'>241</span>
249
249
  <span class='line'>242</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
@@ -46,50 +46,75 @@
46
46
  <span class='line'> 39</span> </span><span class="NAME">validate</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
47
47
  <span class='line'> 40</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">valid</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
48
48
  <span class='line'> 41</span> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">attribute</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
49
- <span class='line'> 42</span> </span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">[</span><span class="NAME">attribute</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">validates</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">uniq</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">validate</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
50
- <span class='line'> 43</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">errorMessage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Object.isString</span><span class="PUNC">(</span><span class="NAME">validate</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT">
51
- <span class='line'> 44</span> </span><span class="NAME">rio.Validators</span><span class="PUNC">[</span><span class="NAME">validate</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">attribute</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT">
52
- <span class='line'> 45</span> </span><span class="NAME">validate</span><span class="PUNC">(</span><span class="NAME">this.values</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
53
- <span class='line'> 46</span> </span><span class="NAME">errorMessage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">errorMessage</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT">
54
- <span class='line'> 47</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">errorMessage.blank</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
55
- <span class='line'> 48</span> </span><span class="NAME">valid</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
56
- <span class='line'> 49</span> </span><span class="PUNC">}</span><span class="WHIT">
57
- <span class='line'> 50</span> </span><span class="NAME">this.errors</span><span class="PUNC">[</span><span class="NAME">attribute</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">update</span><span class="PUNC">(</span><span class="NAME">errorMessage</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
58
- <span class='line'> 51</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
59
- <span class='line'> 52</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
60
- <span class='line'> 53</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">valid</span><span class="PUNC">;</span><span class="WHIT">
61
- <span class='line'> 54</span> </span><span class="PUNC">}</span><span class="WHIT">
62
- <span class='line'> 55</span> </span><span class="PUNC">}</span><span class="WHIT">
63
- <span class='line'> 56</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
64
- <span class='line'> 57</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">form</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
65
- <span class='line'> 58</span>
66
- <span class='line'> 59</span>
67
- <span class='line'> 60</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">errorAttr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Attr.create</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
68
- <span class='line'> 61</span> </span><span class="NAME">attrAccessors</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">map</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">attribute</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">attribute</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
69
- <span class='line'> 62</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
70
- <span class='line'> 63</span> </span><span class="NAME">form.errors</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">errorAttr</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
71
- <span class='line'> 64</span> </span><span class="NAME">form.reset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
72
- <span class='line'> 65</span>
73
- <span class='line'> 66</span> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">attribute</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
74
- <span class='line'> 67</span> </span><span class="NAME">form</span><span class="PUNC">[</span><span class="NAME">attribute</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="NAME">form.validate.bind</span><span class="PUNC">(</span><span class="NAME">form</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
75
- <span class='line'> 68</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
76
- <span class='line'> 69</span>
77
- <span class='line'> 70</span>
78
- <span class='line'> 71</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">form</span><span class="PUNC">;</span><span class="WHIT">
79
- <span class='line'> 72</span> </span><span class="PUNC">}</span><span class="WHIT">
80
- <span class='line'> 73</span>
81
- <span class='line'> 74</span>
82
- <span class='line'> 75</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
83
- <span class='line'> 76</span> </span><span class="NAME">rio.Form.toString</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"Form"</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
84
- <span class='line'> 77</span>
85
- <span class='line'> 78</span> </span><span class="NAME">rio.Validators</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
86
- <span class='line'> 79</span> </span><span class="NAME">email</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
87
- <span class='line'> 80</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">value.validEmail</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">""</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"not a valid email address"</span><span class="PUNC">;</span><span class="WHIT">
88
- <span class='line'> 81</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
49
+ <span class='line'> 42</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">errorMessage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT">
50
+ <span class='line'> 43</span> </span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">[</span><span class="NAME">attribute</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">validates</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">uniq</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">validate</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
51
+ <span class='line'> 44</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">newErrorMessage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT">
52
+ <span class='line'> 45</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Object.isString</span><span class="PUNC">(</span><span class="NAME">validate</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
53
+ <span class='line'> 46</span> </span><span class="NAME">newErrorMessage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Validators</span><span class="PUNC">[</span><span class="NAME">validate</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">attribute</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
54
+ <span class='line'> 47</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Object.isArray</span><span class="PUNC">(</span><span class="NAME">validate</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
55
+ <span class='line'> 48</span> </span><span class="NAME">newErrorMessage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Validators</span><span class="PUNC">[</span><span class="NAME">validate</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">attribute</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">value</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">validate</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
56
+ <span class='line'> 49</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
57
+ <span class='line'> 50</span> </span><span class="NAME">newErrorMessage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">validate</span><span class="PUNC">(</span><span class="NAME">this.values</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
58
+ <span class='line'> 51</span> </span><span class="PUNC">}</span><span class="WHIT">
59
+ <span class='line'> 52</span>
60
+ <span class='line'> 53</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">newErrorMessage</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">blank</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
61
+ <span class='line'> 54</span> </span><span class="NAME">valid</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
62
+ <span class='line'> 55</span> </span><span class="NAME">errorMessage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">newErrorMessage</span><span class="PUNC">;</span><span class="WHIT">
63
+ <span class='line'> 56</span> </span><span class="PUNC">}</span><span class="WHIT">
64
+ <span class='line'> 57</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
65
+ <span class='line'> 58</span>
66
+ <span class='line'> 59</span> </span><span class="NAME">this.errors</span><span class="PUNC">[</span><span class="NAME">attribute</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">update</span><span class="PUNC">(</span><span class="NAME">errorMessage</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
67
+ <span class='line'> 60</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
68
+ <span class='line'> 61</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">valid</span><span class="PUNC">;</span><span class="WHIT">
69
+ <span class='line'> 62</span> </span><span class="PUNC">}</span><span class="WHIT">
70
+ <span class='line'> 63</span> </span><span class="PUNC">}</span><span class="WHIT">
71
+ <span class='line'> 64</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
72
+ <span class='line'> 65</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">form</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
73
+ <span class='line'> 66</span>
74
+ <span class='line'> 67</span>
75
+ <span class='line'> 68</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">errorAttr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Attr.create</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
76
+ <span class='line'> 69</span> </span><span class="NAME">attrAccessors</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">map</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">attribute</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">attribute</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
77
+ <span class='line'> 70</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
78
+ <span class='line'> 71</span> </span><span class="NAME">form.errors</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">errorAttr</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
79
+ <span class='line'> 72</span> </span><span class="NAME">form.reset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
80
+ <span class='line'> 73</span>
81
+ <span class='line'> 74</span> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">attribute</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
82
+ <span class='line'> 75</span> </span><span class="NAME">form</span><span class="PUNC">[</span><span class="NAME">attribute</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="NAME">form.validate.bind</span><span class="PUNC">(</span><span class="NAME">form</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
83
+ <span class='line'> 76</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
84
+ <span class='line'> 77</span>
85
+ <span class='line'> 78</span>
86
+ <span class='line'> 79</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">form</span><span class="PUNC">;</span><span class="WHIT">
87
+ <span class='line'> 80</span> </span><span class="PUNC">}</span><span class="WHIT">
88
+ <span class='line'> 81</span>
89
89
  <span class='line'> 82</span>
90
- <span class='line'> 83</span> </span><span class="NAME">presence</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
91
- <span class='line'> 84</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">value.blank</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">""</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"cannot be blank"</span><span class="PUNC">;</span><span class="WHIT">
92
- <span class='line'> 85</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
93
- <span class='line'> 86</span>
94
- <span class='line'> 87</span> </span><span class="NAME">toString</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"Validators"</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
95
- <span class='line'> 88</span> </span><span class="PUNC">}</span><span class="PUNC">;</span></pre></body></html>
90
+ <span class='line'> 83</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
91
+ <span class='line'> 84</span> </span><span class="NAME">rio.Form.toString</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"Form"</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
92
+ <span class='line'> 85</span>
93
+ <span class='line'> 86</span> </span><span class="NAME">rio.Validators</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
94
+ <span class='line'> 87</span> </span><span class="NAME">email</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
95
+ <span class='line'> 88</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">value.validEmail</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">""</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"not a valid email address"</span><span class="PUNC">;</span><span class="WHIT">
96
+ <span class='line'> 89</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
97
+ <span class='line'> 90</span>
98
+ <span class='line'> 91</span> </span><span class="NAME">presence</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
99
+ <span class='line'> 92</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">value.blank</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">""</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"cannot be blank"</span><span class="PUNC">;</span><span class="WHIT">
100
+ <span class='line'> 93</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
101
+ <span class='line'> 94</span>
102
+ <span class='line'> 95</span> </span><span class="NAME">length</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
103
+ <span class='line'> 96</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">blank</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">value.blank</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
104
+ <span class='line'> 97</span>
105
+ <span class='line'> 98</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.allowBlank</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">blank</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
106
+ <span class='line'> 99</span>
107
+ <span class='line'>100</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">blank</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.presence</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
108
+ <span class='line'>101</span>
109
+ <span class='line'>102</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.minimum</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">value.length</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">options.minimum</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
110
+ <span class='line'>103</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"must be at least "</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">options.minimum</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">" characters long"</span><span class="PUNC">;</span><span class="WHIT">
111
+ <span class='line'>104</span> </span><span class="PUNC">}</span><span class="WHIT">
112
+ <span class='line'>105</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.maximum</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">value.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">options.maximum</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
113
+ <span class='line'>106</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"can't be more than "</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">options.maximum</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">" characters long"</span><span class="PUNC">;</span><span class="WHIT">
114
+ <span class='line'>107</span> </span><span class="PUNC">}</span><span class="WHIT">
115
+ <span class='line'>108</span>
116
+ <span class='line'>109</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT">
117
+ <span class='line'>110</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
118
+ <span class='line'>111</span>
119
+ <span class='line'>112</span> </span><span class="NAME">toString</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"Validators"</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
120
+ <span class='line'>113</span> </span><span class="PUNC">}</span><span class="PUNC">;</span></pre></body></html>
@@ -408,10 +408,10 @@
408
408
  <span class='line'>401</span> </span><span class="NAME">onSuccess</span><span class="PUNC">(</span><span class="NAME">response</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
409
409
  <span class='line'>402</span> </span><span class="PUNC">}</span><span class="WHIT">
410
410
  <span class='line'>403</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
411
- <span class='line'>404</span> </span><span class="NAME">onFailure</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
411
+ <span class='line'>404</span> </span><span class="NAME">onFailure</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">response</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
412
412
  <span class='line'>405</span> </span><span class="COMM">// if (!entity.__destroying) {</span><span class="WHIT">
413
413
  <span class='line'>406</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">onFailure</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
414
- <span class='line'>407</span> </span><span class="NAME">onFailure</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
414
+ <span class='line'>407</span> </span><span class="NAME">onFailure</span><span class="PUNC">(</span><span class="NAME">response</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
415
415
  <span class='line'>408</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
416
416
  <span class='line'>409</span> </span><span class="NAME">rio.Application.fail</span><span class="PUNC">(</span><span class="STRN">"Failed creating, updating, or destroying."</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">model</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">":\n"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Object.toJSON</span><span class="PUNC">(</span><span class="NAME">parameters</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
417
417
  <span class='line'>410</span> </span><span class="PUNC">}</span><span class="WHIT">
@@ -39,16 +39,24 @@ rio.Form = {
39
39
  validate: function() {
40
40
  var valid = true;
41
41
  Object.keys(attributes).each(function(attribute) {
42
+ var errorMessage = "";
42
43
  (attributes[attribute].validates || []).uniq().each(function(validate) {
43
- var errorMessage = Object.isString(validate) ?
44
- rio.Validators[validate](this[attribute].value()) :
45
- validate(this.values());
46
- errorMessage = errorMessage || "";
47
- if (!errorMessage.blank()) {
44
+ var newErrorMessage = "";
45
+ if (Object.isString(validate)) {
46
+ newErrorMessage = rio.Validators[validate](this[attribute].value());
47
+ } else if (Object.isArray(validate)) {
48
+ newErrorMessage = rio.Validators[validate[0]](this[attribute].value(), validate[1]);
49
+ } else {
50
+ newErrorMessage = validate(this.values());
51
+ }
52
+
53
+ if (!(newErrorMessage || "").blank()) {
48
54
  valid = false;
55
+ errorMessage = newErrorMessage;
49
56
  }
50
- this.errors[attribute].update(errorMessage);
51
57
  }.bind(this));
58
+
59
+ this.errors[attribute].update(errorMessage);
52
60
  }.bind(this));
53
61
  return valid;
54
62
  }
@@ -84,5 +92,22 @@ rio.Validators = {
84
92
  return value && !value.blank() ? "" : "cannot be blank";
85
93
  },
86
94
 
95
+ length: function(value, options) {
96
+ var blank = value == undefined || value.blank();
97
+
98
+ if (options.allowBlank && blank) { return ""; }
99
+
100
+ if (blank) { return this.presence(value); }
101
+
102
+ if (options.minimum && value.length < options.minimum) {
103
+ return "must be at least " + options.minimum + " characters long";
104
+ }
105
+ if (options.maximum && value.length > options.maximum) {
106
+ return "can't be more than " + options.maximum + " characters long";
107
+ }
108
+
109
+ return "";
110
+ },
111
+
87
112
  toString: function() { return "Validators"; }
88
113
  };
@@ -401,10 +401,10 @@ rio.Model = {
401
401
  onSuccess(response);
402
402
  }
403
403
  },
404
- onFailure: function() {
404
+ onFailure: function(response) {
405
405
  // if (!entity.__destroying) {
406
406
  if (onFailure) {
407
- onFailure();
407
+ onFailure(response);
408
408
  } else {
409
409
  rio.Application.fail("Failed creating, updating, or destroying.", model + ":\n" + Object.toJSON(parameters));
410
410
  }
@@ -58,8 +58,8 @@ describe(rio.Application, {
58
58
  },
59
59
 
60
60
  "should reload the page on refresh": function() {
61
- /* You can't stub document.location.reload in firefox, so just skip the test */
62
- if (Prototype.Browser.Gecko) { return; }
61
+ /* You can't stub document.location.reload in firefox or chrome, so just skip the test */
62
+ if (Prototype.Browser.Gecko || navigator.userAgent.indexOf("Chrome") > 0) { return; }
63
63
 
64
64
  stub(document.location, "reload").shouldBeCalled();
65
65
  this.applicationInstance.refresh();
@@ -96,6 +96,7 @@ describe(rio.Application, {
96
96
  routes: {
97
97
  "other": "otherPage",
98
98
  ":something/hello": "helloPage",
99
+ "business/:businessId": "helloPage",
99
100
  "hello/*world": "worldPage",
100
101
  "": "myPage"
101
102
  },
@@ -215,6 +216,10 @@ describe(rio.Application, {
215
216
  this.applicationInstance.matchRoutePath("123/hello").shouldEqual(":something/hello");
216
217
  },
217
218
 
219
+ "should treat :part as wild cards separated by slashes at end of url": function() {
220
+ this.applicationInstance.matchRoutePath("business/123").shouldEqual("business/:businessId");
221
+ },
222
+
218
223
  "should treat *part as optional": function() {
219
224
  this.applicationInstance.matchRoutePath("hello/123").shouldEqual("hello/*world");
220
225
  this.applicationInstance.matchRoutePath("hello").shouldEqual("hello/*world");
@@ -259,6 +264,10 @@ describe(rio.Application, {
259
264
  this.applicationInstance.pathParts("123/hello").something.shouldEqual("123");
260
265
  },
261
266
 
267
+ "should return a hash from the wildcard name to its value in the path for path parts when wild card is at the end": function() {
268
+ this.applicationInstance.pathParts("business/123").businessId.shouldEqual("123");
269
+ },
270
+
262
271
  "should return a hash from the optional name to its value in the path for path parts": function() {
263
272
  this.applicationInstance.pathParts("hello/456").world.shouldEqual("456");
264
273
  },
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riojs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Tillery
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2010-02-25 00:00:00 -06:00
13
+ date: 2010-04-12 00:00:00 -05:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency