riojs 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|