riojs 0.0.5 → 0.0.6

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 (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