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.
- data/VERSION +1 -1
- data/public/javascripts/components/grid_view.js +88 -27
- data/public/javascripts/components/input.js +7 -4
- data/public/javascripts/components/label.js +5 -1
- data/public/javascripts/components/list_item.js +14 -13
- data/public/javascripts/components/list_view.js +15 -1
- data/public/javascripts/components/popup.js +1 -1
- data/public/javascripts/components/textarea.js +14 -11
- data/public/javascripts/lib/attr.js +1 -1
- data/public/javascripts/lib/boot.js +2 -0
- data/public/javascripts/lib/console/console_commands.js +59 -9
- data/public/javascripts/lib/console/docs/files.html +25 -1
- data/public/javascripts/lib/console/docs/index.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/Object.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/_global_.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/rio.Application.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/rio.Attr.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/rio.Binding.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/rio.Component.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/rio.Cookie.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/rio.DelayedTask#initialize.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/rio.DelayedTask.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/rio.JsTemplate.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/rio.Juggernaut.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/rio.Model.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/rio.Page.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/rio.Utils.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/rio.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_attr.js.html +1 -1
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_boot.js.html +32 -30
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_event_delegator.js.html +66 -0
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_page.js.html +189 -179
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_protohack.js.html +258 -241
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_tag.js.html +10 -9
- data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_thread.js.html +128 -0
- data/public/javascripts/lib/event_delegator.js +58 -0
- data/public/javascripts/lib/page.js +11 -1
- data/public/javascripts/lib/protohack.js +17 -0
- data/public/javascripts/lib/rio.build +2 -0
- data/public/javascripts/lib/spec.js +19 -0
- data/public/javascripts/lib/tag.js +2 -1
- data/public/javascripts/lib/thread.js +120 -0
- data/public/javascripts/specs/lib/spec_spec.js +42 -0
- 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>
|
54
|
-
<span class='line'> 47</span>
|
55
|
-
<span class='line'> 48</span> </span><span class="PUNC">
|
56
|
-
<span class='line'> 49</span>
|
57
|
-
<span class='line'> 50</span>
|
58
|
-
<span class='line'> 51</span>
|
59
|
-
<span class='line'> 52</span>
|
60
|
-
<span class='line'> 53</span> </span
|
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"><</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"><</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"><</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));
|
@@ -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;
|
@@ -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
|
|