locale 2.0.3 → 2.0.4

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 (69) hide show
  1. data/ChangeLog +6 -0
  2. data/Rakefile +82 -80
  3. data/lib/locale/driver/jruby.rb +4 -10
  4. data/lib/locale/driver/win32.rb +25 -6
  5. data/lib/locale/tag/irregular.rb +1 -1
  6. data/lib/locale/version.rb +1 -1
  7. data/test/test_driver_jruby.rb +43 -0
  8. data/test/test_driver_win32.rb +65 -0
  9. data/test/test_tag.rb +181 -120
  10. metadata +4 -76
  11. data/benchmark/benchmark.rb +0 -34
  12. data/benchmark/benchmark_2.0.1.txt +0 -7
  13. data/doc/classes/Locale.html +0 -1244
  14. data/doc/classes/Locale/Driver.html +0 -374
  15. data/doc/classes/Locale/Driver/CGI.html +0 -536
  16. data/doc/classes/Locale/Driver/Env.html +0 -439
  17. data/doc/classes/Locale/Driver/JRuby.html +0 -389
  18. data/doc/classes/Locale/Driver/Posix.html +0 -430
  19. data/doc/classes/Locale/Driver/Win32.html +0 -398
  20. data/doc/classes/Locale/Driver/Win32Table.html +0 -355
  21. data/doc/classes/Locale/Info.html +0 -585
  22. data/doc/classes/Locale/Info/Language.html +0 -763
  23. data/doc/classes/Locale/Info/Region.html +0 -470
  24. data/doc/classes/Locale/Tag.html +0 -433
  25. data/doc/classes/Locale/Tag/Cldr.html +0 -523
  26. data/doc/classes/Locale/Tag/Common.html +0 -624
  27. data/doc/classes/Locale/Tag/Irregular.html +0 -423
  28. data/doc/classes/Locale/Tag/Posix.html +0 -612
  29. data/doc/classes/Locale/Tag/Rfc.html +0 -581
  30. data/doc/classes/Locale/Tag/Simple.html +0 -721
  31. data/doc/classes/Locale/TagList.html +0 -826
  32. data/doc/classes/Locale/Util.html +0 -506
  33. data/doc/classes/Locale/Util/Memoizable.html +0 -355
  34. data/doc/created.rid +0 -1
  35. data/doc/files/ChangeLog.html +0 -537
  36. data/doc/files/README_rdoc.html +0 -565
  37. data/doc/files/lib/locale/driver/cgi_rb.html +0 -341
  38. data/doc/files/lib/locale/driver/env_rb.html +0 -353
  39. data/doc/files/lib/locale/driver/jruby_rb.html +0 -353
  40. data/doc/files/lib/locale/driver/posix_rb.html +0 -341
  41. data/doc/files/lib/locale/driver/win32_rb.html +0 -348
  42. data/doc/files/lib/locale/driver/win32_table_rb.html +0 -341
  43. data/doc/files/lib/locale/info/language_rb.html +0 -352
  44. data/doc/files/lib/locale/info/region_rb.html +0 -352
  45. data/doc/files/lib/locale/info_rb.html +0 -353
  46. data/doc/files/lib/locale/tag/cldr_rb.html +0 -348
  47. data/doc/files/lib/locale/tag/common_rb.html +0 -348
  48. data/doc/files/lib/locale/tag/irregular_rb.html +0 -348
  49. data/doc/files/lib/locale/tag/posix_rb.html +0 -341
  50. data/doc/files/lib/locale/tag/rfc_rb.html +0 -348
  51. data/doc/files/lib/locale/tag/simple_rb.html +0 -348
  52. data/doc/files/lib/locale/tag_rb.html +0 -378
  53. data/doc/files/lib/locale/taglist_rb.html +0 -348
  54. data/doc/files/lib/locale/util/memoizable_rb.html +0 -359
  55. data/doc/files/lib/locale/version_rb.html +0 -341
  56. data/doc/files/lib/locale_rb.html +0 -363
  57. data/doc/fr_class_index.html +0 -22
  58. data/doc/fr_file_index.html +0 -23
  59. data/doc/fr_method_index.html +0 -99
  60. data/doc/index.html +0 -1
  61. data/doc/rdoc-style.css +0 -320
  62. data/lib/locale/util/memoizable.rb.20090328 +0 -96
  63. data/lib/locale/util/memoizable.rb.old +0 -91
  64. data/replace.rb +0 -21
  65. data/test.rb +0 -28
  66. data/test/test.rb +0 -7
  67. data/test/tmp.txt +0 -20
  68. data/test2.rb +0 -14
  69. data/test3.rb +0 -12
@@ -1,374 +0,0 @@
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::Driver</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::Driver
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/driver/env_rb.html">lib/locale/driver/env.rb</a>
325
-
326
-
327
- <a href="../../files/lib/locale/driver/jruby_rb.html">lib/locale/driver/jruby.rb</a>
328
-
329
-
330
- <a href="../../files/lib/locale/driver/posix_rb.html">lib/locale/driver/posix.rb</a>
331
-
332
-
333
- <a href="../../files/lib/locale/driver/win32_table_rb.html">lib/locale/driver/win32_table.rb</a>
334
-
335
-
336
- <a href="../../files/lib/locale/driver/win32_rb.html">lib/locale/driver/win32.rb</a>
337
-
338
-
339
- <a href="../../files/lib/locale/driver/cgi_rb.html">lib/locale/driver/cgi.rb</a>
340
-
341
- </div>
342
-
343
-
344
-
345
- <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">
346
- <h1 id="item_name">Module: Locale::Driver</h1>
347
-
348
- <div id="description"><p>
349
- <a href="Driver.html">Locale::Driver</a> module for <a
350
- href="Driver/CGI.html">CGI</a>. Detect the user locales and the charset
351
- from <a href="Driver/CGI.html">CGI</a> parameters. This is a low-level
352
- class. Application shouldn&#8216;t use this directly.
353
- </p>
354
- </div>
355
-
356
-
357
-
358
-
359
- <p></p>
360
-
361
- <h1>Child modules and classes</h1><p>Module <a href="Driver/CGI.html" class="link">Locale::Driver::CGI</a><br />
362
- Module <a href="Driver/Env.html" class="link">Locale::Driver::Env</a><br />
363
- Module <a href="Driver/JRuby.html" class="link">Locale::Driver::JRuby</a><br />
364
- Module <a href="Driver/Posix.html" class="link">Locale::Driver::Posix</a><br />
365
- Module <a href="Driver/Win32.html" class="link">Locale::Driver::Win32</a><br />
366
- Module <a href="Driver/Win32Table.html" class="link">Locale::Driver::Win32Table</a><br />
367
- </p>
368
-
369
-
370
-
371
-
372
-
373
-
374
- </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>
@@ -1,536 +0,0 @@
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::Driver::CGI</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::Driver::CGI
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/driver/cgi_rb.html">lib/locale/driver/cgi.rb</a>
325
-
326
- </div>
327
-
328
-
329
-
330
- <div class="navigation top" id="methods"><h3>Methods</h3>
331
-
332
-
333
- <a href='#M000076'>
334
- charset<br/>
335
- </a>
336
-
337
-
338
-
339
-
340
- <a href='#M000078'>
341
- clear_current_request<br/>
342
- </a>
343
-
344
-
345
-
346
-
347
- <a href='#M000075'>
348
- locales<br/>
349
- </a>
350
-
351
-
352
-
353
-
354
- <a href='#M000077'>
355
- set_request<br/>
356
- </a>
357
-
358
-
359
- </div>
360
- <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">
361
- <h1 id="item_name">Module: Locale::Driver::CGI</h1>
362
-
363
-
364
-
365
-
366
-
367
- <p></p>
368
-
369
-
370
-
371
-
372
-
373
-
374
- <h1>Public Instance Methods</h1>
375
-
376
-
377
- <a class="small" name="M000076"><br/></a>
378
- <div class="method_block"><h3>
379
- <a href='#M000076'>
380
-
381
-
382
- charset
383
-
384
- ()
385
-
386
- </a>
387
- </h3>
388
- <p>
389
- Gets the <a href="CGI.html#M000076">charset</a> from <a
390
- href="CGI.html">CGI</a> parameters. (Based on RFC2616)
391
- </p>
392
- <pre>
393
- * Returns: the charset (HTTP_ACCEPT_CHARSET or nil).
394
- </pre>
395
-
396
- <p class="source_link" id="M000076-show-link"><a href="#" onclick="toggle('M000076-source'); toggleText('M000076-link'); return false;" id="M000076-link">Show source...</a></p><div class="source" id="M000076-source"><pre> <span class="ruby-comment cmt"># File lib/locale/driver/cgi.rb, line 62</span>
397
- 62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">charset</span>
398
- 63: <span class="ruby-identifier">req</span> = <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:current_request</span>]
399
- 64: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">req</span>
400
- 65:
401
- 66: <span class="ruby-identifier">charsets</span> = <span class="ruby-identifier">req</span>[<span class="ruby-identifier">:accept_charset</span>]
402
- 67: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">charsets</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">charsets</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
403
- 68: <span class="ruby-identifier">num</span> = <span class="ruby-identifier">charsets</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">','</span>)
404
- 69: <span class="ruby-identifier">charset</span> = <span class="ruby-identifier">num</span> <span class="ruby-value">? </span><span class="ruby-identifier">charsets</span>[<span class="ruby-value">0</span>, <span class="ruby-identifier">num</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">charsets</span>
405
- 70: <span class="ruby-identifier">charset</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">charset</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;*&quot;</span>
406
- 71: <span class="ruby-keyword kw">else</span>
407
- 72: <span class="ruby-identifier">charset</span> = <span class="ruby-keyword kw">nil</span>
408
- 73: <span class="ruby-keyword kw">end</span>
409
- 74: <span class="ruby-identifier">charset</span>
410
- 75: <span class="ruby-keyword kw">end</span></pre></div>
411
- </div>
412
-
413
- <a class="small" name="M000078"><br/></a>
414
- <div class="method_block"><h3>
415
- <a href='#M000078'>
416
-
417
-
418
- clear_current_request
419
-
420
- ()
421
-
422
- </a>
423
- </h3>
424
- <p>
425
- Clear the current request.
426
- </p>
427
-
428
- <p class="source_link" id="M000078-show-link"><a href="#" onclick="toggle('M000078-source'); toggleText('M000078-link'); return false;" id="M000078-link">Show source...</a></p><div class="source" id="M000078-source"><pre> <span class="ruby-comment cmt"># File lib/locale/driver/cgi.rb, line 94</span>
429
- 94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_current_request</span>
430
- 95: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:current_request</span>] = <span class="ruby-keyword kw">nil</span>
431
- 96: <span class="ruby-keyword kw">end</span></pre></div>
432
- </div>
433
-
434
- <a class="small" name="M000075"><br/></a>
435
- <div class="method_block"><h3>
436
- <a href='#M000075'>
437
-
438
-
439
- locales
440
-
441
- ()
442
-
443
- </a>
444
- </h3>
445
- <p>
446
- Gets required <a href="CGI.html#M000075">locales</a> from <a
447
- href="CGI.html">CGI</a> parameters. (Based on RFC2616)
448
- </p>
449
- <p>
450
- Returns: An Array of <a href="../Tag.html">Locale::Tag</a>&#8216;s
451
- subclasses
452
- </p>
453
- <pre>
454
- (QUERY_STRING &quot;lang&quot; &gt; COOKIE &quot;lang&quot; &gt; HTTP_ACCEPT_LANGUAGE &gt; &quot;en&quot;)
455
- </pre>
456
-
457
- <p class="source_link" id="M000075-show-link"><a href="#" onclick="toggle('M000075-source'); toggleText('M000075-link'); return false;" id="M000075-link">Show source...</a></p><div class="source" id="M000075-source"><pre> <span class="ruby-comment cmt"># File lib/locale/driver/cgi.rb, line 28</span>
458
- 28: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">locales</span>
459
- 29: <span class="ruby-identifier">req</span> = <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:current_request</span>]
460
- 30: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">req</span>
461
- 31:
462
- 32: <span class="ruby-identifier">locales</span> = []
463
- 33:
464
- 34: <span class="ruby-comment cmt"># QUERY_STRING &quot;lang&quot;</span>
465
- 35: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">langs</span> = <span class="ruby-identifier">req</span>[<span class="ruby-identifier">:query_langs</span>]
466
- 36: <span class="ruby-identifier">langs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">lang</span><span class="ruby-operator">|</span>
467
- 37: <span class="ruby-identifier">locales</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Locale</span><span class="ruby-operator">::</span><span class="ruby-constant">Tag</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">lang</span>)
468
- 38: <span class="ruby-keyword kw">end</span>
469
- 39: <span class="ruby-keyword kw">end</span>
470
- 40:
471
- 41: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">locales</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
472
- 42: <span class="ruby-comment cmt"># COOKIE &quot;lang&quot;</span>
473
- 43: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">langs</span> = <span class="ruby-identifier">req</span>[<span class="ruby-identifier">:cookie_langs</span>]
474
- 44: <span class="ruby-identifier">langs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">lang</span><span class="ruby-operator">|</span>
475
- 45: <span class="ruby-identifier">locales</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Locale</span><span class="ruby-operator">::</span><span class="ruby-constant">Tag</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">lang</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lang</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
476
- 46: <span class="ruby-keyword kw">end</span>
477
- 47: <span class="ruby-keyword kw">end</span>
478
- 48: <span class="ruby-keyword kw">end</span>
479
- 49:
480
- 50: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">locales</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
481
- 51: <span class="ruby-comment cmt"># HTTP_ACCEPT_LANGUAGE</span>
482
- 52: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lang</span> = <span class="ruby-identifier">req</span>[<span class="ruby-identifier">:accept_language</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">lang</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
483
- 53: <span class="ruby-identifier">locales</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">lang</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\s/</span>, <span class="ruby-value str">&quot;&quot;</span>).<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/,/</span>).<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;;q=&quot;</span>)}.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span> [<span class="ruby-identifier">j</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">j</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">j</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">to_f</span> <span class="ruby-operator">:</span> <span class="ruby-value">1.0</span>]}.<span class="ruby-identifier">sort</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-operator">-</span>(<span class="ruby-identifier">a</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">1</span>])}.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-constant">Locale</span><span class="ruby-operator">::</span><span class="ruby-constant">Tag</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">v</span>[<span class="ruby-value">0</span>])}
484
- 54: <span class="ruby-keyword kw">end</span>
485
- 55: <span class="ruby-keyword kw">end</span>
486
- 56:
487
- 57: <span class="ruby-identifier">locales</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-constant">Locale</span><span class="ruby-operator">::</span><span class="ruby-constant">TagList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">locales</span>.<span class="ruby-identifier">uniq</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
488
- 58: <span class="ruby-keyword kw">end</span></pre></div>
489
- </div>
490
-
491
- <a class="small" name="M000077"><br/></a>
492
- <div class="method_block"><h3>
493
- <a href='#M000077'>
494
-
495
-
496
- set_request
497
-
498
- (query_langs, cookie_langs, accept_language, accept_charset)
499
-
500
- </a>
501
- </h3>
502
- <p>
503
- Set a request.
504
- </p>
505
- <ul>
506
- <li>query_langs: An Array of QUERY_STRING value &quot;lang&quot;.
507
-
508
- </li>
509
- <li>cookie_langs: An Array of cookie value &quot;lang&quot;.
510
-
511
- </li>
512
- <li>accept_language: The value of HTTP_ACCEPT_LANGUAGE
513
-
514
- </li>
515
- <li>accept_charset: The value of HTTP_ACCEPT_CHARSET
516
-
517
- </li>
518
- </ul>
519
-
520
- <p class="source_link" id="M000077-show-link"><a href="#" onclick="toggle('M000077-source'); toggleText('M000077-link'); return false;" id="M000077-link">Show source...</a></p><div class="source" id="M000077-source"><pre> <span class="ruby-comment cmt"># File lib/locale/driver/cgi.rb, line 83</span>
521
- 83: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_request</span>(<span class="ruby-identifier">query_langs</span>, <span class="ruby-identifier">cookie_langs</span>, <span class="ruby-identifier">accept_language</span>, <span class="ruby-identifier">accept_charset</span>)
522
- 84: <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:current_request</span>] = {
523
- 85: <span class="ruby-identifier">:query_langs</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">query_langs</span>,
524
- 86: <span class="ruby-identifier">:cookie_langs</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">cookie_langs</span>,
525
- 87: <span class="ruby-identifier">:accept_language</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">accept_language</span>,
526
- 88: <span class="ruby-identifier">:accept_charset</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">accept_charset</span>
527
- 89: }
528
- 90: <span class="ruby-keyword kw">self</span>
529
- 91: <span class="ruby-keyword kw">end</span></pre></div>
530
- </div>
531
-
532
-
533
-
534
-
535
-
536
- </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>