sprout 1.1.11.pre → 1.1.13.pre

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sprout might be problematic. Click here for more details.

Files changed (105) hide show
  1. data/Gemfile.lock +3 -4
  2. data/VERSION +1 -1
  3. data/doc/Dir.html +288 -0
  4. data/doc/Rake/Task.html +184 -0
  5. data/doc/Sprout.html +740 -0
  6. data/doc/Sprout/ArchiveUnpacker.html +1246 -0
  7. data/doc/Sprout/CommandLine.html +520 -0
  8. data/doc/Sprout/Concern.html +351 -0
  9. data/doc/Sprout/Errors.html +101 -0
  10. data/doc/Sprout/Errors/ArchiveUnpackerError.html +125 -0
  11. data/doc/Sprout/Errors/DestinationExistsError.html +133 -0
  12. data/doc/Sprout/Errors/DuplicateMemberError.html +132 -0
  13. data/doc/Sprout/Errors/ExecutableError.html +125 -0
  14. data/doc/Sprout/Errors/ExecutableRegistrationError.html +132 -0
  15. data/doc/Sprout/Errors/ExecutionError.html +121 -0
  16. data/doc/Sprout/Errors/GeneratorError.html +125 -0
  17. data/doc/Sprout/Errors/InvalidArgumentError.html +132 -0
  18. data/doc/Sprout/Errors/LoadError.html +121 -0
  19. data/doc/Sprout/Errors/MissingArgumentError.html +132 -0
  20. data/doc/Sprout/Errors/MissingExecutableError.html +132 -0
  21. data/doc/Sprout/Errors/MissingGeneratorError.html +132 -0
  22. data/doc/Sprout/Errors/MissingTemplateError.html +132 -0
  23. data/doc/Sprout/Errors/ProcessRunnerError.html +121 -0
  24. data/doc/Sprout/Errors/RemoteFileLoaderError.html +110 -0
  25. data/doc/Sprout/Errors/SproutError.html +114 -0
  26. data/doc/Sprout/Errors/UnknownArchiveType.html +122 -0
  27. data/doc/Sprout/Errors/UsageError.html +121 -0
  28. data/doc/Sprout/Errors/ValidationError.html +121 -0
  29. data/doc/Sprout/Errors/VersionRequirementNotMetError.html +121 -0
  30. data/doc/Sprout/Executable.html +169 -0
  31. data/doc/Sprout/Executable/Base.html +2813 -0
  32. data/doc/Sprout/Executable/Boolean.html +534 -0
  33. data/doc/Sprout/Executable/CollectionParam.html +483 -0
  34. data/doc/Sprout/Executable/FileParam.html +484 -0
  35. data/doc/Sprout/Executable/Files.html +292 -0
  36. data/doc/Sprout/Executable/Number.html +141 -0
  37. data/doc/Sprout/Executable/Param.html +2874 -0
  38. data/doc/Sprout/Executable/ParameterFactory.html +232 -0
  39. data/doc/Sprout/Executable/Path.html +223 -0
  40. data/doc/Sprout/Executable/Paths.html +253 -0
  41. data/doc/Sprout/Executable/Session.html +1513 -0
  42. data/doc/Sprout/Executable/StringParam.html +213 -0
  43. data/doc/Sprout/Executable/Strings.html +167 -0
  44. data/doc/Sprout/Executable/Url.html +160 -0
  45. data/doc/Sprout/Executable/Urls.html +170 -0
  46. data/doc/Sprout/FileTarget.html +1109 -0
  47. data/doc/Sprout/Generator.html +750 -0
  48. data/doc/Sprout/Generator/Base.html +1902 -0
  49. data/doc/Sprout/Generator/Command.html +690 -0
  50. data/doc/Sprout/Generator/DirectoryManifest.html +476 -0
  51. data/doc/Sprout/Generator/FileManifest.html +643 -0
  52. data/doc/Sprout/Generator/Manifest.html +377 -0
  53. data/doc/Sprout/Generator/TemplateManifest.html +194 -0
  54. data/doc/Sprout/GeneratorGenerator.html +1115 -0
  55. data/doc/Sprout/Library.html +1146 -0
  56. data/doc/Sprout/LibraryGenerator.html +331 -0
  57. data/doc/Sprout/OutputBuffer.html +445 -0
  58. data/doc/Sprout/Platform.html +714 -0
  59. data/doc/Sprout/ProcessRunner.html +1707 -0
  60. data/doc/Sprout/ProgressBar.html +366 -0
  61. data/doc/Sprout/ProgressBarImpl.html +2109 -0
  62. data/doc/Sprout/ProgressBarManager.html +424 -0
  63. data/doc/Sprout/ProgressBarOutputStream.html +406 -0
  64. data/doc/Sprout/RDocParser.html +211 -0
  65. data/doc/Sprout/RemoteFileLoader.html +172 -0
  66. data/doc/Sprout/RemoteFileTarget.html +679 -0
  67. data/doc/Sprout/ReversedProgressBar.html +184 -0
  68. data/doc/Sprout/RubyFeature.html +155 -0
  69. data/doc/Sprout/RubyFeature/ClassMethods.html +1065 -0
  70. data/doc/Sprout/RubyGenerator.html +786 -0
  71. data/doc/Sprout/Specification.html +767 -0
  72. data/doc/Sprout/System.html +191 -0
  73. data/doc/Sprout/System/BaseSystem.html +1660 -0
  74. data/doc/Sprout/System/JavaSystem.html +122 -0
  75. data/doc/Sprout/System/OSXSystem.html +335 -0
  76. data/doc/Sprout/System/ThreadMock.html +183 -0
  77. data/doc/Sprout/System/UnixSystem.html +584 -0
  78. data/doc/Sprout/System/VistaSystem.html +251 -0
  79. data/doc/Sprout/System/WinNixSystem.html +325 -0
  80. data/doc/Sprout/System/WinSystem.html +571 -0
  81. data/doc/Sprout/TestHelper.html +2165 -0
  82. data/doc/Sprout/ToolGenerator.html +953 -0
  83. data/doc/Sprout/VERSION.html +118 -0
  84. data/doc/String.html +290 -0
  85. data/doc/_index.html +820 -0
  86. data/doc/class_list.html +36 -0
  87. data/doc/css/common.css +1 -0
  88. data/doc/css/full_list.css +53 -0
  89. data/doc/css/style.css +310 -0
  90. data/doc/file.README.html +96 -0
  91. data/doc/file_list.html +41 -0
  92. data/doc/frames.html +13 -0
  93. data/doc/index.html +96 -0
  94. data/doc/js/app.js +202 -0
  95. data/doc/js/full_list.js +149 -0
  96. data/doc/js/jquery.js +154 -0
  97. data/doc/method_list.html +3603 -0
  98. data/doc/top-level-namespace.html +192 -0
  99. data/lib/sprout.rb +1 -0
  100. data/lib/sprout/executable/base.rb +2 -5
  101. data/lib/sprout/executable/param.rb +15 -8
  102. data/lib/sprout/executable/session.rb +1 -1
  103. data/lib/sprout/library.rb +44 -2
  104. data/test/unit/executable_test.rb +3 -5
  105. metadata +99 -3
@@ -0,0 +1,41 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html>
4
+ <head>
5
+ <meta name="Content-Type" content="text/html; charset=utf-8" />
6
+ <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
7
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
8
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
9
+ <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
10
+ <base id="base_target" target="_parent" />
11
+ </head>
12
+ <body>
13
+ <script type="text/javascript" charset="utf-8">
14
+ if (window.top.frames.main) {
15
+ document.getElementById('base_target').target = 'main';
16
+ document.body.className = 'frames';
17
+ }
18
+ </script>
19
+ <div id="content">
20
+ <h1 id="full_list_header">File List</h1>
21
+ <div id="nav">
22
+ <a target="_self" href="class_list.html">Classes</a> |
23
+ <a target="_self" href="method_list.html">Methods</a> |
24
+ <a target="_self" href="file_list.html">Files</a>
25
+ </div>
26
+ <div id="search">Search: <input type="text" /></div>
27
+
28
+ <ul id="full_list" class="files">
29
+
30
+
31
+ <li class="r1"><a href="index.html" title="README">README</a></li>
32
+
33
+
34
+ <li class="r2"><a href="index.html" title="README">README</a></li>
35
+
36
+
37
+ </ul>
38
+ </div>
39
+ </body>
40
+ </html>
41
+
data/doc/frames.html ADDED
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
7
+ <title>Sprouts v.1.0.34.pre</title>
8
+ </head>
9
+ <frameset cols="20%,*">
10
+ <frame name="list" src="class_list.html" />
11
+ <frame name="main" src="index.html" />
12
+ </frameset>
13
+ </html>
data/doc/index.html ADDED
@@ -0,0 +1,96 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta name="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>File: README</title>
7
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
8
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
9
+
10
+ <script type="text/javascript" charset="utf-8">
11
+ relpath = '';
12
+ if (relpath != '') relpath += '/';
13
+ </script>
14
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
15
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
16
+
17
+ </head>
18
+ <body>
19
+ <script type="text/javascript" charset="utf-8">
20
+ if (window.top.frames.main) document.body.className = 'frames';
21
+ </script>
22
+
23
+ <div id="header">
24
+ <div id="menu">
25
+
26
+ <a href="_index.html" title="Index">Index</a> &raquo;
27
+ <span class="title">File: README</span>
28
+
29
+
30
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
31
+ </div>
32
+
33
+ <div id="search">
34
+ <a id="class_list_link" href="#">Class List</a>
35
+ <a id="method_list_link" href="#">Method List</a>
36
+ <a id ="file_list_link" href="#">File List</a>
37
+ </div>
38
+
39
+ <div class="clear"></div>
40
+ </div>
41
+
42
+ <iframe id="search_frame"></iframe>
43
+
44
+ <div id="content"><div id='filecontents'><h1><span class="caps">IMPORTANT</span> <span class="caps">NOTE</span></h1>
45
+ <p>The mainline of this repository represents the next major release of Sprouts which involves a nearly complete rewrite.</p>
46
+ <p>To see, or edit the source code for the currently-released version (0.7.x), please check out the <a href="http://github.com/lukebayes/project-sprouts/tree/release">release branch</a>.</p>
47
+ <h1>Project Sprouts</h1>
48
+ <p>Project Sprouts is an open-source, cross-platform project generation and configuration tool for whatever technology you use. At the time of this writing, we have support for ActionScript 2, ActionScript 3, Flex and <span class="caps">AIR</span> projects.</p>
49
+ <p>Sprouts includes support for project and code templates, automated build scripts, remote managed libraries, and automatic installation of executable dependencies like runtimes, compilers and other utilities.</p>
50
+ <p>Sprouts works on OS X, Windows XP, Windows Vista and many flavors of *nix (including Solaris thanks to lots of patience from Armaghan Chaudhary).</p>
51
+ <h2>Installation</h2>
52
+ <ol>
53
+ <li><a href="http://www.ruby-lang.org/en/downloads/">Install Ruby</a> <em>(&gt;= v 1.9.2)</em></li>
54
+ <li><a href="http://rubyforge.org/frs/?group_id=126">Install RubyGems</a> <em>(&gt;= v 1.3.7)</em></li>
55
+ <li>Install the Sprout gem:</li>
56
+ </ol>
57
+ gem install sprout
58
+ <p>To get started with Sprouts in <strong>Flash</strong>, follow the directions provided by the <a href="http://github.com/lukebayes/sprout-flashsdk">Flash <span class="caps">SDK</span></a>.</p>
59
+ <h2>Some Links</h2>
60
+ <ul>
61
+ <li><a href="http://projectsprouts.org">Web Site</a></li>
62
+ <li><a href="http://projectsprouts.org/docs/1.1/frames.html">See the Documentation</a> (<a href="http://projectsprouts.org/docs/1.1">No Frames</a>)</li>
63
+ <li><a href="http://groups.google.com/group/projectsprouts">Meet the Community</a></li>
64
+ </ul>
65
+ <h1><span class="caps">MIT</span> License</h1>
66
+ <pre class="code">
67
+ Copyright (c) 2007-2011 Pattern Park
68
+
69
+ Permission is hereby granted, free of charge, to any person obtaining
70
+ a copy of this software and associated documentation files (the
71
+ &quot;Software&quot;), to deal in the Software without restriction, including
72
+ without limitation the rights to use, copy, modify, merge, publish,
73
+ distribute, sublicense, and/or sell copies of the Software, and to
74
+ permit persons to whom the Software is furnished to do so, subject to
75
+ the following conditions:
76
+
77
+ The above copyright notice and this permission notice shall be
78
+ included in all copies or substantial portions of the Software.
79
+
80
+ THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND,
81
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
82
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
83
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
84
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
85
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
86
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
87
+ </pre></div></div>
88
+
89
+ <div id="footer">
90
+ Generated on Fri Apr 29 18:33:04 2011 by
91
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
92
+ 0.6.3 (ruby-1.9.2).
93
+ </div>
94
+
95
+ </body>
96
+ </html>
data/doc/js/app.js ADDED
@@ -0,0 +1,202 @@
1
+ function createSourceLinks() {
2
+ $('.method_details_list .source_code').
3
+ before("<span class='showSource'>[<a href='#' class='toggleSource'>View source</a>]</span>");
4
+ $('.toggleSource').toggle(function() {
5
+ $(this).parent().next().slideDown(100);
6
+ $(this).text("Hide source");
7
+ },
8
+ function() {
9
+ $(this).parent().next().slideUp(100);
10
+ $(this).text("View source");
11
+ });
12
+ }
13
+
14
+ function createDefineLinks() {
15
+ var tHeight = 0;
16
+ $('.defines').after(" <a href='#' class='toggleDefines'>more...</a>");
17
+ $('.toggleDefines').toggle(function() {
18
+ tHeight = $(this).parent().prev().height();
19
+ $(this).prev().show();
20
+ $(this).parent().prev().height($(this).parent().height());
21
+ $(this).text("(less)");
22
+ },
23
+ function() {
24
+ $(this).prev().hide();
25
+ $(this).parent().prev().height(tHeight);
26
+ $(this).text("more...")
27
+ });
28
+ }
29
+
30
+ function createFullTreeLinks() {
31
+ var tHeight = 0;
32
+ $('.inheritanceTree').toggle(function() {
33
+ tHeight = $(this).parent().prev().height();
34
+ $(this).parent().toggleClass('showAll');
35
+ $(this).text("(hide)");
36
+ $(this).parent().prev().height($(this).parent().height());
37
+ },
38
+ function() {
39
+ $(this).parent().toggleClass('showAll');
40
+ $(this).parent().prev().height(tHeight);
41
+ $(this).text("show all")
42
+ });
43
+ }
44
+
45
+ function fixBoxInfoHeights() {
46
+ $('dl.box dd.r1, dl.box dd.r2').each(function() {
47
+ $(this).prev().height($(this).height());
48
+ });
49
+ }
50
+
51
+ function searchFrameLinks() {
52
+ $('#method_list_link').click(function() {
53
+ toggleSearchFrame(this, relpath + 'method_list.html');
54
+ });
55
+
56
+ $('#class_list_link').click(function() {
57
+ toggleSearchFrame(this, relpath + 'class_list.html');
58
+ });
59
+
60
+ $('#file_list_link').click(function() {
61
+ toggleSearchFrame(this, relpath + 'file_list.html');
62
+ });
63
+ }
64
+
65
+ function toggleSearchFrame(id, link) {
66
+ var frame = $('#search_frame');
67
+ $('#search a').removeClass('active').addClass('inactive');
68
+ if (frame.attr('src') == link && frame.css('display') != "none") {
69
+ frame.slideUp(100);
70
+ $('#search a').removeClass('active inactive');
71
+ }
72
+ else {
73
+ $(id).addClass('active').removeClass('inactive');
74
+ frame.attr('src', link).slideDown(100);
75
+ }
76
+ }
77
+
78
+ function linkSummaries() {
79
+ $('.summary_signature').click(function() {
80
+ document.location = $(this).find('a').attr('href');
81
+ });
82
+ }
83
+
84
+ function framesInit() {
85
+ if (window.top.frames.main) {
86
+ document.body.className = 'frames';
87
+ $('#menu .noframes a').attr('href', document.location);
88
+ $('html head title', window.parent.document).text($('html head title').text());
89
+ }
90
+ }
91
+
92
+ function keyboardShortcuts() {
93
+ if (window.top.frames.main) return;
94
+ $(document).keypress(function(evt) {
95
+ if (evt.altKey || evt.ctrlKey || evt.metaKey || evt.shiftKey) return;
96
+ if (evt.originalTarget.nodeName == "INPUT" ||
97
+ evt.originalTarget.nodeName == "TEXTAREA") return;
98
+ switch (evt.charCode) {
99
+ case 67: case 99: $('#class_list_link').click(); break; // 'c'
100
+ case 77: case 109: $('#method_list_link').click(); break; // 'm'
101
+ case 70: case 102: $('#file_list_link').click(); break; // 'f'
102
+ }
103
+ });
104
+ }
105
+
106
+ function summaryToggle() {
107
+ $('.summary_toggle').click(function() {
108
+ localStorage.summaryCollapsed = $(this).text();
109
+ $(this).text($(this).text() == "collapse" ? "expand" : "collapse");
110
+ var next = $(this).parent().parent().next();
111
+ if (next.hasClass('compact')) {
112
+ next.toggle();
113
+ next.next().toggle();
114
+ }
115
+ else if (next.hasClass('summary')) {
116
+ var list = $('<ul class="summary compact" />');
117
+ list.html(next.html());
118
+ list.find('.summary_desc, .note').remove();
119
+ list.find('a').each(function() {
120
+ $(this).html($(this).find('strong').html());
121
+ $(this).parent().html($(this)[0].outerHTML);
122
+ });
123
+ next.before(list);
124
+ next.toggle();
125
+ }
126
+ return false;
127
+ });
128
+ if (localStorage) {
129
+ if (localStorage.summaryCollapsed == "collapse") $('.summary_toggle').click();
130
+ else localStorage.summaryCollapsed = "expand";
131
+ }
132
+ }
133
+
134
+ function fixOutsideWorldLinks() {
135
+ $('a').each(function() {
136
+ if (window.location.host != this.host) this.target = '_parent';
137
+ });
138
+ }
139
+
140
+ function generateTOC() {
141
+ if ($('#filecontents').length == 0) return;
142
+ var _toc = $('<ol class="top"></ol>');
143
+ var show = false;
144
+ var toc = _toc;
145
+ var counter = 0;
146
+ var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
147
+ if ($('#filecontents h1').length > 1) tags.unshift('h1');
148
+ for (i in tags) { tags[i] = '#filecontents ' + tags[i] }
149
+ var lastTag = parseInt(tags[0][1]);
150
+ $(tags.join(', ')).each(function() {
151
+ if (this.id == "filecontents") return;
152
+ show = true;
153
+ var thisTag = parseInt(this.tagName[1]);
154
+ if (this.id.length == 0) {
155
+ var proposedId = $(this).text().replace(/[^a-z0-9:\.()=-]/ig, '_');
156
+ if ($('#' + proposedId).length > 0) proposedId += counter++;
157
+ this.id = proposedId;
158
+ }
159
+ if (thisTag > lastTag) {
160
+ for (var i = 0; i < thisTag - lastTag; i++) {
161
+ var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
162
+ }
163
+ }
164
+ if (thisTag < lastTag) {
165
+ for (var i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
166
+ }
167
+ toc.append('<li><a href="#' + this.id + '">' + $(this).text() + '</a></li>');
168
+ lastTag = thisTag;
169
+ });
170
+ if (!show) return;
171
+ html = '<div id="toc"><p class="title"><a class="hide_toc" href="#"><strong>Table of Contents</strong></a> <small>(<a href="#" class="float_toc">left</a>)</small></p></div>';
172
+ $('#content').prepend(html);
173
+ $('#toc').append(_toc);
174
+ $('#toc .hide_toc').toggle(function() {
175
+ $('#toc .top').slideUp('fast');
176
+ $('#toc').toggleClass('hidden');
177
+ $('#toc .title small').toggle();
178
+ }, function() {
179
+ $('#toc .top').slideDown('fast');
180
+ $('#toc').toggleClass('hidden');
181
+ $('#toc .title small').toggle();
182
+ });
183
+ $('#toc .float_toc').toggle(function() {
184
+ $(this).text('float');
185
+ $('#toc').toggleClass('nofloat');
186
+ }, function() {
187
+ $(this).text('left')
188
+ $('#toc').toggleClass('nofloat');
189
+ });
190
+ }
191
+
192
+ $(framesInit);
193
+ $(createSourceLinks);
194
+ $(createDefineLinks);
195
+ $(createFullTreeLinks);
196
+ $(fixBoxInfoHeights);
197
+ $(searchFrameLinks);
198
+ $(linkSummaries);
199
+ $(keyboardShortcuts);
200
+ $(summaryToggle);
201
+ $(fixOutsideWorldLinks);
202
+ $(generateTOC);
@@ -0,0 +1,149 @@
1
+ var inSearch = null;
2
+ var searchIndex = 0;
3
+ var searchCache = [];
4
+ var searchString = '';
5
+
6
+ function fullListSearch() {
7
+ // generate cache
8
+ searchCache = [];
9
+ $('#full_list li').each(function() {
10
+ var link = $(this).find('.object_link a');
11
+ searchCache.push({name:link.text(), node:$(this), link:link});
12
+ });
13
+
14
+ $('#search input').keyup(function() {
15
+ searchString = this.value.toLowerCase();
16
+ if (searchString == "") {
17
+ clearTimeout(inSearch);
18
+ inSearch = null;
19
+ $('#full_list, #content').removeClass('insearch');
20
+ $('#full_list li').removeClass('found').each(function() {
21
+
22
+ var link = $(this).find('.object_link a');
23
+ link.text(link.text());
24
+ });
25
+ if (clicked) {
26
+ clicked.parents('ul').each(function() {
27
+ $(this).removeClass('collapsed').prev().removeClass('collapsed');
28
+ });
29
+ }
30
+ highlight();
31
+ }
32
+ else {
33
+ if (inSearch) clearTimeout(inSearch);
34
+ searchIndex = 0;
35
+ lastRowClass = '';
36
+ $('#full_list, #content').addClass('insearch');
37
+ $('#noresults').text('');
38
+ searchItem();
39
+ }
40
+ });
41
+
42
+ $('#search input').focus();
43
+ $('#full_list').after("<div id='noresults'></div>")
44
+ }
45
+
46
+ var lastRowClass = '';
47
+ function searchItem() {
48
+ for (var i = 0; i < searchCache.length / 50; i++) {
49
+ var item = searchCache[searchIndex];
50
+ if (item.name.toLowerCase().indexOf(searchString) == -1) {
51
+ item.node.removeClass('found');
52
+ }
53
+ else {
54
+ item.node.css('padding-left', '10px').addClass('found');
55
+ item.node.removeClass(lastRowClass).addClass(lastRowClass == 'r1' ? 'r2' : 'r1');
56
+ lastRowClass = item.node.hasClass('r1') ? 'r1' : 'r2';
57
+ item.link.html(item.name.replace(new RegExp("(" +
58
+ searchString.replace(/([\/.*+?|()\[\]{}\\])/g, "\\$1") + ")", "ig"),
59
+ '<strong>$1</strong>'));
60
+ }
61
+
62
+ if (searchCache.length == searchIndex + 1) {
63
+ return searchDone();
64
+ }
65
+ else {
66
+ searchIndex++;
67
+ }
68
+ }
69
+ inSearch = setTimeout('searchItem()', 0);
70
+ }
71
+
72
+ function searchDone() {
73
+ highlight(true);
74
+ if ($('#full_list li:visible').size() == 0) {
75
+ $('#noresults').text('No results were found.').hide().fadeIn();
76
+ }
77
+ else {
78
+ $('#noresults').text('');
79
+ }
80
+ $('#content').removeClass('insearch');
81
+ clearTimeout(inSearch);
82
+ inSearch = null;
83
+ }
84
+
85
+ clicked = null;
86
+ function linkList() {
87
+ $('#full_list li, #full_list li a:last').click(function(evt) {
88
+ if ($(this).hasClass('toggle')) return true;
89
+ if (this.tagName.toLowerCase() == "li") {
90
+ var toggle = $(this).children('a.toggle');
91
+ if (toggle.size() > 0 && evt.pageX < toggle.offset().left) {
92
+ toggle.click();
93
+ return false;
94
+ }
95
+ }
96
+ if (clicked) clicked.removeClass('clicked');
97
+ var win = window.top.frames.main ? window.top.frames.main : window.parent;
98
+ if (this.tagName.toLowerCase() == "a") {
99
+ clicked = $(this).parent('li').addClass('clicked');
100
+ win.location = this.href;
101
+ }
102
+ else {
103
+ clicked = $(this).addClass('clicked');
104
+ win.location = $(this).find('a:last').attr('href');
105
+ }
106
+ return false;
107
+ });
108
+ }
109
+
110
+ function collapse() {
111
+ if (!$('#full_list').hasClass('class')) return;
112
+ $('#full_list.class a.toggle').click(function() {
113
+ $(this).parent().toggleClass('collapsed').next().toggleClass('collapsed');
114
+ highlight();
115
+ return false;
116
+ });
117
+ $('#full_list.class ul').each(function() {
118
+ $(this).addClass('collapsed').prev().addClass('collapsed');
119
+ });
120
+ $('#full_list.class').children().removeClass('collapsed');
121
+ highlight();
122
+ }
123
+
124
+ function highlight(no_padding) {
125
+ var n = 1;
126
+ $('#full_list li:visible').each(function() {
127
+ var next = n == 1 ? 2 : 1;
128
+ $(this).removeClass("r" + next).addClass("r" + n);
129
+ if (!no_padding && $('#full_list').hasClass('class')) {
130
+ $(this).css('padding-left', (10 + $(this).parents('ul').size() * 15) + 'px');
131
+ }
132
+ n = next;
133
+ });
134
+ }
135
+
136
+ function escapeShortcut() {
137
+ $(document).keydown(function(evt) {
138
+ if (evt.which == 27) {
139
+ $('#search_frame', window.top.document).slideUp(100);
140
+ $('#search a', window.top.document).removeClass('active inactive')
141
+ $(window.top).focus();
142
+ }
143
+ });
144
+ }
145
+
146
+ $(escapeShortcut);
147
+ $(fullListSearch);
148
+ $(linkList);
149
+ $(collapse);