juicer 1.0.13 → 1.0.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. data/GPATH +0 -0
  2. data/GRTAGS +0 -0
  3. data/GSYMS +0 -0
  4. data/GTAGS +0 -0
  5. data/Gemfile +4 -0
  6. data/Gemfile.lock +33 -0
  7. data/History.txt +3 -0
  8. data/Rakefile +96 -0
  9. data/VERSION +1 -1
  10. data/lib/juicer.rb +1 -1
  11. data/lib/juicer/asset/path.rb +10 -10
  12. data/lib/juicer/asset/path_resolver.rb +2 -2
  13. data/lib/juicer/binary.rb +1 -1
  14. data/lib/juicer/cache_buster.rb +1 -1
  15. data/lib/juicer/command/merge.rb +10 -8
  16. data/lib/juicer/datafy/datafy.rb +2 -2
  17. data/lib/juicer/dependency_resolver/css_dependency_resolver.rb +29 -29
  18. data/lib/juicer/dependency_resolver/javascript_dependency_resolver.rb +23 -23
  19. data/lib/juicer/image_embed.rb +24 -18
  20. data/lib/juicer/install/closure_compiler_installer.rb +1 -1
  21. data/lib/juicer/install/rhino_installer.rb +1 -1
  22. data/lib/juicer/install/yui_compressor_installer.rb +1 -1
  23. data/lib/juicer/merger/javascript_merger.rb +29 -29
  24. data/lib/juicer/merger/stylesheet_merger.rb +111 -111
  25. data/lib/juicer/minifyer/java_base.rb +8 -1
  26. data/test/bin/jslint-1.0.js +523 -0
  27. data/test/bin/jslint.js +523 -0
  28. data/test/bin/rhino1_7R1.zip +0 -0
  29. data/test/bin/rhino1_7R2-RC1.jar +0 -0
  30. data/test/bin/rhino1_7R2-RC1.zip +0 -0
  31. data/test/bin/rhino1_7R3.jar +0 -0
  32. data/test/bin/rhino1_7R3.zip +0 -0
  33. data/test/bin/yuicompressor +0 -0
  34. data/test/bin/yuicompressor-2.3.5.zip +0 -0
  35. data/test/bin/yuicompressor-2.4.2.jar +0 -0
  36. data/test/bin/yuicompressor-2.4.2.zip +0 -0
  37. data/test/data/Changelog.txt +10 -0
  38. data/test/data/a.css +3 -0
  39. data/test/data/a.js +5 -0
  40. data/test/data/a1.css +5 -0
  41. data/test/data/b.css +1 -0
  42. data/test/data/b.js +5 -0
  43. data/test/data/b1.css +5 -0
  44. data/test/data/b2.css +5 -0
  45. data/test/data/c1.css +3 -0
  46. data/test/data/css/2.gif +1 -0
  47. data/test/data/css/test.css +15 -0
  48. data/test/data/css/test2.css +1 -0
  49. data/test/data/css/test3.css +12 -0
  50. data/test/data/d1.css +3 -0
  51. data/test/data/images/1.png +1 -0
  52. data/test/data/my_app.js +2 -0
  53. data/test/data/not-ok.js +2 -0
  54. data/test/data/ok.js +3 -0
  55. data/test/data/path_test.css +5 -0
  56. data/test/data/path_test2.css +14 -0
  57. data/test/data/pkg/module/moda.js +2 -0
  58. data/test/data/pkg/module/modb.js +3 -0
  59. data/test/data/pkg/pkg.js +1 -0
  60. data/test/fixtures/rhino-download.html +42 -0
  61. data/test/fixtures/yui-download.html +375 -0
  62. data/test/test_helper.rb +10 -7
  63. data/test/unit/juicer/cache_buster_test.rb +1 -1
  64. data/test/unit/juicer/command/install_test.rb +2 -2
  65. data/test/unit/juicer/command/merge_test.rb +3 -3
  66. data/test/unit/juicer/command/verify_test.rb +2 -2
  67. data/test/unit/juicer/css_cache_buster_test.rb +2 -2
  68. data/test/unit/juicer/datafy_test.rb +1 -1
  69. data/test/unit/juicer/image_embed_test.rb +39 -6
  70. data/test/unit/juicer/jslint_test.rb +3 -3
  71. data/test/unit/juicer/merger/stylesheet_merger_test.rb +1 -1
  72. data/test/unit/juicer/minifyer/closure_compressor_test.rb +4 -4
  73. data/test/unit/juicer/minifyer/yui_compressor_test.rb +21 -4
  74. data/test/unit/juicer_test.rb +1 -1
  75. metadata +180 -154
Binary file
Binary file
Binary file
File without changes
@@ -0,0 +1,10 @@
1
+ 2008.02.09 | stb-base 1.29
2
+
3
+ FEATURE: Core | Bla bla bla bla bla
4
+ FEATURE: UI: | Bla bla bla bla bla
5
+
6
+
7
+ 2008.02.09 | stb-base 1.29
8
+
9
+ FEATURE: Core | Bla bla bla bla bla
10
+ FEATURE: UI: | Bla bla bla bla bla
@@ -0,0 +1,3 @@
1
+ @import 'b.css';
2
+
3
+ /* Dette er a.css */
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @depend b.js
3
+ */
4
+
5
+ /* Dette er a.js */
@@ -0,0 +1,5 @@
1
+ @import 'b1.css';
2
+ @import 'c1.css';
3
+ body {
4
+ width: 800px;
5
+ }
@@ -0,0 +1 @@
1
+ /* Dette er b.css */
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @depends a.js
3
+ */
4
+
5
+ /* Dette er b.css */
@@ -0,0 +1,5 @@
1
+ @import url('d1.css');
2
+
3
+ html {
4
+ background: red;
5
+ }
@@ -0,0 +1,5 @@
1
+ @import url("d1.css");
2
+
3
+ html {
4
+ background: red;
5
+ }
@@ -0,0 +1,3 @@
1
+ h1 {
2
+ font-size: 12px;
3
+ }
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,15 @@
1
+ body {
2
+ background: url(../images/1.png);
3
+ }
4
+
5
+ h1 {
6
+ background: url('../a1.css') 0 0 no-repeat;
7
+ }
8
+
9
+ h2 {
10
+ background: url("2.gif") no-repeat;
11
+ }
12
+
13
+ p {
14
+ background: url(2.gif) no-repeat;
15
+ }
@@ -0,0 +1 @@
1
+ body { background: url(/images/1.png); }
@@ -0,0 +1,12 @@
1
+ body {
2
+ background: url(http://assets1/images/1.png);
3
+ }
4
+
5
+ h1 {
6
+ background: url(http://assets2/css/2.gif);
7
+ background: url(http://assets3/a1.css) 0 0 no-repeat;
8
+ }
9
+
10
+ h2 {
11
+ background: url(http://assets2/css/2.gif) no-repeat;
12
+ }
@@ -0,0 +1,3 @@
1
+ h2 {
2
+ font-size: 10px;
3
+ }
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,2 @@
1
+ // @depend pkg
2
+ var myApp = pkg.a;
@@ -0,0 +1,2 @@
1
+ var a = 34
2
+ b = 78;
@@ -0,0 +1,3 @@
1
+ function hey() {
2
+ return "Hey";
3
+ }
@@ -0,0 +1,5 @@
1
+ @import 'css/test.css';
2
+
3
+ body {
4
+ background: url(css/2.gif) no-repeat;
5
+ }
@@ -0,0 +1,14 @@
1
+ body {
2
+ background: url(/images/1.png);
3
+ }
4
+
5
+ h1 {
6
+ background: url(/css/2.gif);
7
+ background: url(/a1.css) 0 0 no-repeat;
8
+ }
9
+
10
+ h2 {
11
+ background: url(/css/2.gif) no-repeat;
12
+ }
13
+
14
+ p { background: url(/a2.css); }
@@ -0,0 +1,2 @@
1
+ // @depend ../pkg.js
2
+ pkg.a = '';
@@ -0,0 +1,3 @@
1
+ // @depend ../pkg.js
2
+ // @depend moda.js
3
+ pkg.b = '';
@@ -0,0 +1 @@
1
+ var pkg = {};
@@ -0,0 +1,42 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2
+ <html>
3
+ <head>
4
+ <title>Index of /pub/mozilla.org/js</title>
5
+ </head>
6
+ <body>
7
+ <h1>Index of /pub/mozilla.org/js</h1>
8
+ <table><tr><th><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr><tr><th colspan="5"><hr></th></tr>
9
+
10
+ <tr><td valign="top"><img src="/icons/back.gif" alt="[DIR]"></td><td><a href="/pub/mozilla.org/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td></tr>
11
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="eclipse/">eclipse/</a></td><td align="right">23-Feb-2006 08:54 </td><td align="right"> - </td></tr>
12
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="js-1.7.0.tar.gz">js-1.7.0.tar.gz</a></td><td align="right">19-Oct-2007 12:15 </td><td align="right">1.1M</td></tr>
13
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="js-1.8.0-rc1.tar.gz">js-1.8.0-rc1.tar.gz</a></td><td align="right">09-Mar-2009 12:35 </td><td align="right">1.2M</td></tr>
14
+
15
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="js-1.60.tar.gz">js-1.60.tar.gz</a></td><td align="right">22-Dec-2006 07:57 </td><td align="right">1.0M</td></tr>
16
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="js185-1.0.0.tar.gz">js185-1.0.0.tar.gz</a></td><td align="right">31-Mar-2011 13:03 </td><td align="right">5.9M</td></tr>
17
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="older-packages/">older-packages/</a></td><td align="right">08-Jan-2007 06:54 </td><td align="right"> - </td></tr>
18
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="rhino1_5R5.zip">rhino1_5R5.zip</a></td><td align="right">25-Mar-2004 12:57 </td><td align="right">1.5M</td></tr>
19
+
20
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="rhino1_6R1.zip">rhino1_6R1.zip</a></td><td align="right">30-Nov-2004 19:13 </td><td align="right">1.7M</td></tr>
21
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="rhino1_6R2.zip">rhino1_6R2.zip</a></td><td align="right">19-Sep-2005 04:26 </td><td align="right">1.7M</td></tr>
22
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="rhino1_6R3.zip">rhino1_6R3.zip</a></td><td align="right">24-Jul-2006 05:37 </td><td align="right">1.7M</td></tr>
23
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="rhino1_6R4.zip">rhino1_6R4.zip</a></td><td align="right">09-Sep-2006 10:15 </td><td align="right">1.7M</td></tr>
24
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="rhino1_6R5.zip">rhino1_6R5.zip</a></td><td align="right">18-Nov-2006 13:24 </td><td align="right">1.7M</td></tr>
25
+
26
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="rhino1_6R6.zip">rhino1_6R6.zip</a></td><td align="right">26-Jul-2007 10:27 </td><td align="right">1.7M</td></tr>
27
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="rhino1_6R7.zip">rhino1_6R7.zip</a></td><td align="right">19-Aug-2007 19:26 </td><td align="right">1.7M</td></tr>
28
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="rhino1_7R1.zip">rhino1_7R1.zip</a></td><td align="right">06-Mar-2008 17:44 </td><td align="right">2.5M</td></tr>
29
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="rhino1_7R2.zip">rhino1_7R2.zip</a></td><td align="right">22-Mar-2009 11:49 </td><td align="right">2.9M</td></tr>
30
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="rhino1_7R3.zip">rhino1_7R3.zip</a></td><td align="right">09-May-2011 18:26 </td><td align="right">4.4M</td></tr>
31
+
32
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="rhino15R3.zip">rhino15R3.zip</a></td><td align="right">27-Jan-2002 16:59 </td><td align="right">1.2M</td></tr>
33
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="rhino15R4.zip">rhino15R4.zip</a></td><td align="right">11-Feb-2003 07:15 </td><td align="right">1.4M</td></tr>
34
+ <tr><td valign="top"><img src="/icons/compressed.gif" alt="[ ]"></td><td><a href="rhino15R41.zip">rhino15R41.zip</a></td><td align="right">21-Apr-2003 10:27 </td><td align="right">1.4M</td></tr>
35
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="tamarin/">tamarin/</a></td><td align="right">06-Apr-2009 13:32 </td><td align="right"> - </td></tr>
36
+
37
+ <tr><th colspan="5"><hr></th></tr>
38
+ </table>
39
+ <pre>
40
+ dm-ftp01.mozilla.org in the Pacific Time Zone (PST/PDT)
41
+ </pre>
42
+ </body></html>
@@ -0,0 +1,375 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Downloads: YUI Compressor</title>
6
+
7
+
8
+ <script>var _sf_startpt=(new Date()).getTime();</script>
9
+
10
+
11
+
12
+
13
+
14
+
15
+ <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Maven+Pro:400,700">
16
+
17
+ <link rel="stylesheet" href="http://yui.yahooapis.com/3.4.0/build/cssgrids/grids-min.css">
18
+
19
+
20
+
21
+
22
+ <link rel="stylesheet" href="/combo/css?main-min.css">
23
+
24
+
25
+
26
+
27
+ <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
28
+ <meta http-equiv="X-XRDS-Location" content="/xrds.xml">
29
+ <link rel="shortcut icon" type="image/png" href="/img/favicon.png">
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+ <script>var YUI_config={"filter":"min","groups":{"site":{"combine":true,"comboBase":"/combo/js?","root":"","modules":{"hoverable":{"path":"hoverable-min.js","requires":["event-hover","node-base","node-event-delegate"]},"search":{"path":"search-min.js","requires":["node-pluginhost"]},"twitter-feed":{"path":"twitter-feed-min.js","requires":["escape","node","jsonp","gallery-torelativetime"]},"api-filter":{"path":"apidocs/api-filter-min.js","requires":["autocomplete-base","autocomplete-highlighters","autocomplete-sources"]},"api-list":{"path":"apidocs/api-list-min.js","requires":["api-filter","api-search","event-key","node-focusmanager","tabview"]},"api-search":{"path":"apidocs/api-search-min.js","requires":["autocomplete-base","autocomplete-highlighters","autocomplete-sources","escape"]}}}}};</script>
38
+
39
+
40
+ <script src="http://yui.yahooapis.com/3.4.0/build/yui/yui-min.js"></script>
41
+
42
+
43
+ </head>
44
+ <body class="yui3-skin-sam">
45
+
46
+ <div id="doc">
47
+ <div id="hd" class="yui3-g"><header>
48
+ <div class="content">
49
+ <div class="yui3-u-3-4">
50
+ <a href="/" rel="home"><img class="logo" src="/img/yui-logo.png" alt="YUI Logo"></a>
51
+ </div>
52
+
53
+ <div class="yui3-u-1-4">
54
+ <ul id="userinfo">
55
+
56
+ <li><a href="/forum/ucp.php?mode=register">Register</a></li>
57
+ <li><a href="/forum/ucp.php?mode=login&amp;redirect=/download/yuicompressor/">Log in</a></li>
58
+
59
+ </ul>
60
+
61
+ <form id="main-search" class="search" action="http://search.yahoo.com/search"
62
+ method="get" role="search">
63
+
64
+ <input type="search" class="search-input" name="q"
65
+ aria-label="Search docs and APIs"
66
+ placeholder="Search docs and APIs">
67
+
68
+ <input type="hidden" name="vs" value="yuilibrary.com">
69
+ <input type="hidden" name="vs" value="yuiblog.com">
70
+ </form>
71
+
72
+ </div>
73
+
74
+ <div id="main-nav" class="yui3-u"><nav>
75
+ <ul class="nav hoverable-group">
76
+
77
+ <li class="nav-tab hoverable ">
78
+
79
+ <a href="/">Home</a>
80
+
81
+ </li>
82
+
83
+ <li class="nav-tab hoverable ">
84
+ <a href="/yui/quick-start/">Quick Start</a>
85
+
86
+ <ul class="nav-submenu">
87
+
88
+ <li class="nav-child ">
89
+
90
+ <a href="/yui/configurator/">Configurator</a>
91
+
92
+
93
+ </li>
94
+
95
+ <li class="nav-child ">
96
+
97
+ <a href="/download/yui3/">Download YUI 3</a>
98
+
99
+ </li>
100
+
101
+ </ul>
102
+
103
+ </li>
104
+
105
+ <li class="nav-tab hoverable ">
106
+ <a href="/yui/docs/">Documentation</a>
107
+
108
+
109
+ <ul class="nav-submenu">
110
+
111
+ <li class="nav-child ">
112
+
113
+ <a href="/yui/docs/guides/">User Guides</a>
114
+
115
+ </li>
116
+
117
+ <li class="nav-child ">
118
+
119
+ <a href="/yui/docs/examples/">Examples</a>
120
+
121
+ </li>
122
+
123
+ <li class="nav-child ">
124
+
125
+
126
+ <a href="/yui/docs/tutorials/">Tutorials</a>
127
+
128
+ </li>
129
+
130
+ <li class="nav-child ">
131
+
132
+ <a href="/yui/docs/api/">API Docs</a>
133
+
134
+ </li>
135
+
136
+ </ul>
137
+
138
+ </li>
139
+
140
+ <li class="nav-tab hoverable nav-break">
141
+
142
+ <a href="/community/">Community</a>
143
+
144
+ <ul class="nav-submenu">
145
+
146
+ <li class="nav-child ">
147
+
148
+ <a href="/gallery/">Gallery</a>
149
+
150
+ </li>
151
+
152
+ <li class="nav-child ">
153
+
154
+ <a href="http://yuiblog.com/" target="_blank" title="External link">Blog &#187;</a>
155
+
156
+
157
+ </li>
158
+
159
+ <li class="nav-child ">
160
+
161
+ <a href="/forum/">Forums</a>
162
+
163
+ </li>
164
+
165
+ <li class="nav-child ">
166
+
167
+ <a href="/theater/">YUI Theater</a>
168
+
169
+ </li>
170
+
171
+ <li class="nav-child ">
172
+
173
+
174
+ <a href="/projects/yui3/calendar/">Calendar</a>
175
+
176
+ </li>
177
+
178
+ </ul>
179
+
180
+ </li>
181
+
182
+ <li class="nav-tab hoverable ">
183
+ <a href="/contribute/">Contribute</a>
184
+
185
+ <ul class="nav-submenu">
186
+
187
+ <li class="nav-child ">
188
+
189
+
190
+ <a href="https://github.com/yui/" target="_blank" title="External link">YUI on GitHub &#187;</a>
191
+
192
+ </li>
193
+
194
+ <li class="nav-child ">
195
+
196
+ <a href="/projects/yui3/newticket/">File a Ticket</a>
197
+
198
+ </li>
199
+
200
+ <li class="nav-child ">
201
+
202
+ <a href="/projects/yui3/report/">View Tickets</a>
203
+
204
+
205
+ </li>
206
+
207
+ <li class="nav-child ">
208
+
209
+ <a href="/projects/yui3/dashboard/">Dashboard</a>
210
+
211
+ </li>
212
+
213
+ </ul>
214
+
215
+ </li>
216
+
217
+ <li class="nav-tab hoverable ">
218
+ <a href="/projects/">Other Projects</a>
219
+
220
+
221
+ <ul class="nav-submenu">
222
+
223
+ <li class="nav-child ">
224
+
225
+ <a href="/projects/yui2/">YUI 2</a>
226
+
227
+ </li>
228
+
229
+ <li class="nav-child ">
230
+
231
+ <a href="/projects/yuicompressor/">YUI Compressor</a>
232
+
233
+ </li>
234
+
235
+ <li class="nav-child ">
236
+
237
+
238
+ <a href="/projects/yuidoc/">YUI Doc</a>
239
+
240
+ </li>
241
+
242
+ <li class="nav-child ">
243
+
244
+ <a href="/projects/builder/">YUI Builder</a>
245
+
246
+ </li>
247
+
248
+ <li class="nav-child ">
249
+
250
+ <a href="/projects/phploader/">YUI PHP Loader</a>
251
+
252
+
253
+ </li>
254
+
255
+ <li class="nav-child ">
256
+
257
+ <a href="/projects/yuitest/">YUI Test</a>
258
+
259
+ </li>
260
+
261
+ <li class="nav-child ">
262
+
263
+ <a href="/projects/yuilibrary/">YUI Website</a>
264
+
265
+ </li>
266
+
267
+ </ul>
268
+
269
+
270
+ </li>
271
+
272
+ </ul>
273
+ </nav></div>
274
+
275
+ </div>
276
+ </header></div>
277
+
278
+ <div id="bd" class="clearfix yui3-g">
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+ <div class="yui3-u-1">
289
+ <div class="content">
290
+
291
+
292
+
293
+
294
+
295
+
296
+ <div id="downloads">
297
+ <h1>Available YUI Downloads</h1>
298
+
299
+ <div id="dl_list" class="yui3-g">
300
+ <div class="yui3-u-2-3">
301
+ <div class="item">
302
+ <img class="logo-small" src="/img/yui-logo-small.png"><a href="/download/yuicompressor" class="">Downloads: YUI Compressor</a><br>
303
+ <p>YUI Compressor is an open source tool that supports the compression of both JavaScript and CSS files. The JavaScript compression removes comments and white-spaces as well as obfuscates local variables using the smallest possible variable name. CSS compression is done using a regular-expression-based CSS minifier.
304
+
305
+ </p>
306
+ </div>
307
+
308
+ <ul>
309
+
310
+ <li><a href="http://yui.zenfs.com/releases/yuicompressor/yuicompressor-2.4.2.zip" title="2.4.2 : 2011.04.15 : 85670711b55124240a087e0b552304fa">Version 2.4.2</a> <em>2011.04.15</em> <strong title="MD5: 85670711b55124240a087e0b552304fa">85670711b</strong></li>
311
+
312
+ <li><a href="http://yui.zenfs.com/releases/yuicompressor/yuicompressor-2.4.1.zip" title="2.4.1 : 2009.06.10 : 2a526a9aedfe2affceed1e1c3f9c0579">Version 2.4.1</a> <em>2009.06.10</em> <strong title="MD5: 2a526a9aedfe2affceed1e1c3f9c0579">2a526a9ae</strong></li>
313
+
314
+
315
+ </ul>
316
+ </div>
317
+ </div>
318
+
319
+ <a href="/download">Back to list</a>
320
+ </div>
321
+
322
+ </div>
323
+ </div>
324
+
325
+
326
+ </div>
327
+
328
+ <div id="ft"><footer>
329
+ <p class="copyright">
330
+ &copy; 2006-2011 Yahoo! Inc. All rights reserved.<br>
331
+ All code on this site is licensed under the <a href="/license/">BSD License</a> unless stated otherwise.<br>
332
+ <span class="links"><a href="/about/">About This Site</a> &middot; <a href="/security/">Security Contact Info</a></span>
333
+
334
+ </p>
335
+ </footer></div>
336
+ </div>
337
+
338
+
339
+
340
+
341
+
342
+
343
+ <script src="/combo/js?search-min.js&hoverable-min.js&main-min.js"></script>
344
+
345
+
346
+
347
+
348
+ <script>
349
+ var _sf_async_config={uid:27522,domain:"yuilibrary.com"};
350
+
351
+ (function(){
352
+ var win = window,
353
+ oldonload = win.onload;
354
+
355
+ win.onload = typeof win.onload !== 'function' ?
356
+ loadChartbeat : function () { oldonload(); loadChartbeat(); };
357
+
358
+ function loadChartbeat() {
359
+ var doc = document,
360
+ el;
361
+
362
+ win._sf_endpt=(new Date()).getTime();
363
+
364
+ el = doc.createElement('script');
365
+ el.setAttribute('src', ('https:' === win.location.protocol ?
366
+ 'https://a248.e.akamai.net/chartbeat.download.akamai.com/102508/' :
367
+ 'http://static.chartbeat.com/') + 'js/chartbeat.js');
368
+
369
+ doc.body.appendChild(el);
370
+ }
371
+ })();
372
+ </script>
373
+
374
+ </body>
375
+ </html>