locale 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. data/ChangeLog +3 -0
  2. data/benchmark/benchmark.rb +34 -0
  3. data/benchmark/benchmark_2.0.1.txt +7 -0
  4. data/doc/classes/Locale.html +1244 -0
  5. data/doc/classes/Locale/Driver.html +374 -0
  6. data/doc/classes/Locale/Driver/CGI.html +536 -0
  7. data/doc/classes/Locale/Driver/Env.html +439 -0
  8. data/doc/classes/Locale/Driver/JRuby.html +389 -0
  9. data/doc/classes/Locale/Driver/Posix.html +430 -0
  10. data/doc/classes/Locale/Driver/Win32.html +398 -0
  11. data/doc/classes/Locale/Driver/Win32Table.html +355 -0
  12. data/doc/classes/Locale/Info.html +585 -0
  13. data/doc/classes/Locale/Info/Language.html +763 -0
  14. data/doc/classes/Locale/Info/Region.html +470 -0
  15. data/doc/classes/Locale/Tag.html +433 -0
  16. data/doc/classes/Locale/Tag/Cldr.html +523 -0
  17. data/doc/classes/Locale/Tag/Common.html +624 -0
  18. data/doc/classes/Locale/Tag/Irregular.html +423 -0
  19. data/doc/classes/Locale/Tag/Posix.html +612 -0
  20. data/doc/classes/Locale/Tag/Rfc.html +581 -0
  21. data/doc/classes/Locale/Tag/Simple.html +721 -0
  22. data/doc/classes/Locale/TagList.html +826 -0
  23. data/doc/classes/Locale/Util.html +506 -0
  24. data/doc/classes/Locale/Util/Memoizable.html +355 -0
  25. data/doc/created.rid +1 -0
  26. data/doc/files/ChangeLog.html +537 -0
  27. data/doc/files/README_rdoc.html +565 -0
  28. data/doc/files/lib/locale/driver/cgi_rb.html +341 -0
  29. data/doc/files/lib/locale/driver/env_rb.html +353 -0
  30. data/doc/files/lib/locale/driver/jruby_rb.html +353 -0
  31. data/doc/files/lib/locale/driver/posix_rb.html +341 -0
  32. data/doc/files/lib/locale/driver/win32_rb.html +348 -0
  33. data/doc/files/lib/locale/driver/win32_table_rb.html +341 -0
  34. data/doc/files/lib/locale/info/language_rb.html +352 -0
  35. data/doc/files/lib/locale/info/region_rb.html +352 -0
  36. data/doc/files/lib/locale/info_rb.html +353 -0
  37. data/doc/files/lib/locale/tag/cldr_rb.html +348 -0
  38. data/doc/files/lib/locale/tag/common_rb.html +348 -0
  39. data/doc/files/lib/locale/tag/irregular_rb.html +348 -0
  40. data/doc/files/lib/locale/tag/posix_rb.html +341 -0
  41. data/doc/files/lib/locale/tag/rfc_rb.html +348 -0
  42. data/doc/files/lib/locale/tag/simple_rb.html +348 -0
  43. data/doc/files/lib/locale/tag_rb.html +378 -0
  44. data/doc/files/lib/locale/taglist_rb.html +348 -0
  45. data/doc/files/lib/locale/util/memoizable_rb.html +359 -0
  46. data/doc/files/lib/locale/version_rb.html +341 -0
  47. data/doc/files/lib/locale_rb.html +363 -0
  48. data/doc/fr_class_index.html +22 -0
  49. data/doc/fr_file_index.html +23 -0
  50. data/doc/fr_method_index.html +99 -0
  51. data/doc/index.html +1 -0
  52. data/doc/rdoc-style.css +320 -0
  53. data/lib/locale/util/memoizable.rb.20090328 +96 -0
  54. data/lib/locale/util/memoizable.rb.old +91 -0
  55. data/lib/locale/version.rb +1 -1
  56. data/replace.rb +21 -0
  57. data/test.rb +28 -0
  58. data/test/test.rb +7 -0
  59. data/test/tmp.txt +20 -0
  60. data/test2.rb +14 -0
  61. data/test3.rb +12 -0
  62. metadata +75 -1
@@ -0,0 +1,355 @@
1
+ <html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>Module: Locale::Util::Memoizable</title><link type="text/css" href="../../.././rdoc-style.css" media="screen" rel="stylesheet"/><script type="text/javascript">
2
+ // Allison template
3
+ // Copyright 2007, 2008 Cloudburst, LLC. Licensed under the AFL 3. See the included LICENSE file.
4
+
5
+ var href_base = '../../.././rdoc-style.css'.replace(/(.*\/).*/, '$1'); // inline js is good for something
6
+
7
+ function $(id) {
8
+ if (document.getElementById)
9
+ elem = document.getElementById(id);
10
+ else if ( document.all )
11
+ elem = eval("document.all." + id);
12
+ else
13
+ return false;
14
+ return elem;
15
+ }
16
+
17
+ function toggle(id) {
18
+ elem = $(id);
19
+ elemStyle = elem.style;
20
+ if (elemStyle.display == "block") {
21
+ elemStyle.display = "none"
22
+ } else {
23
+ elemStyle.display = "block"
24
+ }
25
+ return true;
26
+ }
27
+
28
+ function toggleText(id) {
29
+ elem = $(id)
30
+ if (m = elem.innerHTML.match(/(Hide)(.*)/)) {
31
+ elem.innerHTML = "Show" + m[2];
32
+ } else if (m = elem.innerHTML.match(/(Show)(.*)/)) {
33
+ elem.innerHTML = "Hide" + m[2];
34
+ }
35
+ return true;
36
+ }
37
+
38
+ function span(s, klass) {
39
+ return '<span class="' + klass + '">' + s + '</span>';
40
+ }
41
+
42
+ function highlightSymbols() {
43
+ pres = document.getElementsByTagName('pre');
44
+ for(var i = 0; i < pres.length; i++) {
45
+ pre = pres[i];
46
+ spans = pre.getElementsByTagName('span');
47
+ for(var k = 0; k < spans.length; k++) {
48
+ span = spans[k];
49
+ if (span.className.match(/ruby-identifier/)) {
50
+ if (span.innerHTML.match(/^:/)) {
51
+ span.className += " ruby-symbol";
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ function hasClass(obj) {
59
+ var result = false;
60
+ if (obj.getAttributeNode("class") != null) {
61
+ result = obj.getAttributeNode("class").value;
62
+ }
63
+ return result;
64
+ }
65
+
66
+ function stripe() {
67
+ var even = true;
68
+ var color = "#e4ebed";
69
+ var tables = document.getElementsByTagName('table');
70
+ if (tables.length == 0) { return; }
71
+ for (var h = 0; h < tables.length; h++) {
72
+ var trs = tables[h].getElementsByTagName("tr");
73
+ for (var i = 0; i < trs.length; i++) {
74
+ var tds = trs[i].getElementsByTagName("td");
75
+ for (var j = 0; j < tds.length; j++) {
76
+ if (hasClass(tds[j]) != "first") {
77
+ var mytd = tds[j];
78
+ if (even) {
79
+ mytd.style.backgroundColor = color;
80
+ }
81
+ }
82
+ }
83
+ even = ! even;
84
+ }
85
+ }
86
+ }
87
+
88
+ function ajaxGet(url) {
89
+ url = (href_base + url).replace('/./', '/')
90
+ var req = false;
91
+
92
+ if (window.ActiveXObject) {
93
+ try {
94
+ // stupid hack because IE7 disables local Ajax with the native xmlhttprequest object
95
+ // for security purposes. Yet ActiveX still works. Thanks, Microsoft. I hate you. Die.
96
+ req = new ActiveXObject("MSXML2.XMLHTTP.3.0");
97
+ } catch (e) {
98
+ try {
99
+ /* IE 6 and maybe 5, don't know, don't care */
100
+ req = new ActiveXObject("Msxml2.XMLHTTP");
101
+ } catch (e) {
102
+ try {
103
+ req = new ActiveXObject("Microsoft.XMLHTTP");
104
+ } catch (e) {
105
+ req = false;
106
+ }
107
+ }
108
+ }
109
+ }
110
+
111
+ /* real browsers */
112
+ if (!req && window.XMLHttpRequest) {
113
+ try {
114
+ req = new XMLHttpRequest();
115
+ } catch (e) {
116
+ req = false;
117
+ }
118
+ }
119
+
120
+ if (req) {
121
+ req.open('GET', url, false);
122
+ req.send(null);
123
+ return req.responseText;
124
+ } else {
125
+ return "Ajax error";
126
+ }
127
+ }
128
+
129
+
130
+ function addEvent(elm, evType, fn, useCapture) {
131
+ if (elm.addEventListener) {
132
+ elm.addEventListener(evType, fn, useCapture);
133
+ return true;
134
+ } else if (elm.attachEvent) {
135
+ var r = elm.attachEvent('on' + evType, fn);
136
+ return r;
137
+ } else {
138
+ elm['on' + evType] = fn;
139
+ }
140
+ }
141
+
142
+ function insertIndices() {
143
+ pages = ["class", "file", "method"]
144
+ for (x in pages) {
145
+ $(pages[x]).innerHTML += ajaxGet('fr_' + pages[x] + '_index.html').replace(/(href=")/g, '$1' + href_base);
146
+ }
147
+ /* mouseoverify method links */
148
+ links = $('method').getElementsByTagName('a');
149
+ for (var x = 0; x < links.length; x++) {
150
+ if (m = links[x].innerHTML.match(/(.*)\s\((.*)\)/)) {
151
+ links[x].innerHTML = m[1] + '<br>';
152
+ links[x].title = m[2];
153
+ }
154
+ }
155
+ /* this is stupid */
156
+ $('class').style.display = "block";
157
+ $('file').style.display = "block";
158
+
159
+ /* has to be here because IE7 does not guarantee the onLoad callback order */
160
+ abbreviateIndicesInner(["class", "file"], 25, "a");
161
+ /* same, linkTitle() depends on the class link list */
162
+ linkTitle();
163
+ }
164
+
165
+ function abbreviateIndices() {
166
+ var ids = ["defined_in", "child_of", "includes", "requires", "method", "methods"];
167
+ abbreviateIndicesInner(ids, 25, 'a');
168
+ abbreviateIndicesInner(ids, 25, 'span');
169
+ }
170
+
171
+ function abbreviateIndicesInner(indices, amount, tag) {
172
+ for (var x = 0; x < indices.length; x++) {
173
+ var the_index = $(indices[x]);
174
+ if (the_index) {
175
+ links = the_index.getElementsByTagName(tag);
176
+ for (var y = 0; y < links.length; y++) {
177
+ var link = links[y];
178
+ if (link.getElementsByTagName('span').length == 0 && link.getElementsByTagName('a').length == 0) {
179
+ // avoid nesting
180
+ link.innerHTML = link.innerHTML.replace(/<br>|\n/gi, '');
181
+ link.title = link.innerHTML;
182
+ link.innerHTML = abbreviate(link.innerHTML, amount) + '<br>';
183
+ }
184
+ }
185
+ }
186
+ }
187
+ }
188
+
189
+ function linkTitle() {
190
+
191
+ /* grab the correct title element from the index */
192
+ var index_page = ajaxGet('index.html');
193
+ title_text = index_page.match(/<title>(.*)<\/title>/m)[1];
194
+ document.title = title_text + " - " + document.title;
195
+ var p = $('header').getElementsByTagName('p')[0]
196
+ if (p.innerHTML.match(/^\s*$/)) {
197
+ p.innerHTML = title_text;
198
+ } else {
199
+ p.innerHTML = title_text + ": " + p.innerHTML;
200
+ }
201
+
202
+ /* set the link properly */
203
+ title_link = index_page.match(/<a\s+href="(.*?)"/)[1];
204
+ var element = $('title');
205
+ var item_type = "";
206
+ var item_name = "";
207
+ if (m = element.innerHTML.match(/(Class:|Module:|File:)\s*(.*)/)) {
208
+ item_type = m[1];
209
+ item_name = m[2];
210
+ } else {
211
+ item_name = element.innerHTML;
212
+ }
213
+ element.innerHTML = '<a href="' + href_base + title_link + '">' + item_type + " " + abbreviate(item_name, 45) + '</a>';
214
+ element.getElementsByTagName('a')[0].title = item_name
215
+
216
+ /* breadcrumb navigation */
217
+ items = item_name.split("::");
218
+ items_new = item_name.split("::");
219
+ file_links = $('class').getElementsByTagName('a');
220
+ for (var x = 0; x < items.length - 1; x++ ){
221
+ var item = items[x];
222
+ link = ("/classes/" + items.slice(0,x).join("/") + "/" + item + ".html").replace('//', '/');
223
+ regex = new RegExp(RegExp.escape(link) + '$');
224
+ for (var y = 0; y < file_links.length; y++) {
225
+ if (file_links[y].href.match(regex)) {
226
+ items_new[x] = '<a href="' + href_base + link + '">' + item + '</a>';
227
+ break;
228
+ }
229
+ }
230
+ }
231
+ $('item_name').innerHTML = item_type + ' ' + items_new.join(" :: ");
232
+ }
233
+
234
+ function abbreviate(s, size) {
235
+ while (s.length > size) {
236
+ var old_s = s;
237
+ s = s.replace(/\s|\n/mg, '');
238
+ s = s.replace(/([A-Z])[a-z]+/m, '$1');
239
+ if (!s || old_s == s) {
240
+ return "..." + s.substring(s.length - size, s.length);
241
+ }
242
+ }
243
+ return s;
244
+ }
245
+
246
+ function disableSubmit(event) {
247
+ var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
248
+ if (keyCode == 13) {
249
+ return false;
250
+ } else {
251
+ return true;
252
+ }
253
+ }
254
+
255
+ function filterList(id, s, event) {
256
+
257
+ /* some weak escaping */
258
+ s = s.replace(/[^\w\d\.\_\-\/\:\=\[\]\?\!]/g, '');
259
+ s = RegExp.escape(s);
260
+
261
+ var show_all = false;
262
+ if (s.match(/^\s*$/)) {
263
+ show_all = true;
264
+ }
265
+
266
+ links = $(id).getElementsByTagName('a')
267
+ regex = new RegExp(s, 'i');
268
+
269
+ for (var x = 0; x < links.length; x++) {
270
+ var link = links[x];
271
+ if (show_all) {
272
+ link.style.display = 'inline';
273
+ } else {
274
+ if (link.innerHTML.match(regex)) {
275
+ link.style.display = 'inline';
276
+ } else {
277
+ link.style.display = 'none';
278
+ }
279
+ }
280
+ }
281
+ return true;
282
+ }
283
+
284
+ RegExp.escape = function(text) {
285
+ if (!arguments.callee.sRE) {
286
+ var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'];
287
+ arguments.callee.sRE = new RegExp(
288
+ '(\\' + specials.join('|\\') + ')', 'g'
289
+ );
290
+ }
291
+ return text.replace(arguments.callee.sRE, '\\$1');
292
+ }
293
+
294
+ function hacks() {
295
+ // show the spacer if necessary,
296
+ divs = document.getElementsByTagName('div');
297
+ for(var x = 0; x < divs.length; x++) {
298
+ if (divs[x].className && divs[x].className.match(/top/)) {
299
+ document.getElementById('spacer').style.display = 'block';
300
+ }
301
+ }
302
+ // remove extra colons from tables
303
+ tds = document.getElementsByTagName('td');
304
+ for(var x = 0; x < tds.length; x++) {
305
+ str = tds[x].innerHTML
306
+ if (str.charAt(str.length - 1) == ":") {
307
+ tds[x].innerHTML = str.slice(0, str.length - 1)
308
+ }
309
+ }
310
+ }
311
+
312
+ addEvent(window, 'load', insertIndices, false);
313
+ addEvent(window, 'load', abbreviateIndices, false);
314
+ addEvent(window, 'load', stripe, false);
315
+ addEvent(window, 'load', highlightSymbols, false);
316
+ addEvent(window, 'load', hacks, false);
317
+ </script></head><body><div id="container"><div class="curve" id="preheader_curve_0"></div><div class="curve" id="preheader_curve_1"></div><div class="curve" id="preheader_curve_2"></div><div class="curve" id="preheader_curve_3"></div><div class="curve" id="preheader_curve_4"></div><div class="curve" id="preheader_curve_5"></div><div id="header"><p>
318
+ </p><span><h1 id="title">
319
+ Module: Locale::Util::Memoizable
320
+ </h1></span></div><div class="clear"></div><div id="left">
321
+
322
+ <div class="navigation darker top" id="defined_in"><h3>Defined in</h3>
323
+
324
+ <a href="../../../files/lib/locale/util/memoizable_rb.html">lib/locale/util/memoizable.rb</a>
325
+
326
+ </div>
327
+
328
+
329
+
330
+ <div id="spacer"></div><div class="navigation darker index" id="class_wrapper"><div class="list_header"><h3>All classes</h3></div><div class="list_header_link"><a href="#" onclick="toggle('class'); toggleText('class_link'); return false;" id="class_link">Hide...</a></div><div class="clear"></div><div id="class"><form><label for="filter_class">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('class', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_class"></input></form></div></div><div class="navigation darker index" id="file_wrapper"><div class="list_header"><h3>All files</h3></div><div class="list_header_link"><a href="#" onclick="toggle('file'); toggleText('file_link'); return false;" id="file_link">Hide...</a></div><div class="clear"></div><div id="file"><form><label for="filter_file">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('file', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_file"></input></form></div></div><div class="navigation darker index" id="method_wrapper"><div class="list_header"><h3>All methods</h3></div><div class="list_header_link"><a href="#" onclick="toggle('method'); toggleText('method_link'); return false;" id="method_link">Show...</a></div><div class="clear"></div><div id="method"><form><label for="filter_method">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('method', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_method"></input></form></div></div></div><div id="content">
331
+ <h1 id="item_name">Module: Locale::Util::Memoizable</h1>
332
+
333
+
334
+
335
+
336
+
337
+ <p></p>
338
+
339
+
340
+ <h1>Constants</h1><p><table><tr><th>Name</th><th>Value</th></tr>
341
+ <tr>
342
+ <td class="highlight">MEMOIZED_IVAR</td>
343
+
344
+ <td class="normal">Proc.new do |symbol| &quot;#{symbol.to_s.sub(/\?\Z/, '_query').sub(/!\Z/, '_bang')}&quot;.to_sym</td>
345
+
346
+
347
+
348
+ </tr>
349
+ </table></p>
350
+
351
+
352
+
353
+
354
+
355
+ </div><div class="clear" id="footer">Generated on May 9, 2009 / Allison 2 &copy; 2007 <a href="http://cloudbur.st">Cloudburst, LLC</a></div></div></body></html>
data/doc/created.rid ADDED
@@ -0,0 +1 @@
1
+ Sat, 09 May 2009 23:38:20 +0900
@@ -0,0 +1,537 @@
1
+ <html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>File: ChangeLog</title><link type="text/css" href=".././rdoc-style.css" media="screen" rel="stylesheet"/><script type="text/javascript">
2
+ // Allison template
3
+ // Copyright 2007, 2008 Cloudburst, LLC. Licensed under the AFL 3. See the included LICENSE file.
4
+
5
+ var href_base = '.././rdoc-style.css'.replace(/(.*\/).*/, '$1'); // inline js is good for something
6
+
7
+ function $(id) {
8
+ if (document.getElementById)
9
+ elem = document.getElementById(id);
10
+ else if ( document.all )
11
+ elem = eval("document.all." + id);
12
+ else
13
+ return false;
14
+ return elem;
15
+ }
16
+
17
+ function toggle(id) {
18
+ elem = $(id);
19
+ elemStyle = elem.style;
20
+ if (elemStyle.display == "block") {
21
+ elemStyle.display = "none"
22
+ } else {
23
+ elemStyle.display = "block"
24
+ }
25
+ return true;
26
+ }
27
+
28
+ function toggleText(id) {
29
+ elem = $(id)
30
+ if (m = elem.innerHTML.match(/(Hide)(.*)/)) {
31
+ elem.innerHTML = "Show" + m[2];
32
+ } else if (m = elem.innerHTML.match(/(Show)(.*)/)) {
33
+ elem.innerHTML = "Hide" + m[2];
34
+ }
35
+ return true;
36
+ }
37
+
38
+ function span(s, klass) {
39
+ return '<span class="' + klass + '">' + s + '</span>';
40
+ }
41
+
42
+ function highlightSymbols() {
43
+ pres = document.getElementsByTagName('pre');
44
+ for(var i = 0; i < pres.length; i++) {
45
+ pre = pres[i];
46
+ spans = pre.getElementsByTagName('span');
47
+ for(var k = 0; k < spans.length; k++) {
48
+ span = spans[k];
49
+ if (span.className.match(/ruby-identifier/)) {
50
+ if (span.innerHTML.match(/^:/)) {
51
+ span.className += " ruby-symbol";
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ function hasClass(obj) {
59
+ var result = false;
60
+ if (obj.getAttributeNode("class") != null) {
61
+ result = obj.getAttributeNode("class").value;
62
+ }
63
+ return result;
64
+ }
65
+
66
+ function stripe() {
67
+ var even = true;
68
+ var color = "#e4ebed";
69
+ var tables = document.getElementsByTagName('table');
70
+ if (tables.length == 0) { return; }
71
+ for (var h = 0; h < tables.length; h++) {
72
+ var trs = tables[h].getElementsByTagName("tr");
73
+ for (var i = 0; i < trs.length; i++) {
74
+ var tds = trs[i].getElementsByTagName("td");
75
+ for (var j = 0; j < tds.length; j++) {
76
+ if (hasClass(tds[j]) != "first") {
77
+ var mytd = tds[j];
78
+ if (even) {
79
+ mytd.style.backgroundColor = color;
80
+ }
81
+ }
82
+ }
83
+ even = ! even;
84
+ }
85
+ }
86
+ }
87
+
88
+ function ajaxGet(url) {
89
+ url = (href_base + url).replace('/./', '/')
90
+ var req = false;
91
+
92
+ if (window.ActiveXObject) {
93
+ try {
94
+ // stupid hack because IE7 disables local Ajax with the native xmlhttprequest object
95
+ // for security purposes. Yet ActiveX still works. Thanks, Microsoft. I hate you. Die.
96
+ req = new ActiveXObject("MSXML2.XMLHTTP.3.0");
97
+ } catch (e) {
98
+ try {
99
+ /* IE 6 and maybe 5, don't know, don't care */
100
+ req = new ActiveXObject("Msxml2.XMLHTTP");
101
+ } catch (e) {
102
+ try {
103
+ req = new ActiveXObject("Microsoft.XMLHTTP");
104
+ } catch (e) {
105
+ req = false;
106
+ }
107
+ }
108
+ }
109
+ }
110
+
111
+ /* real browsers */
112
+ if (!req && window.XMLHttpRequest) {
113
+ try {
114
+ req = new XMLHttpRequest();
115
+ } catch (e) {
116
+ req = false;
117
+ }
118
+ }
119
+
120
+ if (req) {
121
+ req.open('GET', url, false);
122
+ req.send(null);
123
+ return req.responseText;
124
+ } else {
125
+ return "Ajax error";
126
+ }
127
+ }
128
+
129
+
130
+ function addEvent(elm, evType, fn, useCapture) {
131
+ if (elm.addEventListener) {
132
+ elm.addEventListener(evType, fn, useCapture);
133
+ return true;
134
+ } else if (elm.attachEvent) {
135
+ var r = elm.attachEvent('on' + evType, fn);
136
+ return r;
137
+ } else {
138
+ elm['on' + evType] = fn;
139
+ }
140
+ }
141
+
142
+ function insertIndices() {
143
+ pages = ["class", "file", "method"]
144
+ for (x in pages) {
145
+ $(pages[x]).innerHTML += ajaxGet('fr_' + pages[x] + '_index.html').replace(/(href=")/g, '$1' + href_base);
146
+ }
147
+ /* mouseoverify method links */
148
+ links = $('method').getElementsByTagName('a');
149
+ for (var x = 0; x < links.length; x++) {
150
+ if (m = links[x].innerHTML.match(/(.*)\s\((.*)\)/)) {
151
+ links[x].innerHTML = m[1] + '<br>';
152
+ links[x].title = m[2];
153
+ }
154
+ }
155
+ /* this is stupid */
156
+ $('class').style.display = "block";
157
+ $('file').style.display = "block";
158
+
159
+ /* has to be here because IE7 does not guarantee the onLoad callback order */
160
+ abbreviateIndicesInner(["class", "file"], 25, "a");
161
+ /* same, linkTitle() depends on the class link list */
162
+ linkTitle();
163
+ }
164
+
165
+ function abbreviateIndices() {
166
+ var ids = ["defined_in", "child_of", "includes", "requires", "method", "methods"];
167
+ abbreviateIndicesInner(ids, 25, 'a');
168
+ abbreviateIndicesInner(ids, 25, 'span');
169
+ }
170
+
171
+ function abbreviateIndicesInner(indices, amount, tag) {
172
+ for (var x = 0; x < indices.length; x++) {
173
+ var the_index = $(indices[x]);
174
+ if (the_index) {
175
+ links = the_index.getElementsByTagName(tag);
176
+ for (var y = 0; y < links.length; y++) {
177
+ var link = links[y];
178
+ if (link.getElementsByTagName('span').length == 0 && link.getElementsByTagName('a').length == 0) {
179
+ // avoid nesting
180
+ link.innerHTML = link.innerHTML.replace(/<br>|\n/gi, '');
181
+ link.title = link.innerHTML;
182
+ link.innerHTML = abbreviate(link.innerHTML, amount) + '<br>';
183
+ }
184
+ }
185
+ }
186
+ }
187
+ }
188
+
189
+ function linkTitle() {
190
+
191
+ /* grab the correct title element from the index */
192
+ var index_page = ajaxGet('index.html');
193
+ title_text = index_page.match(/<title>(.*)<\/title>/m)[1];
194
+ document.title = title_text + " - " + document.title;
195
+ var p = $('header').getElementsByTagName('p')[0]
196
+ if (p.innerHTML.match(/^\s*$/)) {
197
+ p.innerHTML = title_text;
198
+ } else {
199
+ p.innerHTML = title_text + ": " + p.innerHTML;
200
+ }
201
+
202
+ /* set the link properly */
203
+ title_link = index_page.match(/<a\s+href="(.*?)"/)[1];
204
+ var element = $('title');
205
+ var item_type = "";
206
+ var item_name = "";
207
+ if (m = element.innerHTML.match(/(Class:|Module:|File:)\s*(.*)/)) {
208
+ item_type = m[1];
209
+ item_name = m[2];
210
+ } else {
211
+ item_name = element.innerHTML;
212
+ }
213
+ element.innerHTML = '<a href="' + href_base + title_link + '">' + item_type + " " + abbreviate(item_name, 45) + '</a>';
214
+ element.getElementsByTagName('a')[0].title = item_name
215
+
216
+ /* breadcrumb navigation */
217
+ items = item_name.split("::");
218
+ items_new = item_name.split("::");
219
+ file_links = $('class').getElementsByTagName('a');
220
+ for (var x = 0; x < items.length - 1; x++ ){
221
+ var item = items[x];
222
+ link = ("/classes/" + items.slice(0,x).join("/") + "/" + item + ".html").replace('//', '/');
223
+ regex = new RegExp(RegExp.escape(link) + '$');
224
+ for (var y = 0; y < file_links.length; y++) {
225
+ if (file_links[y].href.match(regex)) {
226
+ items_new[x] = '<a href="' + href_base + link + '">' + item + '</a>';
227
+ break;
228
+ }
229
+ }
230
+ }
231
+ $('item_name').innerHTML = item_type + ' ' + items_new.join(" :: ");
232
+ }
233
+
234
+ function abbreviate(s, size) {
235
+ while (s.length > size) {
236
+ var old_s = s;
237
+ s = s.replace(/\s|\n/mg, '');
238
+ s = s.replace(/([A-Z])[a-z]+/m, '$1');
239
+ if (!s || old_s == s) {
240
+ return "..." + s.substring(s.length - size, s.length);
241
+ }
242
+ }
243
+ return s;
244
+ }
245
+
246
+ function disableSubmit(event) {
247
+ var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
248
+ if (keyCode == 13) {
249
+ return false;
250
+ } else {
251
+ return true;
252
+ }
253
+ }
254
+
255
+ function filterList(id, s, event) {
256
+
257
+ /* some weak escaping */
258
+ s = s.replace(/[^\w\d\.\_\-\/\:\=\[\]\?\!]/g, '');
259
+ s = RegExp.escape(s);
260
+
261
+ var show_all = false;
262
+ if (s.match(/^\s*$/)) {
263
+ show_all = true;
264
+ }
265
+
266
+ links = $(id).getElementsByTagName('a')
267
+ regex = new RegExp(s, 'i');
268
+
269
+ for (var x = 0; x < links.length; x++) {
270
+ var link = links[x];
271
+ if (show_all) {
272
+ link.style.display = 'inline';
273
+ } else {
274
+ if (link.innerHTML.match(regex)) {
275
+ link.style.display = 'inline';
276
+ } else {
277
+ link.style.display = 'none';
278
+ }
279
+ }
280
+ }
281
+ return true;
282
+ }
283
+
284
+ RegExp.escape = function(text) {
285
+ if (!arguments.callee.sRE) {
286
+ var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'];
287
+ arguments.callee.sRE = new RegExp(
288
+ '(\\' + specials.join('|\\') + ')', 'g'
289
+ );
290
+ }
291
+ return text.replace(arguments.callee.sRE, '\\$1');
292
+ }
293
+
294
+ function hacks() {
295
+ // show the spacer if necessary,
296
+ divs = document.getElementsByTagName('div');
297
+ for(var x = 0; x < divs.length; x++) {
298
+ if (divs[x].className && divs[x].className.match(/top/)) {
299
+ document.getElementById('spacer').style.display = 'block';
300
+ }
301
+ }
302
+ // remove extra colons from tables
303
+ tds = document.getElementsByTagName('td');
304
+ for(var x = 0; x < tds.length; x++) {
305
+ str = tds[x].innerHTML
306
+ if (str.charAt(str.length - 1) == ":") {
307
+ tds[x].innerHTML = str.slice(0, str.length - 1)
308
+ }
309
+ }
310
+ }
311
+
312
+ addEvent(window, 'load', insertIndices, false);
313
+ addEvent(window, 'load', abbreviateIndices, false);
314
+ addEvent(window, 'load', stripe, false);
315
+ addEvent(window, 'load', highlightSymbols, false);
316
+ addEvent(window, 'load', hacks, false);
317
+ </script></head><body><div id="container"><div class="curve" id="preheader_curve_0"></div><div class="curve" id="preheader_curve_1"></div><div class="curve" id="preheader_curve_2"></div><div class="curve" id="preheader_curve_3"></div><div class="curve" id="preheader_curve_4"></div><div class="curve" id="preheader_curve_5"></div><div id="header"><p>
318
+ ChangeLog
319
+ </p><span><h1 id="title">
320
+ File: ChangeLog
321
+ </h1></span></div><div class="clear"></div><div id="left">
322
+
323
+
324
+
325
+
326
+ <div id="spacer"></div><div class="navigation darker index" id="class_wrapper"><div class="list_header"><h3>All classes</h3></div><div class="list_header_link"><a href="#" onclick="toggle('class'); toggleText('class_link'); return false;" id="class_link">Hide...</a></div><div class="clear"></div><div id="class"><form><label for="filter_class">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('class', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_class"></input></form></div></div><div class="navigation darker index" id="file_wrapper"><div class="list_header"><h3>All files</h3></div><div class="list_header_link"><a href="#" onclick="toggle('file'); toggleText('file_link'); return false;" id="file_link">Hide...</a></div><div class="clear"></div><div id="file"><form><label for="filter_file">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('file', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_file"></input></form></div></div><div class="navigation darker index" id="method_wrapper"><div class="list_header"><h3>All methods</h3></div><div class="list_header_link"><a href="#" onclick="toggle('method'); toggleText('method_link'); return false;" id="method_link">Show...</a></div><div class="clear"></div><div id="method"><form><label for="filter_method">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('method', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_method"></input></form></div></div></div><div id="content">
327
+ <h1 id="item_name">File: ChangeLog</h1>
328
+
329
+ <div id="description"><h1>locale-2.0.3 (2009-05-09)</h1>
330
+ <pre>
331
+ * Update version.
332
+ </pre>
333
+ <h1>locale-2.0.2 (2009-05-04)</h1>
334
+ <pre>
335
+ * Add Locale.set_app_language_tags to restrict the target locales whole the application. [Suggested by Vladimir Dobriakov]
336
+ * locale/driver/cgi.rb: Add Locale.set_request.
337
+ * sample/rack: Add a sample for rack.
338
+ * Improve documents.
339
+ * Fix bugs
340
+ * Illegular -&gt; Irregular [by Denis Defreyne]
341
+ * test_thread.rb doesn't work under the environment where LC_ALL is set .
342
+ [Reported by Hans de Graaff (Bug#24831)]
343
+ * Fixed Locale::Drive::CGI.charset don't work when accept_charset is nil.
344
+ [Reported by hallelujah (Bug#25583)]
345
+ * Fixed Locale::Drive::Win32.charset don't work.
346
+ </pre>
347
+ <p>
348
+ Thanks to:
349
+ </p>
350
+ <pre>
351
+ Denis Defreyne, Hans de Graaff, hallelujah, Vladimir Dobriakov
352
+ </pre>
353
+ <h1>locale-2.0.1 (2009-04-18)</h1>
354
+ <pre>
355
+ * Locale::Tag::Common#extensions are shown order by the keys.[reported by
356
+ Dan Coutu]
357
+ * Enhance to support ruby-1.9.x [by OZAWA Sakuro]
358
+ * Reimplement memoize to be able to freeze or dup the object.
359
+ * Improve Locale.candidates.
360
+
361
+ Thanks to:
362
+ Dan Coutu, OZAWA Sakuro
363
+ </pre>
364
+ <h1>locale-2.0.0 (2009-03-21)</h1>
365
+ <pre>
366
+ * Support Rack.
367
+ * move to github from svn.
368
+ </pre>
369
+ <h2>Older format.</h2>
370
+ <p>
371
+ 2008-12-04 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
372
+ </p>
373
+ <pre>
374
+ * lib/locale/util/memoizable.rb: Modified.
375
+ </pre>
376
+ <p>
377
+ 2008-12-03 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
378
+ </p>
379
+ <pre>
380
+ * lib/locale/tag/*.rb: Add attribute writer to subtags.
381
+ * lib/locale/tag/*.rb: Remove tag attributes.
382
+ * lib/locale/tag/common.rb: Variant accept 3 or later size because of RFC3066 compatibility.
383
+ * test/test_tag.rb: Add tests.
384
+ </pre>
385
+ <p>
386
+ 2008-12-01 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
387
+ </p>
388
+ <pre>
389
+ * lib/locale/driver/win32.rb: Work on Win32 again.
390
+ </pre>
391
+ <p>
392
+ 2008-11-22 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
393
+ </p>
394
+ <pre>
395
+ * lib/locale.rb: Rename Locale.current_language_tags to Locale.candidates.
396
+ Locale.current_charset to Locale.charset.
397
+ </pre>
398
+ <p>
399
+ 2008-11-21 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
400
+ </p>
401
+ <pre>
402
+ * lib/locale/tag/simple.rb: Add Locale::Tag::Simple#to_str.
403
+ * lib/locale.rb: Remove set_current_charset. current_charset becomes read only.
404
+ </pre>
405
+ <p>
406
+ 2008-11-20 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
407
+ </p>
408
+ <pre>
409
+ * lib/locale/driver/cgi.rb: Accept plural lang values(query string and
410
+ cookies).
411
+ </pre>
412
+ <p>
413
+ 2008-11-19 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
414
+ </p>
415
+ <pre>
416
+ * lib/locale.rb: Locale.current_language_tags returns Locale::TagList.
417
+ * lib/tag/*.rb: Add #candidates method.
418
+ </pre>
419
+ <p>
420
+ 2008-11-12 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
421
+ </p>
422
+ <pre>
423
+ * lib/locale/util/meoizable.rb: Added.
424
+ </pre>
425
+ <p>
426
+ 2008-11-03 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
427
+ </p>
428
+ <pre>
429
+ * README: Updated.
430
+ * Rakefile: Add package tasks. Revise RDoc task.
431
+ * lib/locale/driver/win32.rb, win32_table.rb, jruby.rb: Work on Windows.
432
+ </pre>
433
+ <p>
434
+ 2008-10-29 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
435
+ </p>
436
+ <pre>
437
+ * samples/cgi/*.rb: Added CGI sample (Based on Ruby-GetText sample).
438
+ </pre>
439
+ <p>
440
+ 2008-10-21 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
441
+ </p>
442
+ <pre>
443
+ * samples/sample1.rb: Added.
444
+ </pre>
445
+ <p>
446
+ 2008-10-07 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
447
+ </p>
448
+ <pre>
449
+ * lib/locale/*.rb: Support Ruby 1.9.
450
+ </pre>
451
+ <p>
452
+ 2008-10-01 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
453
+ </p>
454
+ <pre>
455
+ * lib/locale/*.rb: Support JRuby. Tested on JRuby 1.1.4.
456
+ </pre>
457
+ <p>
458
+ 2008-09-26 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
459
+ </p>
460
+ <pre>
461
+ * lib/locale/driver/*: Apply tags.
462
+ * lib/locale/taglist.rb: Added. An array of tags. Also, it behaves
463
+ as the first tag in the array.
464
+ * test/test_detect_general.rb: Added.
465
+ </pre>
466
+ <p>
467
+ 2008-09-25 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
468
+ </p>
469
+ <pre>
470
+ * lib/locale/tag.rb, lib/locale/tag/*: Added. Support rfc4646/posix/cldr
471
+ language tags powerfully.
472
+ * lib/locale/object.rb: Removed(Moved to tags).
473
+ * test/test_tag.rb: Added.
474
+ </pre>
475
+ <p>
476
+ 2008-09-21 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
477
+ </p>
478
+ <pre>
479
+ * test/*: Added.
480
+ </pre>
481
+ <p>
482
+ 2008-09-02 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
483
+ </p>
484
+ <pre>
485
+ * lib/locale.rb: Added Locale.current_language_tags which returns
486
+ language tags strings as an Array order by priority.
487
+ </pre>
488
+ <p>
489
+ 2008-08-20 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
490
+ </p>
491
+ <pre>
492
+ * lib/locale/info/language.rb, region.rb: Move from
493
+ lib/locale/language.rb, country.rb.
494
+ </pre>
495
+ <p>
496
+ 2008-08-18 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
497
+ </p>
498
+ <pre>
499
+ * lib/locale.rb: Remove Locale.codeset, .charset, .current_charset.
500
+ Use Locale.get.charset instead.
501
+ Add Locale.current_preferable_locales, supported_locales,
502
+ .set_supported_locales
503
+ </pre>
504
+ <p>
505
+ 2008-08-10 Masao Mutoh &lt;mutoh@highway.ne.jp&gt;
506
+ </p>
507
+ <pre>
508
+ * Separates this locale library from Ruby-GetText-Package-1.92.0.
509
+ * lib/locale/country.rb, language.rb: Merge locale-0.1 by Brian Pontarelli.
510
+ Reimplement Locale::Language and Locale::Country. All APIs don't have
511
+ backward compatibility from locale-0.1.
512
+ * lib/locale/data/countries.tab.gz, languages.tab.gz: Merge from locale-0.1.
513
+ * lib/locale/base.rb, win32.rb, win32_table.rb, posix.rb, jruby.rb, cgi.rb:
514
+ Move to lib/locale/driver/.
515
+ These classes detect the user/system locale (the language tag or
516
+ the charset) from the environment variables or the system APIs
517
+ (Win32/Java). Support POSIX, Win32, JRuby, CGI and ENV.
518
+
519
+ * lib/locale.rb: Add Locale.init.
520
+ * lib/locale/info.rb: Added.
521
+ * lib/locale.rb: Locale.set_current becomes thread safe. Each thread has
522
+ a current locale.
523
+ </pre>
524
+ </div>
525
+
526
+
527
+
528
+
529
+ <p></p>
530
+
531
+
532
+
533
+
534
+
535
+
536
+
537
+ </div><div class="clear" id="footer">Generated on May 9, 2009 / Allison 2 &copy; 2007 <a href="http://cloudbur.st">Cloudburst, LLC</a></div></div></body></html>