riojs 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/VERSION +1 -1
  2. data/public/javascripts/components/grid_view.js +88 -27
  3. data/public/javascripts/components/input.js +7 -4
  4. data/public/javascripts/components/label.js +5 -1
  5. data/public/javascripts/components/list_item.js +14 -13
  6. data/public/javascripts/components/list_view.js +15 -1
  7. data/public/javascripts/components/popup.js +1 -1
  8. data/public/javascripts/components/textarea.js +14 -11
  9. data/public/javascripts/lib/attr.js +1 -1
  10. data/public/javascripts/lib/boot.js +2 -0
  11. data/public/javascripts/lib/console/console_commands.js +59 -9
  12. data/public/javascripts/lib/console/docs/files.html +25 -1
  13. data/public/javascripts/lib/console/docs/index.html +1 -1
  14. data/public/javascripts/lib/console/docs/symbols/Object.html +1 -1
  15. data/public/javascripts/lib/console/docs/symbols/_global_.html +1 -1
  16. data/public/javascripts/lib/console/docs/symbols/rio.Application.html +1 -1
  17. data/public/javascripts/lib/console/docs/symbols/rio.Attr.html +1 -1
  18. data/public/javascripts/lib/console/docs/symbols/rio.Binding.html +1 -1
  19. data/public/javascripts/lib/console/docs/symbols/rio.Component.html +1 -1
  20. data/public/javascripts/lib/console/docs/symbols/rio.Cookie.html +1 -1
  21. data/public/javascripts/lib/console/docs/symbols/rio.DelayedTask#initialize.html +1 -1
  22. data/public/javascripts/lib/console/docs/symbols/rio.DelayedTask.html +1 -1
  23. data/public/javascripts/lib/console/docs/symbols/rio.JsTemplate.html +1 -1
  24. data/public/javascripts/lib/console/docs/symbols/rio.Juggernaut.html +1 -1
  25. data/public/javascripts/lib/console/docs/symbols/rio.Model.html +1 -1
  26. data/public/javascripts/lib/console/docs/symbols/rio.Page.html +1 -1
  27. data/public/javascripts/lib/console/docs/symbols/rio.Utils.html +1 -1
  28. data/public/javascripts/lib/console/docs/symbols/rio.html +1 -1
  29. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_attr.js.html +1 -1
  30. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_boot.js.html +32 -30
  31. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_event_delegator.js.html +66 -0
  32. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_page.js.html +189 -179
  33. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_protohack.js.html +258 -241
  34. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_tag.js.html +10 -9
  35. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_thread.js.html +128 -0
  36. data/public/javascripts/lib/event_delegator.js +58 -0
  37. data/public/javascripts/lib/page.js +11 -1
  38. data/public/javascripts/lib/protohack.js +17 -0
  39. data/public/javascripts/lib/rio.build +2 -0
  40. data/public/javascripts/lib/spec.js +19 -0
  41. data/public/javascripts/lib/tag.js +2 -1
  42. data/public/javascripts/lib/thread.js +120 -0
  43. data/public/javascripts/specs/lib/spec_spec.js +42 -0
  44. metadata +6 -2
@@ -49,12 +49,13 @@
49
49
  <span class='line'> 42</span> </span><span class="STRN">"iframe"</span><span class="PUNC">,</span><span class="WHIT">
50
50
  <span class='line'> 43</span> </span><span class="STRN">"link"</span><span class="PUNC">,</span><span class="WHIT">
51
51
  <span class='line'> 44</span> </span><span class="STRN">"script"</span><span class="PUNC">,</span><span class="WHIT">
52
- <span class='line'> 45</span> </span><span class="STRN">"select"</span><span class="WHIT">
53
- <span class='line'> 46</span> </span><span class="PUNC">]</span><span class="WHIT">
54
- <span class='line'> 47</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
55
- <span class='line'> 48</span> </span><span class="PUNC">(</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">
56
- <span class='line'> 49</span> </span><span class="NAME">rio.Tag.tags.each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
57
- <span class='line'> 50</span> </span><span class="NAME">rio.Tag</span><span class="PUNC">[</span><span class="NAME">tag</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Tag.build.curry</span><span class="PUNC">(</span><span class="NAME">tag</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="PUNC">;</span><span class="WHIT">
59
- <span class='line'> 52</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
60
- <span class='line'> 53</span> </span></pre></body></html>
52
+ <span class='line'> 45</span> </span><span class="STRN">"select"</span><span class="PUNC">,</span><span class="WHIT">
53
+ <span class='line'> 46</span> </span><span class="STRN">"sup"</span><span class="WHIT">
54
+ <span class='line'> 47</span> </span><span class="PUNC">]</span><span class="WHIT">
55
+ <span class='line'> 48</span> </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="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
57
+ <span class='line'> 50</span> </span><span class="NAME">rio.Tag.tags.each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">tag</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
58
+ <span class='line'> 51</span> </span><span class="NAME">rio.Tag</span><span class="PUNC">[</span><span class="NAME">tag</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Tag.build.curry</span><span class="PUNC">(</span><span class="NAME">tag</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="PUNC">;</span><span class="WHIT">
60
+ <span class='line'> 53</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
61
+ <span class='line'> 54</span> </span></pre></body></html>
@@ -0,0 +1,128 @@
1
+ <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
2
+ .KEYW {color: #933;}
3
+ .COMM {color: #bbb; font-style: italic;}
4
+ .NUMB {color: #393;}
5
+ .STRN {color: #393;}
6
+ .REGX {color: #339;}
7
+ .line {border-right: 1px dotted #666; color: #666; font-style: normal;}
8
+ </style></head><body><pre><span class='line'> 1</span> <span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">rio.Thread</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">rio.Thread.disable</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
9
+ <span class='line'> 2</span>
10
+ <span class='line'> 3</span> </span><span class="NAME">rio.Thread</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
11
+ <span class='line'> 4</span> </span><span class="NAME">jobs</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
12
+ <span class='line'> 5</span> </span><span class="NAME">groups</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
13
+ <span class='line'> 6</span> </span><span class="NAME">frequency</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="PUNC">,</span><span class="WHIT">
14
+ <span class='line'> 7</span> </span><span class="NAME">lastPulse</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
15
+ <span class='line'> 8</span> </span><span class="NAME">pulse</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">
16
+ <span class='line'> 9</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.jobs.length</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
17
+ <span class='line'> 10</span> </span><span class="NAME">this.lastPulse</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">Date</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
18
+ <span class='line'> 11</span> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
19
+ <span class='line'> 12</span> </span><span class="PUNC">}</span><span class="WHIT">
20
+ <span class='line'> 13</span>
21
+ <span class='line'> 14</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">start</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">Date</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
22
+ <span class='line'> 15</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">start</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">this.lastPulse</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">50</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
23
+ <span class='line'> 16</span> </span><span class="COMM">// rio.log("Thread.skipping_beat - " + (start - this.lastPulse));</span><span class="WHIT">
24
+ <span class='line'> 17</span> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
25
+ <span class='line'> 18</span> </span><span class="PUNC">}</span><span class="WHIT">
26
+ <span class='line'> 19</span>
27
+ <span class='line'> 20</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
28
+ <span class='line'> 21</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">count</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.frequency</span><span class="PUNC">;</span><span class="WHIT">
29
+ <span class='line'> 22</span>
30
+ <span class='line'> 23</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">job</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.jobs.shift</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
31
+ <span class='line'> 24</span> </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">job</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
32
+ <span class='line'> 25</span> </span><span class="NAME">job</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
33
+ <span class='line'> 26</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">count</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">job</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.jobs.shift</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </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"> </span><span class="NAME">job</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"> </span><span class="PUNC">}</span><span class="WHIT">
34
+ <span class='line'> 27</span> </span><span class="PUNC">}</span><span class="WHIT">
35
+ <span class='line'> 28</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
36
+ <span class='line'> 29</span> </span><span class="NAME">rio.warn</span><span class="PUNC">(</span><span class="STRN">"thread failed"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
37
+ <span class='line'> 30</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">finally</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
38
+ <span class='line'> 31</span> </span><span class="NAME">this.lastPulse</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">Date</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
39
+ <span class='line'> 32</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">delay</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.lastPulse</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">start</span><span class="PUNC">;</span><span class="WHIT">
40
+ <span class='line'> 33</span>
41
+ <span class='line'> 34</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.jobs.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
42
+ <span class='line'> 35</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">delay</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">100</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
43
+ <span class='line'> 36</span> </span><span class="NAME">this.frequency</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
44
+ <span class='line'> 37</span> </span><span class="COMM">// rio.log("Thread.frequency changed to: " + this.frequency);</span><span class="WHIT">
45
+ <span class='line'> 38</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">delay</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">30</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
46
+ <span class='line'> 39</span> </span><span class="NAME">this.frequency</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.frequency</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NUMB">1.5</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">ceil</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
47
+ <span class='line'> 40</span> </span><span class="COMM">// rio.log("Thread.frequency changed to: " + this.frequency);</span><span class="WHIT">
48
+ <span class='line'> 41</span> </span><span class="PUNC">}</span><span class="WHIT">
49
+ <span class='line'> 42</span> </span><span class="COMM">// rio.log("Thread.delay - " + delay);</span><span class="WHIT">
50
+ <span class='line'> 43</span> </span><span class="PUNC">}</span><span class="WHIT">
51
+ <span class='line'> 44</span> </span><span class="PUNC">}</span><span class="WHIT">
52
+ <span class='line'> 45</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
53
+ <span class='line'> 46</span>
54
+ <span class='line'> 47</span> </span><span class="NAME">fork</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">fcn</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">
55
+ <span class='line'> 48</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">groupName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options</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">group</span><span class="PUNC">;</span><span class="WHIT">
56
+ <span class='line'> 49</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">groupName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
57
+ <span class='line'> 50</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">group</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.groups</span><span class="PUNC">[</span><span class="NAME">groupName</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
58
+ <span class='line'> 51</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">group</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
59
+ <span class='line'> 52</span> </span><span class="NAME">group</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
60
+ <span class='line'> 53</span> </span><span class="NAME">suspended</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">options.suspended</span><span class="PUNC">,</span><span class="WHIT">
61
+ <span class='line'> 54</span> </span><span class="NAME">jobs</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="WHIT">
62
+ <span class='line'> 55</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
63
+ <span class='line'> 56</span> </span><span class="NAME">this.groups</span><span class="PUNC">[</span><span class="NAME">groupName</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">group</span><span class="PUNC">;</span><span class="WHIT">
64
+ <span class='line'> 57</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">
65
+ <span class='line'> 58</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.suspended</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
66
+ <span class='line'> 59</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">group.suspended</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">options.suspended</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
67
+ <span class='line'> 60</span> </span><span class="NAME">this.resume</span><span class="PUNC">(</span><span class="NAME">groupName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
68
+ <span class='line'> 61</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="PUNC">!</span><span class="NAME">group.suspended</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">options.suspended</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
69
+ <span class='line'> 62</span> </span><span class="NAME">group.suspended</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">
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="WHIT">
72
+ <span class='line'> 65</span> </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">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">group.suspended</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
76
+ <span class='line'> 69</span> </span><span class="COMM">// rio.log("Thread.fork job for group: " + groupName);</span><span class="WHIT">
77
+ <span class='line'> 70</span> </span><span class="NAME">this.jobs.push</span><span class="PUNC">(</span><span class="NAME">fcn</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
78
+ <span class='line'> 71</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">
79
+ <span class='line'> 72</span> </span><span class="NAME">group.jobs.push</span><span class="PUNC">(</span><span class="NAME">fcn</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
80
+ <span class='line'> 73</span> </span><span class="PUNC">}</span><span class="WHIT">
81
+ <span class='line'> 74</span>
82
+ <span class='line'> 75</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">
83
+ <span class='line'> 76</span> </span><span class="NAME">this.jobs.push</span><span class="PUNC">(</span><span class="NAME">fcn</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
84
+ <span class='line'> 77</span> </span><span class="PUNC">}</span><span class="WHIT">
85
+ <span class='line'> 78</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
86
+ <span class='line'> 79</span>
87
+ <span class='line'> 80</span> </span><span class="NAME">resume</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">groupName</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">
88
+ <span class='line'> 81</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
89
+ <span class='line'> 82</span> </span><span class="PUNC">(</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">
90
+ <span class='line'> 83</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">group</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.groups</span><span class="PUNC">[</span><span class="NAME">groupName</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
91
+ <span class='line'> 84</span> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">length</span><span class="PUNC">=</span><span class="NAME">group.jobs.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
92
+ <span class='line'> 85</span> </span><span class="NAME">this.jobs.push</span><span class="PUNC">(</span><span class="NAME">group.jobs</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
93
+ <span class='line'> 86</span> </span><span class="PUNC">}</span><span class="WHIT">
94
+ <span class='line'> 87</span> </span><span class="NAME">group.jobs.clear</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
95
+ <span class='line'> 88</span> </span><span class="NAME">group.suspended</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">
96
+ <span class='line'> 89</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="NAME">delay</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">options</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">delay</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
97
+ <span class='line'> 90</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
98
+ <span class='line'> 91</span> </span><span class="NAME">rio.warn</span><span class="PUNC">(</span><span class="STRN">"Thread.resume failed to resume group: "</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">groupName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
99
+ <span class='line'> 92</span> </span><span class="KEYW">throw</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
100
+ <span class='line'> 93</span> </span><span class="PUNC">}</span><span class="WHIT">
101
+ <span class='line'> 94</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
102
+ <span class='line'> 95</span>
103
+ <span class='line'> 96</span> </span><span class="NAME">suspend</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">groupName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
104
+ <span class='line'> 97</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">group</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.groups</span><span class="PUNC">[</span><span class="NAME">groupName</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
105
+ <span class='line'> 98</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">group</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
106
+ <span class='line'> 99</span> </span><span class="NAME">group</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
107
+ <span class='line'>100</span> </span><span class="NAME">jobs</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="WHIT">
108
+ <span class='line'>101</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
109
+ <span class='line'>102</span> </span><span class="NAME">this.groups</span><span class="PUNC">[</span><span class="NAME">groupName</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">group</span><span class="PUNC">;</span><span class="WHIT">
110
+ <span class='line'>103</span> </span><span class="PUNC">}</span><span class="WHIT">
111
+ <span class='line'>104</span> </span><span class="NAME">group.suspended</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">
112
+ <span class='line'>105</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
113
+ <span class='line'>106</span>
114
+ <span class='line'>107</span> </span><span class="NAME">enable</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">
115
+ <span class='line'>108</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.pulseIntervalId</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
116
+ <span class='line'>109</span> </span><span class="NAME">this.pulseIntervalId</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">setInterval</span><span class="PUNC">(</span><span class="NAME">rio.Thread.pulse.bind</span><span class="PUNC">(</span><span class="NAME">rio.Thread</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">100</span><span class="PUNC">)</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">disable</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">
120
+ <span class='line'>113</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.pulseIntervalId</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
121
+ <span class='line'>114</span> </span><span class="NAME">clearInterval</span><span class="PUNC">(</span><span class="NAME">this.pulseIntervalId</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
122
+ <span class='line'>115</span> </span><span class="PUNC">}</span><span class="WHIT">
123
+ <span class='line'>116</span> </span><span class="PUNC">}</span><span class="WHIT">
124
+ <span class='line'>117</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
125
+ <span class='line'>118</span>
126
+ <span class='line'>119</span> </span><span class="NAME">rio.Thread.enable</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
127
+ <span class='line'>120</span>
128
+ <span class='line'>121</span> </span></pre></body></html>
@@ -0,0 +1,58 @@
1
+ if (rio.EventDelegator) { rio.EventDelegator.disable(); }
2
+
3
+ rio.EventDelegator = {
4
+ observers: [],
5
+
6
+ processEvent: function(eventName, e) {
7
+ var body = Element.body();
8
+ var rioComponent;
9
+ var target = e.target;
10
+ while (target && target != body) {
11
+ rioComponent = target.rioComponent;
12
+ if (rioComponent) {
13
+ if (Object.isFunction(rioComponent[eventName])) {
14
+ rioComponent[eventName](Event.extend(e));
15
+ }
16
+ }
17
+ target = target.parentNode;
18
+ }
19
+ },
20
+
21
+ enable: function() {
22
+ this.observers = [
23
+ {
24
+ eventName: "click",
25
+ element: Element.body(),
26
+ observer: this.processEvent.bind(this, "click")
27
+ },
28
+ {
29
+ eventName: "dblclick",
30
+ element: Element.body(),
31
+ observer: this.processEvent.bind(this, "dblClick")
32
+ },
33
+ {
34
+ eventName: "keyup",
35
+ element: document,
36
+ observer: this.processEvent.bind(this, "keyUp")
37
+ }
38
+ ];
39
+
40
+ this.observers.each(function(o) {
41
+ Event.observe(o.element, o.eventName, o.observer);
42
+ });
43
+ },
44
+
45
+ disable: function() {
46
+ this.observers.each(function(o) {
47
+ try {
48
+ Event.stopObserving(o.element, o.eventName, o.observer);
49
+ } catch(e) {
50
+ // Don't let one failure ruin the party
51
+ }
52
+ });
53
+
54
+ this.observers.clear();
55
+ }
56
+
57
+
58
+ };
@@ -48,9 +48,19 @@ rio.Page = {
48
48
  },
49
49
 
50
50
  popup: function() {
51
+ if (this.__popup && this.__popupOpen) {
52
+ this.__popup.deactivate(true);
53
+ }
54
+
55
+ this.__popupOpen = true;
56
+
57
+
51
58
  if (!this.__popup) {
52
59
  this.__popup = new rio.components.Popup({
53
- content: this.html()
60
+ content: this.html(),
61
+ onDeactivate: function() {
62
+ this.__popupOpen = false;
63
+ }.bind(this)
54
64
  });
55
65
  }
56
66
  this.__popup.activate();
@@ -49,6 +49,21 @@ Object.extend(Element, {
49
49
  });
50
50
 
51
51
  Element.addMethods({
52
+
53
+ removeToInsertLater: function(elt) {
54
+ var parentNode = elt.parentNode;
55
+ var nextSibling = elt.nextSibling;
56
+ parentNode.removeChild(elt);
57
+
58
+ return function() {
59
+ if (nextSibling) {
60
+ parentNode.insertBefore(elt, nextSibling);
61
+ } else {
62
+ parentNode.appendChild(elt);
63
+ }
64
+ };
65
+ },
66
+
52
67
  totalHeight: function(elt) {
53
68
  return ["height", "margin-top", "margin-bottom", "padding-top", "padding-bottom", "border-top-width", "border-bottom-width"].inject(0, function(acc, prop) {
54
69
  return acc + (parseInt(elt.getStyle(prop), 0) || 0);
@@ -135,7 +150,9 @@ Element.addMethods({
135
150
  });
136
151
 
137
152
  if (rio.environment.logEventErrors) {
153
+ rio.eventCounts = {};
138
154
  Event.observe = Event.observe.wrap(function(proceed, element, eventName, handler) {
155
+ rio.eventCounts[eventName] = (rio.eventCounts[eventName] || 0) + 1;
139
156
  var newHandler = handler.wrap(function(proceed) {
140
157
  try {
141
158
  proceed.apply(proceed, $A(arguments).slice(1));
@@ -3,6 +3,8 @@ lib/protohack
3
3
  lib/cookie
4
4
  lib/file
5
5
  lib/yaml
6
+ lib/thread
7
+ lib/event_delegator
6
8
  lib/tag
7
9
  lib/key_map
8
10
  lib/clipboard
@@ -374,6 +374,7 @@ Object.extend(Boolean.prototype, rio.Assertions);
374
374
  Object.extend(Number.prototype, rio.Assertions);
375
375
  Object.extend(Function.prototype, rio.Assertions);
376
376
  Object.extend(Array.prototype, rio.Assertions);
377
+ Object.extend(Date.prototype, rio.Assertions);
377
378
 
378
379
  Object.extend(String.prototype, {
379
380
  shouldStartWith: function(val) {
@@ -457,6 +458,24 @@ Object.extend(Array.prototype, {
457
458
  }
458
459
  });
459
460
 
461
+ Object.extend(Date.prototype, {
462
+ shouldEqual: function(val) {
463
+ this.should(this.getTime() == val.getTime(), "expected " + this + " to equal " + val);
464
+ },
465
+
466
+ shouldBeBefore: function(val) {
467
+ this.should(this < val, "expected " + this + " to come before " + val);
468
+ },
469
+
470
+ shouldBeAfter: function(val) {
471
+ this.should(this > val, "expected " + this + " to come after " + val);
472
+ },
473
+
474
+ shouldBeBetween: function(val, val2) {
475
+ this.should(this > val && this < val2, "expected " + this + " to be between " + val + " and " + val2);
476
+ }
477
+ });
478
+
460
479
  rio.Stub = Class.create({
461
480
  initialize: function(object, method) {
462
481
  this.object = object;
@@ -42,7 +42,8 @@ rio.Tag = {
42
42
  "iframe",
43
43
  "link",
44
44
  "script",
45
- "select"
45
+ "select",
46
+ "sup"
46
47
  ]
47
48
  };
48
49
  (function() {
@@ -0,0 +1,120 @@
1
+ if (rio.Thread) { rio.Thread.disable(); }
2
+
3
+ rio.Thread = {
4
+ jobs: [],
5
+ groups: {},
6
+ frequency: 100,
7
+ lastPulse: new Date(),
8
+ pulse: function() {
9
+ if (this.jobs.length == 0) {
10
+ this.lastPulse = new Date();
11
+ return;
12
+ }
13
+
14
+ var start = new Date();
15
+ if (start - this.lastPulse < 50) {
16
+ // rio.log("Thread.skipping_beat - " + (start - this.lastPulse));
17
+ return;
18
+ }
19
+
20
+ try {
21
+ var count = this.frequency;
22
+
23
+ var job = this.jobs.shift();
24
+ while (job) {
25
+ job();
26
+ if (count--) { job = this.jobs.shift(); } else { job = false; }
27
+ }
28
+ } catch(e) {
29
+ rio.warn("thread failed");
30
+ } finally {
31
+ this.lastPulse = new Date();
32
+ var delay = this.lastPulse - start;
33
+
34
+ if (this.jobs.length > 0) {
35
+ if (delay > 100) {
36
+ this.frequency /= 2;
37
+ // rio.log("Thread.frequency changed to: " + this.frequency);
38
+ } else if (delay < 30) {
39
+ this.frequency = (this.frequency * 1.5).ceil();
40
+ // rio.log("Thread.frequency changed to: " + this.frequency);
41
+ }
42
+ // rio.log("Thread.delay - " + delay);
43
+ }
44
+ }
45
+ },
46
+
47
+ fork: function(fcn, options) {
48
+ var groupName = (options || {}).group;
49
+ if (groupName) {
50
+ var group = this.groups[groupName];
51
+ if (!group) {
52
+ group = {
53
+ suspended: options.suspended,
54
+ jobs: []
55
+ };
56
+ this.groups[groupName] = group;
57
+ } else {
58
+ if (options.suspended != undefined) {
59
+ if (group.suspended && !options.suspended) {
60
+ this.resume(groupName);
61
+ } else if (!group.suspended && options.suspended) {
62
+ group.suspended = true;
63
+ }
64
+ }
65
+ }
66
+
67
+
68
+ if (!group.suspended) {
69
+ // rio.log("Thread.fork job for group: " + groupName);
70
+ this.jobs.push(fcn);
71
+ } else {
72
+ group.jobs.push(fcn);
73
+ }
74
+
75
+ } else {
76
+ this.jobs.push(fcn);
77
+ }
78
+ },
79
+
80
+ resume: function(groupName, options) {
81
+ try {
82
+ (function() {
83
+ var group = this.groups[groupName];
84
+ for (var i=0, length=group.jobs.length; i<length; i++) {
85
+ this.jobs.push(group.jobs[i]);
86
+ }
87
+ group.jobs.clear();
88
+ group.suspended = false;
89
+ }.bind(this)).delay((options || {}).delay || 0);
90
+ } catch(e) {
91
+ rio.warn("Thread.resume failed to resume group: " + groupName);
92
+ throw(e);
93
+ }
94
+ },
95
+
96
+ suspend: function(groupName) {
97
+ var group = this.groups[groupName];
98
+ if (!group) {
99
+ group = {
100
+ jobs: []
101
+ };
102
+ this.groups[groupName] = group;
103
+ }
104
+ group.suspended = true;
105
+ },
106
+
107
+ enable: function() {
108
+ if (this.pulseIntervalId) { return; }
109
+ this.pulseIntervalId = setInterval(rio.Thread.pulse.bind(rio.Thread), 100);
110
+ },
111
+
112
+ disable: function() {
113
+ if (this.pulseIntervalId) {
114
+ clearInterval(this.pulseIntervalId);
115
+ }
116
+ }
117
+ };
118
+
119
+ rio.Thread.enable();
120
+
@@ -9,6 +9,7 @@ describe(rio.Spec, {
9
9
  { name: "Number", yes: 1, no: 2 },
10
10
  { name: "Function", yes: Prototype.emptyFunction, no: function() {} },
11
11
  { name: "Array", yes: [1, 2, 3], no: [3, 2, 1] },
12
+ { name: "Date", yes: new Date("10/12/1982"), no: new Date("6/1/1982") },
12
13
  { name: "Id", yes: new rio.Id(1), no: new rio.Id(2) }
13
14
  ].each(function(data) {
14
15
  specs["to " + data.name] = function() {
@@ -35,6 +36,7 @@ describe(rio.Spec, {
35
36
  { name: "Number", yes: 1, no: 2 },
36
37
  { name: "Function", yes: Prototype.emptyFunction, no: function() {} },
37
38
  { name: "Array", yes: [1, 2, 3], no: [3, 2, 1] },
39
+ { name: "Date", yes: new Date("10/12/1982"), no: new Date("6/1/1982") },
38
40
  { name: "Id", yes: new rio.Id(1), no: new rio.Id(2) }
39
41
  ].each(function(data) {
40
42
  specs["to " + data.name] = function() {
@@ -61,6 +63,7 @@ describe(rio.Spec, {
61
63
  { name: "Number", yes: 1, no: 0 },
62
64
  { name: "Function", yes: Prototype.emptyFunction },
63
65
  { name: "Array", yes: [1, 2, 3] },
66
+ { name: "Date", yes: new Date("10/12/1982") },
64
67
  { name: "Id", yes: new rio.Id(1) }
65
68
  ].each(function(data) {
66
69
  specs["to " + data.name] = function() {
@@ -90,6 +93,7 @@ describe(rio.Spec, {
90
93
  { name: "Number", yes: 0, no: 1 },
91
94
  { name: "Function", no: Prototype.emptyFunction },
92
95
  { name: "Array", no: [1, 2, 3] },
96
+ { name: "Date", no: new Date("10/12/1982") },
93
97
  { name: "Id", no: new rio.Id(1) }
94
98
  ].each(function(data) {
95
99
  specs["to " + data.name] = function() {
@@ -117,6 +121,7 @@ describe(rio.Spec, {
117
121
  { name: "Number", yes: 0, no: 1 },
118
122
  { name: "Function", no: Prototype.emptyFunction },
119
123
  { name: "Array", no: [1, 2, 3] },
124
+ { name: "Date", no: new Date("6/1/1982") },
120
125
  { name: "Id", no: new rio.Id(1) }
121
126
  ].each(function(data) {
122
127
  specs["to " + data.name] = function() {
@@ -203,6 +208,43 @@ describe(rio.Spec, {
203
208
 
204
209
  "shouldEqual to Id that considers Id objects equal to their underlying integer value": function() {
205
210
  new rio.Id(1).shouldEqual(1);
211
+ },
212
+
213
+ "shouldEqual to Date that considers Date objects equal to their underlying time": function() {
214
+ new Date("10/12/1982").shouldEqual(new Date("10/12/1982"));
215
+ },
216
+
217
+ "shouldBeBefore to Date": function() {
218
+ new Date("6/1/1982").shouldBeBefore(new Date("10/12/1982"));
219
+ var failed;
220
+ try {
221
+ new Date("10/12/1982").shouldBeBefore(new Date("6/1/1982"));
222
+ } catch(e) {
223
+ failed = true;
224
+ }
225
+ failed.shouldBeTrue();
226
+ },
227
+
228
+ "shouldBeAfter to Date": function() {
229
+ new Date("10/12/1982").shouldBeAfter(new Date("6/1/1982"));
230
+ var failed;
231
+ try {
232
+ new Date("6/1/1982").shouldBeAfter(new Date("10/12/1982"));
233
+ } catch(e) {
234
+ failed = true;
235
+ }
236
+ failed.shouldBeTrue();
237
+ },
238
+
239
+ "shouldBeBetween to Date": function() {
240
+ new Date("10/12/1982").shouldBeBetween(new Date("6/1/1982"), new Date("12/1/1982"));
241
+ var failed;
242
+ try {
243
+ new Date("6/1/1982").shouldBeBetween(new Date("10/12/1982"), new Date("12/1/1982"));
244
+ } catch(e) {
245
+ failed = true;
246
+ }
247
+ failed.shouldBeTrue();
206
248
  }
207
249
  },
208
250