riojs 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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