twitter_cldr_js 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. data/Gemfile +5 -0
  2. data/History.txt +11 -1
  3. data/README.md +103 -13
  4. data/Rakefile +1 -1
  5. data/lib/assets/javascripts/twitter_cldr/af.js +1815 -0
  6. data/lib/assets/javascripts/twitter_cldr/ar.js +1815 -0
  7. data/lib/assets/javascripts/twitter_cldr/be.js +1815 -0
  8. data/lib/assets/javascripts/twitter_cldr/bg.js +1815 -0
  9. data/lib/assets/javascripts/twitter_cldr/bn.js +1815 -0
  10. data/lib/assets/javascripts/twitter_cldr/ca.js +1815 -0
  11. data/lib/assets/javascripts/twitter_cldr/cs.js +1815 -0
  12. data/lib/assets/javascripts/twitter_cldr/cy.js +1815 -0
  13. data/lib/assets/javascripts/twitter_cldr/da.js +1815 -0
  14. data/lib/assets/javascripts/twitter_cldr/de.js +1815 -0
  15. data/lib/assets/javascripts/twitter_cldr/el.js +1815 -0
  16. data/lib/assets/javascripts/twitter_cldr/en.js +1815 -0
  17. data/lib/assets/javascripts/twitter_cldr/es.js +1815 -0
  18. data/lib/assets/javascripts/twitter_cldr/eu.js +1815 -0
  19. data/lib/assets/javascripts/twitter_cldr/fa.js +1815 -0
  20. data/lib/assets/javascripts/twitter_cldr/fi.js +1815 -0
  21. data/lib/assets/javascripts/twitter_cldr/fil.js +1815 -0
  22. data/lib/assets/javascripts/twitter_cldr/fr.js +1815 -0
  23. data/lib/assets/javascripts/twitter_cldr/ga.js +1815 -0
  24. data/lib/assets/javascripts/twitter_cldr/gl.js +1815 -0
  25. data/lib/assets/javascripts/twitter_cldr/he.js +1815 -0
  26. data/lib/assets/javascripts/twitter_cldr/hi.js +1815 -0
  27. data/lib/assets/javascripts/twitter_cldr/hu.js +1815 -0
  28. data/lib/assets/javascripts/twitter_cldr/id.js +1815 -0
  29. data/lib/assets/javascripts/twitter_cldr/it.js +1815 -0
  30. data/lib/assets/javascripts/twitter_cldr/ja.js +1815 -0
  31. data/lib/assets/javascripts/twitter_cldr/ko.js +1815 -0
  32. data/lib/assets/javascripts/twitter_cldr/lv.js +1815 -0
  33. data/lib/assets/javascripts/twitter_cldr/msa.js +1815 -0
  34. data/lib/assets/javascripts/twitter_cldr/nl.js +1815 -0
  35. data/lib/assets/javascripts/twitter_cldr/no.js +1815 -0
  36. data/lib/assets/javascripts/twitter_cldr/pl.js +1815 -0
  37. data/lib/assets/javascripts/twitter_cldr/pt.js +1815 -0
  38. data/lib/assets/javascripts/twitter_cldr/ro.js +1815 -0
  39. data/lib/assets/javascripts/twitter_cldr/ru.js +1815 -0
  40. data/lib/assets/javascripts/twitter_cldr/sk.js +1815 -0
  41. data/lib/assets/javascripts/twitter_cldr/sq.js +1815 -0
  42. data/lib/assets/javascripts/twitter_cldr/sr.js +1815 -0
  43. data/lib/assets/javascripts/twitter_cldr/sv.js +1815 -0
  44. data/lib/assets/javascripts/twitter_cldr/ta.js +1815 -0
  45. data/lib/assets/javascripts/twitter_cldr/th.js +1815 -0
  46. data/lib/assets/javascripts/twitter_cldr/tr.js +1815 -0
  47. data/lib/assets/javascripts/twitter_cldr/uk.js +1815 -0
  48. data/lib/assets/javascripts/twitter_cldr/ur.js +1815 -0
  49. data/lib/assets/javascripts/twitter_cldr/zh-cn.js +1815 -0
  50. data/lib/assets/javascripts/twitter_cldr/zh-tw.js +1815 -0
  51. data/lib/twitter_cldr/js/compiler.rb +12 -3
  52. data/lib/twitter_cldr/js/mustache/bundle.coffee +19 -1
  53. data/lib/twitter_cldr/js/mustache/calendars/additional_date_format_selector.coffee +85 -0
  54. data/lib/twitter_cldr/js/mustache/calendars/datetime.coffee +248 -226
  55. data/lib/twitter_cldr/js/mustache/calendars/timespan.coffee +19 -18
  56. data/lib/twitter_cldr/js/mustache/numbers/numbers.coffee +62 -19
  57. data/lib/twitter_cldr/js/mustache/plurals/rules.coffee +1 -1
  58. data/lib/twitter_cldr/js/mustache/shared/bidi.coffee +433 -0
  59. data/lib/twitter_cldr/js/mustache/shared/calendar.coffee +25 -0
  60. data/lib/twitter_cldr/js/mustache/shared/currencies.coffee +5 -11
  61. data/lib/twitter_cldr/js/mustache/shared/lists.coffee +40 -0
  62. data/lib/twitter_cldr/js/mustache/shared/prerender/bidi_classes.json +1 -0
  63. data/lib/twitter_cldr/js/mustache/utilities.coffee +87 -0
  64. data/lib/twitter_cldr/js/renderers.rb +23 -19
  65. data/lib/twitter_cldr/js/renderers/bundle.rb +8 -2
  66. data/lib/twitter_cldr/js/renderers/calendars/additional_date_format_selector_renderer.rb +18 -0
  67. data/lib/twitter_cldr/js/renderers/calendars/datetime_renderer.rb +13 -9
  68. data/lib/twitter_cldr/js/renderers/numbers/numbers_renderer.rb +17 -3
  69. data/lib/twitter_cldr/js/renderers/shared/bidi_renderer.rb +77 -0
  70. data/lib/twitter_cldr/js/renderers/shared/calendar_renderer.rb +20 -0
  71. data/lib/twitter_cldr/js/renderers/shared/currencies_renderer.rb +2 -2
  72. data/lib/twitter_cldr/js/renderers/shared/list_renderer.rb +22 -0
  73. data/lib/twitter_cldr/js/tasks/tasks.rake +9 -5
  74. data/lib/twitter_cldr/js/tasks/tasks.rb +6 -5
  75. data/lib/twitter_cldr/js/version.rb +1 -1
  76. data/spec/js/calendars/additional_date_format_selector.spec.js +126 -0
  77. data/spec/js/calendars/datetime.spec.js +29 -2
  78. data/spec/js/calendars/timespan.spec.js +45 -1
  79. data/spec/js/numbers/abbreviated/abbreviated_number.spec.js +47 -0
  80. data/spec/js/numbers/abbreviated/long_decimal.spec.js +57 -0
  81. data/spec/js/numbers/abbreviated/short_decimal.spec.js +57 -0
  82. data/spec/js/numbers/currency.spec.js +2 -2
  83. data/spec/js/numbers/decimal.spec.js +1 -1
  84. data/spec/js/numbers/helpers/fraction.spec.js +1 -1
  85. data/spec/js/numbers/helpers/integer.spec.js +1 -1
  86. data/spec/js/numbers/number.spec.js +1 -1
  87. data/spec/js/numbers/percent.spec.js +1 -1
  88. data/spec/js/plurals/plural_rules.spec.js +1 -1
  89. data/spec/js/shared/bidi.spec.js +105 -0
  90. data/spec/js/shared/calendar.spec.js +51 -0
  91. data/spec/js/shared/classpath_bidi_test.txt +217202 -0
  92. data/spec/js/shared/lists.spec.js +100 -0
  93. data/spec/js/utilities.spec.js +120 -0
  94. data/twitter_cldr_js.gemspec +1 -1
  95. metadata +68 -37
  96. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_af.js +0 -887
  97. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_ar.js +0 -887
  98. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_ca.js +0 -887
  99. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_cs.js +0 -887
  100. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_da.js +0 -887
  101. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_de.js +0 -887
  102. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_el.js +0 -887
  103. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_en.js +0 -887
  104. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_es.js +0 -887
  105. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_eu.js +0 -887
  106. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_fa.js +0 -887
  107. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_fi.js +0 -887
  108. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_fil.js +0 -887
  109. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_fr.js +0 -887
  110. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_he.js +0 -887
  111. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_hi.js +0 -887
  112. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_hu.js +0 -887
  113. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_id.js +0 -887
  114. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_it.js +0 -887
  115. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_ja.js +0 -887
  116. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_ko.js +0 -887
  117. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_msa.js +0 -887
  118. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_nl.js +0 -887
  119. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_no.js +0 -887
  120. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_pl.js +0 -887
  121. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_pt.js +0 -887
  122. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_ru.js +0 -887
  123. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_sv.js +0 -887
  124. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_th.js +0 -887
  125. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_tr.js +0 -887
  126. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_uk.js +0 -887
  127. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_ur.js +0 -887
  128. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_zh-cn.js +0 -887
  129. data/lib/assets/javascripts/twitter_cldr/twitter_cldr_zh-tw.js +0 -887
@@ -1,887 +0,0 @@
1
- /*
2
- // Copyright 2012 Twitter, Inc
3
- // http://www.apache.org/licenses/LICENSE-2.0
4
-
5
- // TwitterCLDR (JavaScript) v1.8.0
6
- // Authors: Cameron Dutro [@camertron]
7
- Kirill Lashuk [@KL_7]
8
- portions by Sven Fuchs [@svenfuchs]
9
- // Homepage: https://twitter.com
10
- // Description: Provides date, time, number, and list formatting functionality for various Twitter-supported locales in Javascript.
11
- */
12
-
13
- var BaseHelper, Currencies, CurrencyFormatter, DateTimeFormatter, DecimalFormatter, FractionHelper, IntegerHelper, NumberFormatter, PercentFormatter, PluralRules, TimespanFormatter, TwitterCldr, key, obj,
14
- __hasProp = {}.hasOwnProperty,
15
- __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
16
-
17
- TwitterCldr = {};
18
-
19
- TwitterCldr.PluralRules = PluralRules = (function() {
20
-
21
- function PluralRules() {}
22
-
23
- PluralRules.rules = {"keys": ["one","other"], "rule": function(n) { return (function() { if (n == 1) { return "one" } else { return "other" } })(); }};
24
-
25
- PluralRules.all = function() {
26
- return this.rules.keys;
27
- };
28
-
29
- PluralRules.rule_for = function(number) {
30
- try {
31
- return this.rules.rule(number);
32
- } catch (error) {
33
- return "other";
34
- }
35
- };
36
-
37
- return PluralRules;
38
-
39
- })();
40
-
41
- TwitterCldr.TimespanFormatter = TimespanFormatter = (function() {
42
-
43
- function TimespanFormatter() {
44
- this.default_type = "default";
45
- this.tokens = {"ago":{"second":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" second ago","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" seconds ago","type":"plaintext"}]}},"minute":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" minute ago","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" minutes ago","type":"plaintext"}]}},"hour":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" hour ago","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" hours ago","type":"plaintext"}]}},"day":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" day ago","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" days ago","type":"plaintext"}]}},"week":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" week ago","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" weeks ago","type":"plaintext"}]}},"month":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" month ago","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" months ago","type":"plaintext"}]}},"year":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" year ago","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" years ago","type":"plaintext"}]}}},"until":{"second":{"default":{"one":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" second","type":"plaintext"}],"other":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" seconds","type":"plaintext"}]}},"minute":{"default":{"one":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" minute","type":"plaintext"}],"other":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" minutes","type":"plaintext"}]}},"hour":{"default":{"one":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" hour","type":"plaintext"}],"other":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" hours","type":"plaintext"}]}},"day":{"default":{"one":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" day","type":"plaintext"}],"other":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" days","type":"plaintext"}]}},"week":{"default":{"one":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" week","type":"plaintext"}],"other":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" weeks","type":"plaintext"}]}},"month":{"default":{"one":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" month","type":"plaintext"}],"other":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" months","type":"plaintext"}]}},"year":{"default":{"one":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" year","type":"plaintext"}],"other":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" years","type":"plaintext"}]}}},"none":{"second":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" second","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" seconds","type":"plaintext"}]},"short":{"one":[{"value":"{0}","type":"placeholder"},{"value":" sec","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" secs","type":"plaintext"}]}},"minute":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" minute","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" minutes","type":"plaintext"}]},"short":{"one":[{"value":"{0}","type":"placeholder"},{"value":" min","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" mins","type":"plaintext"}]}},"hour":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" hour","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" hours","type":"plaintext"}]},"short":{"one":[{"value":"{0}","type":"placeholder"},{"value":" hr","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" hrs","type":"plaintext"}]}},"day":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" day","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" days","type":"plaintext"}]},"short":{"one":[{"value":"{0}","type":"placeholder"},{"value":" day","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" days","type":"plaintext"}]}},"week":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" week","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" weeks","type":"plaintext"}]},"short":{"one":[{"value":"{0}","type":"placeholder"},{"value":" wk","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" wks","type":"plaintext"}]}},"month":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" month","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" months","type":"plaintext"}]},"short":{"one":[{"value":"{0}","type":"placeholder"},{"value":" mth","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" mths","type":"plaintext"}]}},"year":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" year","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" years","type":"plaintext"}]},"short":{"one":[{"value":"{0}","type":"placeholder"},{"value":" yr","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" yrs","type":"plaintext"}]}}}};
46
- this.time_in_seconds = {
47
- "second": 1,
48
- "minute": 60,
49
- "hour": 3600,
50
- "day": 86400,
51
- "week": 604800,
52
- "month": 2629743.83,
53
- "year": 31556926
54
- };
55
- }
56
-
57
- TimespanFormatter.prototype.format = function(seconds, options) {
58
- var number, strings, token;
59
- if (options == null) {
60
- options = {};
61
- }
62
- options["direction"] || (options["direction"] = (seconds < 0 ? "ago" : "until"));
63
- if (options["unit"] === null || options["unit"] === void 0) {
64
- options["unit"] = this.calculate_unit(Math.abs(seconds));
65
- }
66
- options["type"] || (options["type"] = this.default_type);
67
- options["number"] = this.calculate_time(Math.abs(seconds), options["unit"]);
68
- number = this.calculate_time(Math.abs(seconds), options["unit"]);
69
- options["rule"] = TwitterCldr.PluralRules.rule_for(number);
70
- strings = (function() {
71
- var _i, _len, _ref, _results;
72
- _ref = this.tokens[options["direction"]][options["unit"]][options["type"]][options["rule"]];
73
- _results = [];
74
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
75
- token = _ref[_i];
76
- _results.push(token.value);
77
- }
78
- return _results;
79
- }).call(this);
80
- return strings.join("").replace(/\{[0-9]\}/, number.toString());
81
- };
82
-
83
- TimespanFormatter.prototype.calculate_unit = function(seconds) {
84
- if (seconds < 30) {
85
- return "second";
86
- } else if (seconds < 2670) {
87
- return "minute";
88
- } else if (seconds < 86369) {
89
- return "hour";
90
- } else if (seconds < 604800) {
91
- return "day";
92
- } else if (seconds < 2591969) {
93
- return "week";
94
- } else if (seconds < 31556926) {
95
- return "month";
96
- } else {
97
- return "year";
98
- }
99
- };
100
-
101
- TimespanFormatter.prototype.calculate_time = function(seconds, unit) {
102
- return Math.round(seconds / this.time_in_seconds[unit]);
103
- };
104
-
105
- return TimespanFormatter;
106
-
107
- })();
108
-
109
- TwitterCldr.DateTimeFormatter = DateTimeFormatter = (function() {
110
-
111
- function DateTimeFormatter() {
112
- this.tokens = {"date_time":{"default":[{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"full":[{"value":"EEEE","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"MMMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"zzzz","type":"pattern"}],"long":[{"value":"MMMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"z","type":"pattern"}],"medium":[{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"short":[{"value":"M","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"d","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"yy","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}]},"time":{"default":[{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"full":[{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"zzzz","type":"pattern"}],"long":[{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"z","type":"pattern"}],"medium":[{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"short":[{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}]},"date":{"default":[{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"y","type":"pattern"}],"full":[{"value":"EEEE","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"MMMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"y","type":"pattern"}],"long":[{"value":"MMMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"y","type":"pattern"}],"medium":[{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"y","type":"pattern"}],"short":[{"value":"M","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"d","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"yy","type":"pattern"}]}};
113
- this.calendar = {"days":{"format":{"abbreviated":{"fri":"Fri","mon":"Mon","sat":"Sat","sun":"Sun","thu":"Thu","tue":"Tue","wed":"Wed"},"narrow":{"fri":"F","mon":"M","sat":"S","sun":"S","thu":"T","tue":"T","wed":"W"},"wide":{"fri":"Friday","mon":"Monday","sat":"Saturday","sun":"Sunday","thu":"Thursday","tue":"Tuesday","wed":"Wednesday"}},"stand-alone":{"abbreviated":{"fri":"Fri","mon":"Mon","sat":"Sat","sun":"Sun","thu":"Thu","tue":"Tue","wed":"Wed"},"narrow":{"fri":"F","mon":"M","sat":"S","sun":"S","thu":"T","tue":"T","wed":"W"},"wide":{"fri":"Friday","mon":"Monday","sat":"Saturday","sun":"Sunday","thu":"Thursday","tue":"Tuesday","wed":"Wednesday"}}},"eras":{"abbr":{"0":"BC","1":"AD"},"name":{"0":"Before Christ","1":"Anno Domini"},"narrow":{"0":"B","1":"A"}},"fields":{"day":"Day","dayperiod":"AM/PM","era":"Era","hour":"Hour","minute":"Minute","month":"Month","second":"Second","week":"Week","weekday":"Day of the Week","year":"Year","zone":"Time Zone"},"formats":{"date":{"default":{"pattern":"MMM d, y"},"full":{"pattern":"EEEE, MMMM d, y"},"long":{"pattern":"MMMM d, y"},"medium":{"pattern":"MMM d, y"},"short":{"pattern":"M/d/yy"}},"datetime":{"default":{"pattern":"{{date}} {{time}}"},"full":{"pattern":"{{date}} {{time}}"},"long":{"pattern":"{{date}} {{time}}"},"medium":{"pattern":"{{date}} {{time}}"},"short":{"pattern":"{{date}} {{time}}"}},"time":{"default":{"pattern":"h:mm:ss a"},"full":{"pattern":"h:mm:ss a zzzz"},"long":{"pattern":"h:mm:ss a z"},"medium":{"pattern":"h:mm:ss a"},"short":{"pattern":"h:mm a"}}},"months":{"format":{"abbreviated":{"1":"Jan","10":"Oct","11":"Nov","12":"Dec","2":"Feb","3":"Mar","4":"Apr","5":"May","6":"Jun","7":"Jul","8":"Aug","9":"Sep"},"narrow":{"1":"J","10":"O","11":"N","12":"D","2":"F","3":"M","4":"A","5":"M","6":"J","7":"J","8":"A","9":"S"},"wide":{"1":"January","10":"October","11":"November","12":"December","2":"February","3":"March","4":"April","5":"May","6":"June","7":"July","8":"August","9":"September"}},"stand-alone":{"abbreviated":{"1":"Jan","10":"Oct","11":"Nov","12":"Dec","2":"Feb","3":"Mar","4":"Apr","5":"May","6":"Jun","7":"Jul","8":"Aug","9":"Sep"},"narrow":{"1":"J","10":"O","11":"N","12":"D","2":"F","3":"M","4":"A","5":"M","6":"J","7":"J","8":"A","9":"S"},"wide":{"1":"January","10":"October","11":"November","12":"December","2":"February","3":"March","4":"April","5":"May","6":"June","7":"July","8":"August","9":"September"}}},"periods":{"format":{"abbreviated":null,"narrow":{"am":"a","noon":"n","pm":"p"},"wide":{"am":"a.m.","noon":"noon","pm":"p.m."}},"stand-alone":{}},"quarters":{"format":{"abbreviated":{"1":"Q1","2":"Q2","3":"Q3","4":"Q4"},"narrow":{"1":1,"2":2,"3":3,"4":4},"wide":{"1":"1st quarter","2":"2nd quarter","3":"3rd quarter","4":"4th quarter"}},"stand-alone":{"abbreviated":{"1":"Q1","2":"Q2","3":"Q3","4":"Q4"},"narrow":{"1":1,"2":2,"3":3,"4":4},"wide":{"1":"1st quarter","2":"2nd quarter","3":"3rd quarter","4":"4th quarter"}}}};
114
- this.weekday_keys = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
115
- this.methods = {
116
- 'G': 'era',
117
- 'y': 'year',
118
- 'Y': 'year_of_week_of_year',
119
- 'Q': 'quarter',
120
- 'q': 'quarter_stand_alone',
121
- 'M': 'month',
122
- 'L': 'month_stand_alone',
123
- 'w': 'week_of_year',
124
- 'W': 'week_of_month',
125
- 'd': 'day',
126
- 'D': 'day_of_month',
127
- 'F': 'day_of_week_in_month',
128
- 'E': 'weekday',
129
- 'e': 'weekday_local',
130
- 'c': 'weekday_local_stand_alone',
131
- 'a': 'period',
132
- 'h': 'hour',
133
- 'H': 'hour',
134
- 'K': 'hour',
135
- 'k': 'hour',
136
- 'm': 'minute',
137
- 's': 'second',
138
- 'S': 'second_fraction',
139
- 'z': 'timezone',
140
- 'Z': 'timezone',
141
- 'v': 'timezone_generic_non_location',
142
- 'V': 'timezone_metazone'
143
- };
144
- }
145
-
146
- DateTimeFormatter.prototype.format = function(obj, options) {
147
- var format_token, token, tokens,
148
- _this = this;
149
- format_token = function(token) {
150
- var result;
151
- result = "";
152
- switch (token.type) {
153
- case "pattern":
154
- return _this.result_for_token(token, obj);
155
- default:
156
- if (token.value.length > 0 && token.value[0] === "'" && token.value[token.value.length - 1] === "'") {
157
- return token.value.substring(1, token.value.length - 1);
158
- } else {
159
- return token.value;
160
- }
161
- }
162
- };
163
- tokens = this.get_tokens(obj, options);
164
- return ((function() {
165
- var _i, _len, _results;
166
- _results = [];
167
- for (_i = 0, _len = tokens.length; _i < _len; _i++) {
168
- token = tokens[_i];
169
- _results.push(format_token(token));
170
- }
171
- return _results;
172
- })()).join("");
173
- };
174
-
175
- DateTimeFormatter.prototype.get_tokens = function(obj, options) {
176
- return this.tokens[options.format || "date_time"][options.type || "default"];
177
- };
178
-
179
- DateTimeFormatter.prototype.result_for_token = function(token, date) {
180
- return this[this.methods[token.value[0]]](date, token.value, token.value.length);
181
- };
182
-
183
- DateTimeFormatter.prototype.era = function(date, pattern, length) {
184
- var choices, index;
185
- switch (length) {
186
- case 1:
187
- case 2:
188
- case 3:
189
- choices = this.calendar["eras"]["abbr"];
190
- break;
191
- default:
192
- choices = this.calendar["eras"]["name"];
193
- }
194
- index = date.getFullYear() < 0 ? 0 : 1;
195
- return choices[index];
196
- };
197
-
198
- DateTimeFormatter.prototype.year = function(date, pattern, length) {
199
- var year;
200
- year = date.getFullYear().toString();
201
- if (length === 2) {
202
- if (year.length !== 1) {
203
- year = year.slice(-2);
204
- }
205
- }
206
- if (length > 1) {
207
- year = ("0000" + year).slice(-length);
208
- }
209
- return year;
210
- };
211
-
212
- DateTimeFormatter.prototype.year_of_week_of_year = function(date, pattern, length) {
213
- throw 'not implemented';
214
- };
215
-
216
- DateTimeFormatter.prototype.day_of_week_in_month = function(date, pattern, length) {
217
- throw 'not implemented';
218
- };
219
-
220
- DateTimeFormatter.prototype.quarter = function(date, pattern, length) {
221
- var quarter;
222
- quarter = ((date.getMonth() / 3) | 0) + 1;
223
- switch (length) {
224
- case 1:
225
- return quarter.toString();
226
- case 2:
227
- return ("0000" + quarter.toString()).slice(-length);
228
- case 3:
229
- return this.calendar.quarters.format.abbreviated[quarter];
230
- case 4:
231
- return this.calendar.quarters.format.wide[quarter];
232
- }
233
- };
234
-
235
- DateTimeFormatter.prototype.quarter_stand_alone = function(date, pattern, length) {
236
- var quarter;
237
- quarter = (date.getMonth() - 1) / 3 + 1;
238
- switch (length) {
239
- case 1:
240
- return quarter.toString();
241
- case 2:
242
- return ("0000" + quarter.toString()).slice(-length);
243
- case 3:
244
- throw 'not yet implemented (requires cldr\'s "multiple inheritance")';
245
- break;
246
- case 4:
247
- throw 'not yet implemented (requires cldr\'s "multiple inheritance")';
248
- break;
249
- case 5:
250
- return this.calendar.quarters['stand-alone'].narrow[quarter];
251
- }
252
- };
253
-
254
- DateTimeFormatter.prototype.month = function(date, pattern, length) {
255
- var month_str;
256
- month_str = (date.getMonth() + 1).toString();
257
- switch (length) {
258
- case 1:
259
- return month_str;
260
- case 2:
261
- return ("0000" + month_str).slice(-length);
262
- case 3:
263
- return this.calendar.months.format.abbreviated[month_str];
264
- case 4:
265
- return this.calendar.months.format.wide[month_str];
266
- case 5:
267
- throw 'not yet implemented (requires cldr\'s "multiple inheritance")';
268
- break;
269
- default:
270
- throw "Unknown date format";
271
- }
272
- };
273
-
274
- DateTimeFormatter.prototype.month_stand_alone = function(date, pattern, length) {
275
- switch (length) {
276
- case 1:
277
- return date.getMonth().toString();
278
- case 2:
279
- return ("0000" + date.getMonth().toString()).slice(-length);
280
- case 3:
281
- throw 'not yet implemented (requires cldr\'s "multiple inheritance")';
282
- break;
283
- case 4:
284
- throw 'not yet implemented (requires cldr\'s "multiple inheritance")';
285
- break;
286
- case 5:
287
- return this.calendar.months['stand-alone'].narrow[date.month];
288
- default:
289
- throw "Unknown date format";
290
- }
291
- };
292
-
293
- DateTimeFormatter.prototype.day = function(date, pattern, length) {
294
- switch (length) {
295
- case 1:
296
- return date.getDate().toString();
297
- case 2:
298
- return ("0000" + date.getDate().toString()).slice(-length);
299
- }
300
- };
301
-
302
- DateTimeFormatter.prototype.weekday = function(date, pattern, length) {
303
- var key;
304
- key = this.weekday_keys[date.getDay()];
305
- switch (length) {
306
- case 1:
307
- case 2:
308
- case 3:
309
- return this.calendar.days.format.abbreviated[key];
310
- case 4:
311
- return this.calendar.days.format.wide[key];
312
- case 5:
313
- return this.calendar.days['stand-alone'].narrow[key];
314
- }
315
- };
316
-
317
- DateTimeFormatter.prototype.weekday_local = function(date, pattern, length) {
318
- var day;
319
- switch (length) {
320
- case 1:
321
- case 2:
322
- day = date.getDay();
323
- return (day === 0 ? "7" : day.toString());
324
- default:
325
- return this.weekday(date, pattern, length);
326
- }
327
- };
328
-
329
- DateTimeFormatter.prototype.weekday_local_stand_alone = function(date, pattern, length) {
330
- switch (length) {
331
- case 1:
332
- return this.weekday_local(date, pattern, length);
333
- default:
334
- return this.weekday(date, pattern, length);
335
- }
336
- };
337
-
338
- DateTimeFormatter.prototype.period = function(time, pattern, length) {
339
- if (time.getHours() > 11) {
340
- return this.calendar.periods.format.wide["pm"];
341
- } else {
342
- return this.calendar.periods.format.wide["am"];
343
- }
344
- };
345
-
346
- DateTimeFormatter.prototype.hour = function(time, pattern, length) {
347
- var hour;
348
- hour = time.getHours();
349
- switch (pattern[0]) {
350
- case 'h':
351
- if (hour > 12) {
352
- hour = hour - 12;
353
- } else if (hour === 0) {
354
- hour = 12;
355
- }
356
- break;
357
- case 'K':
358
- if (hour > 11) {
359
- hour = hour - 12;
360
- }
361
- break;
362
- case 'k':
363
- if (hour === 0) {
364
- hour = 24;
365
- }
366
- }
367
- if (length === 1) {
368
- return hour.toString();
369
- } else {
370
- return ("000000" + hour.toString()).slice(-length);
371
- }
372
- };
373
-
374
- DateTimeFormatter.prototype.minute = function(time, pattern, length) {
375
- if (length === 1) {
376
- return time.getMinutes().toString();
377
- } else {
378
- return ("000000" + time.getMinutes().toString()).slice(-length);
379
- }
380
- };
381
-
382
- DateTimeFormatter.prototype.second = function(time, pattern, length) {
383
- if (length === 1) {
384
- return time.getSeconds().toString();
385
- } else {
386
- return ("000000" + time.getSeconds().toString()).slice(-length);
387
- }
388
- };
389
-
390
- DateTimeFormatter.prototype.second_fraction = function(time, pattern, length) {
391
- if (length > 6) {
392
- throw 'can not use the S format with more than 6 digits';
393
- }
394
- return ("000000" + Math.round(Math.pow(time.getMilliseconds() * 100.0, 6 - length)).toString()).slice(-length);
395
- };
396
-
397
- DateTimeFormatter.prototype.timezone = function(time, pattern, length) {
398
- var hours, minutes;
399
- hours = ("00" + (time.getTimezoneOffset() / 60).toString()).slice(-2);
400
- minutes = ("00" + (time.getTimezoneOffset() % 60).toString()).slice(-2);
401
- switch (length) {
402
- case 1:
403
- case 2:
404
- case 3:
405
- return "-" + hours + ":" + minutes;
406
- default:
407
- return "UTC -" + hours + ":" + minutes;
408
- }
409
- };
410
-
411
- DateTimeFormatter.prototype.timezone_generic_non_location = function(time, pattern, length) {
412
- throw 'not yet implemented (requires timezone translation data")';
413
- };
414
-
415
- return DateTimeFormatter;
416
-
417
- })();
418
-
419
- TwitterCldr.NumberFormatter = NumberFormatter = (function() {
420
-
421
- function NumberFormatter() {
422
- this.all_tokens = {"decimal":{"positive":["","#,##0.###"],"negative":["-","#,##0.###"]},"percent":{"positive":["","#,##0","%"],"negative":["-","#,##0","%"]},"currency":{"positive":["¤","#,##0.00"],"negative":["-(¤","#,##0.00",")"]}};
423
- this.tokens = [];
424
- this.symbols = {"alias":"","decimal":".","exponential":"E","group":",","infinity":"∞","list":";","minus_sign":"-","nan":"NaN","per_mille":"‰","percent_sign":"%","plus_sign":"+"};
425
- this.default_symbols = {
426
- 'group': ',',
427
- 'decimal': '.',
428
- 'plus_sign': '+',
429
- 'minus_sign': '-'
430
- };
431
- }
432
-
433
- NumberFormatter.prototype.format = function(number, options) {
434
- var fraction, fraction_format, int, integer_format, key, opts, prefix, result, sign, suffix, val, _ref, _ref1;
435
- if (options == null) {
436
- options = {};
437
- }
438
- opts = this.default_format_options_for(number);
439
- for (key in options) {
440
- val = options[key];
441
- opts[key] = options[key] != null ? options[key] : opts[key];
442
- }
443
- _ref = this.partition_tokens(this.get_tokens(number, opts)), prefix = _ref[0], suffix = _ref[1], integer_format = _ref[2], fraction_format = _ref[3];
444
- _ref1 = this.parse_number(number, opts), int = _ref1[0], fraction = _ref1[1];
445
- result = integer_format.apply(parseFloat(int), opts);
446
- if (fraction) {
447
- result += fraction_format.apply(fraction, opts);
448
- }
449
- sign = number < 0 && prefix !== "-" ? this.symbols.minus_sign || this.default_symbols.minus_sign : "";
450
- return "" + prefix + result + suffix;
451
- };
452
-
453
- NumberFormatter.prototype.partition_tokens = function(tokens) {
454
- return [tokens[0] || "", tokens[2] || "", new IntegerHelper(tokens[1], this.symbols), new FractionHelper(tokens[1], this.symbols)];
455
- };
456
-
457
- NumberFormatter.prototype.parse_number = function(number, options) {
458
- var precision;
459
- if (options == null) {
460
- options = {};
461
- }
462
- if (options.precision != null) {
463
- precision = options.precision;
464
- } else {
465
- precision = this.precision_from(number);
466
- }
467
- number = this.round_to(number, precision);
468
- return Math.abs(number).toFixed(precision).split(".");
469
- };
470
-
471
- NumberFormatter.prototype.precision_from = function(num) {
472
- var parts;
473
- parts = num.toString().split(".");
474
- if (parts.length === 2) {
475
- return parts[1].length;
476
- } else {
477
- return 0;
478
- }
479
- };
480
-
481
- NumberFormatter.prototype.round_to = function(number, precision) {
482
- var factor;
483
- factor = Math.pow(10, precision);
484
- return Math.round(number * factor) / factor;
485
- };
486
-
487
- NumberFormatter.prototype.get_tokens = function() {
488
- throw "get_tokens() not implemented - use a derived class like PercentFormatter.";
489
- };
490
-
491
- return NumberFormatter;
492
-
493
- })();
494
-
495
- TwitterCldr.PercentFormatter = PercentFormatter = (function(_super) {
496
-
497
- __extends(PercentFormatter, _super);
498
-
499
- function PercentFormatter(options) {
500
- if (options == null) {
501
- options = {};
502
- }
503
- this.default_percent_sign = "%";
504
- PercentFormatter.__super__.constructor.apply(this, arguments);
505
- }
506
-
507
- PercentFormatter.prototype.format = function(number, options) {
508
- if (options == null) {
509
- options = {};
510
- }
511
- return PercentFormatter.__super__.format.call(this, number, options).replace('¤', this.symbols.percent_sign || this.default_percent_sign);
512
- };
513
-
514
- PercentFormatter.prototype.default_format_options_for = function(number) {
515
- return {
516
- precision: 0
517
- };
518
- };
519
-
520
- PercentFormatter.prototype.get_tokens = function(number, options) {
521
- if (number < 0) {
522
- return this.all_tokens.percent.negative;
523
- } else {
524
- return this.all_tokens.percent.positive;
525
- }
526
- };
527
-
528
- return PercentFormatter;
529
-
530
- })(NumberFormatter);
531
-
532
- TwitterCldr.DecimalFormatter = DecimalFormatter = (function(_super) {
533
-
534
- __extends(DecimalFormatter, _super);
535
-
536
- function DecimalFormatter() {
537
- return DecimalFormatter.__super__.constructor.apply(this, arguments);
538
- }
539
-
540
- DecimalFormatter.prototype.format = function(number, options) {
541
- if (options == null) {
542
- options = {};
543
- }
544
- try {
545
- return DecimalFormatter.__super__.format.call(this, number, options);
546
- } catch (error) {
547
- return number;
548
- }
549
- };
550
-
551
- DecimalFormatter.prototype.default_format_options_for = function(number) {
552
- return {
553
- precision: this.precision_from(number)
554
- };
555
- };
556
-
557
- DecimalFormatter.prototype.get_tokens = function(number, options) {
558
- if (options == null) {
559
- options = {};
560
- }
561
- if (number < 0) {
562
- return this.all_tokens.decimal.negative;
563
- } else {
564
- return this.all_tokens.decimal.positive;
565
- }
566
- };
567
-
568
- return DecimalFormatter;
569
-
570
- })(NumberFormatter);
571
-
572
- TwitterCldr.CurrencyFormatter = CurrencyFormatter = (function(_super) {
573
-
574
- __extends(CurrencyFormatter, _super);
575
-
576
- function CurrencyFormatter(options) {
577
- if (options == null) {
578
- options = {};
579
- }
580
- this.default_currency_symbol = "$";
581
- this.default_precision = 2;
582
- CurrencyFormatter.__super__.constructor.apply(this, arguments);
583
- }
584
-
585
- CurrencyFormatter.prototype.format = function(number, options) {
586
- var currency;
587
- if (options == null) {
588
- options = {};
589
- }
590
- if (options.currency) {
591
- if (TwitterCldr.Currencies != null) {
592
- currency = TwitterCldr.Currencies.for_code(options.currency);
593
- currency || (currency = TwitterCldr.Currencies.for_country(options.currency));
594
- currency || (currency = {
595
- symbol: options.currency
596
- });
597
- } else {
598
- currency = {
599
- symbol: options.currency
600
- };
601
- }
602
- } else {
603
- currency = {
604
- symbol: this.default_currency_symbol
605
- };
606
- }
607
- return CurrencyFormatter.__super__.format.call(this, number, options).replace('¤', currency.symbol);
608
- };
609
-
610
- CurrencyFormatter.prototype.default_format_options_for = function(number) {
611
- var precision;
612
- precision = this.precision_from(number);
613
- if (precision === 0) {
614
- precision = this.default_precision;
615
- }
616
- return {
617
- precision: precision
618
- };
619
- };
620
-
621
- CurrencyFormatter.prototype.get_tokens = function(number, options) {
622
- if (options == null) {
623
- options = {};
624
- }
625
- if (number < 0) {
626
- return this.all_tokens.currency.negative;
627
- } else {
628
- return this.all_tokens.currency.positive;
629
- }
630
- };
631
-
632
- return CurrencyFormatter;
633
-
634
- })(NumberFormatter);
635
-
636
- TwitterCldr.NumberFormatter.BaseHelper = BaseHelper = (function() {
637
-
638
- function BaseHelper() {}
639
-
640
- BaseHelper.prototype.interpolate = function(string, value, orientation) {
641
- var i, length, start;
642
- if (orientation == null) {
643
- orientation = "right";
644
- }
645
- value = value.toString();
646
- length = value.length;
647
- start = orientation === "left" ? 0 : -length;
648
- if (string.length < length) {
649
- string = (((function() {
650
- var _i, _results;
651
- _results = [];
652
- for (i = _i = 0; 0 <= length ? _i < length : _i > length; i = 0 <= length ? ++_i : --_i) {
653
- _results.push("#");
654
- }
655
- return _results;
656
- })()).join("") + string).slice(-length);
657
- }
658
- if (start < 0) {
659
- string = string.slice(0, start + string.length) + value;
660
- } else {
661
- string = string.slice(0, start) + value + string.slice(length);
662
- }
663
- return string.replace(/#/g, "");
664
- };
665
-
666
- return BaseHelper;
667
-
668
- })();
669
-
670
- TwitterCldr.NumberFormatter.IntegerHelper = IntegerHelper = (function(_super) {
671
-
672
- __extends(IntegerHelper, _super);
673
-
674
- function IntegerHelper(token, symbols) {
675
- var format;
676
- if (symbols == null) {
677
- symbols = {};
678
- }
679
- format = token.split('.')[0];
680
- this.format = this.prepare_format(format, symbols);
681
- this.groups = this.parse_groups(format);
682
- this.separator = symbols.group || ',';
683
- }
684
-
685
- IntegerHelper.prototype.apply = function(number, options) {
686
- if (options == null) {
687
- options = {};
688
- }
689
- return this.format_groups(this.interpolate(this.format, parseInt(number)));
690
- };
691
-
692
- IntegerHelper.prototype.format_groups = function(string) {
693
- var cur_token, token, tokens;
694
- if (this.groups.length === 0) {
695
- return string;
696
- }
697
- tokens = [];
698
- cur_token = this.chop_group(string, this.groups[0]);
699
- tokens.push(cur_token);
700
- if (cur_token) {
701
- string = string.slice(0, string.length - cur_token.length);
702
- }
703
- while (string.length > this.groups[this.groups.length - 1]) {
704
- cur_token = this.chop_group(string, this.groups[this.groups.length - 1]);
705
- tokens.push(cur_token);
706
- if (cur_token) {
707
- string = string.slice(0, string.length - cur_token.length);
708
- }
709
- }
710
- tokens.push(string);
711
- return ((function() {
712
- var _i, _len, _results;
713
- _results = [];
714
- for (_i = 0, _len = tokens.length; _i < _len; _i++) {
715
- token = tokens[_i];
716
- if (token !== null) {
717
- _results.push(token);
718
- }
719
- }
720
- return _results;
721
- })()).reverse().join(this.separator);
722
- };
723
-
724
- IntegerHelper.prototype.parse_groups = function(format) {
725
- var index, rest, width, widths;
726
- if (!(index = format.lastIndexOf(','))) {
727
- return [];
728
- }
729
- rest = format.slice(0, index);
730
- widths = [format.length - index - 1];
731
- if (rest.lastIndexOf(',') > -1) {
732
- widths.push(rest.length - rest.lastIndexOf(',') - 1);
733
- }
734
- widths = (function() {
735
- var _i, _len, _results;
736
- _results = [];
737
- for (_i = 0, _len = widths.length; _i < _len; _i++) {
738
- width = widths[_i];
739
- if (width !== null) {
740
- _results.push(width);
741
- }
742
- }
743
- return _results;
744
- })();
745
- widths.reverse();
746
- return ((function() {
747
- var _i, _ref, _results;
748
- _results = [];
749
- for (index = _i = 0, _ref = widths.length; 0 <= _ref ? _i < _ref : _i > _ref; index = 0 <= _ref ? ++_i : --_i) {
750
- if (widths.indexOf(widths[index], index + 1) === -1) {
751
- _results.push(widths[index]);
752
- }
753
- }
754
- return _results;
755
- })()).reverse();
756
- };
757
-
758
- IntegerHelper.prototype.chop_group = function(string, size) {
759
- if (string.length > size) {
760
- return string.slice(-size);
761
- } else {
762
- return null;
763
- }
764
- };
765
-
766
- IntegerHelper.prototype.prepare_format = function(format, symbols) {
767
- return format.replace(",", "").replace("+", symbols.plus_sign).replace("-", symbols.minus_sign);
768
- };
769
-
770
- return IntegerHelper;
771
-
772
- })(BaseHelper);
773
-
774
- TwitterCldr.NumberFormatter.FractionHelper = FractionHelper = (function(_super) {
775
-
776
- __extends(FractionHelper, _super);
777
-
778
- function FractionHelper(token, symbols) {
779
- if (symbols == null) {
780
- symbols = {};
781
- }
782
- this.format = token ? token.split('.').pop() : "";
783
- this.decimal = symbols.decimal || ".";
784
- this.precision = this.format.length;
785
- }
786
-
787
- FractionHelper.prototype.apply = function(fraction, options) {
788
- var precision;
789
- if (options == null) {
790
- options = {};
791
- }
792
- precision = options.precision != null ? options.precision : this.precision;
793
- if (precision > 0) {
794
- return this.decimal + this.interpolate(this.format_for(options), fraction, "left");
795
- } else {
796
- return "";
797
- }
798
- };
799
-
800
- FractionHelper.prototype.format_for = function(options) {
801
- var i, precision;
802
- precision = options.precision != null ? options.precision : this.precision;
803
- if (precision) {
804
- return ((function() {
805
- var _i, _results;
806
- _results = [];
807
- for (i = _i = 0; 0 <= precision ? _i < precision : _i > precision; i = 0 <= precision ? ++_i : --_i) {
808
- _results.push("0");
809
- }
810
- return _results;
811
- })()).join("");
812
- } else {
813
- return this.format;
814
- }
815
- };
816
-
817
- return FractionHelper;
818
-
819
- })(BaseHelper);
820
-
821
- TwitterCldr.Currencies = Currencies = (function() {
822
-
823
- function Currencies() {}
824
-
825
- Currencies.currencies = {"Afghanistan":{"code":"AFN","currency":"Afghani","symbol":"؋"},"Albania":{"code":"ALL","currency":"Lek","symbol":"Lek"},"Argentina":{"code":"ARS","currency":"Peso","symbol":"$"},"Aruba":{"code":"AWG","currency":"Guilder","symbol":"ƒ"},"Australia":{"code":"AUD","currency":"Dollar","symbol":"$"},"Azerbaijan":{"code":"AZN","currency":"New Manat","symbol":"ман"},"Bahamas":{"code":"BSD","currency":"Dollar","symbol":"$"},"Barbados":{"code":"BBD","currency":"Dollar","symbol":"$"},"Belarus":{"code":"BYR","currency":"Ruble","symbol":"p."},"Belize":{"code":"BZD","currency":"Dollar","symbol":"BZ$"},"Bermuda":{"code":"BMD","currency":"Dollar","symbol":"$"},"Bolivia":{"code":"BOB","currency":"Boliviano","symbol":"$b"},"Bosnia and Herzegovina":{"code":"BAM","currency":"Convertible Marka","symbol":"KM"},"Botswana":{"code":"BWP","currency":"Pula","symbol":"P"},"Brazil":{"code":"BRL","currency":"Real","symbol":"R$"},"Brunei Darussalam":{"code":"BND","currency":"Dollar","symbol":"$"},"Bulgaria":{"code":"BGN","currency":"Lev","symbol":"лв"},"Cambodia":{"code":"KHR","currency":"Riel","symbol":"៛"},"Canada":{"code":"CAD","currency":"Dollar","symbol":"$"},"Cayman Islands":{"code":"KYD","currency":"Dollar","symbol":"$"},"Chile":{"code":"CLP","currency":"Peso","symbol":"$"},"China":{"code":"CNY","currency":"Yuan Renminbi","symbol":"¥"},"Colombia":{"code":"COP","currency":"Peso","symbol":"$"},"Costa Rica":{"code":"CRC","currency":"Colon","symbol":"₡"},"Croatia":{"code":"HRK","currency":"Kuna","symbol":"kn"},"Cuba":{"code":"CUP","currency":"Peso","symbol":"₱"},"Czech Republic":{"code":"CZK","currency":"Koruna","symbol":"Kč"},"Denmark":{"code":"DKK","currency":"Krone","symbol":"kr"},"Dominican Republic":{"code":"DOP","currency":"Peso","symbol":"RD$"},"East Caribbean":{"code":"XCD","currency":"Dollar","symbol":"$"},"Egypt":{"code":"EGP","currency":"Pound","symbol":"£"},"El Salvador":{"code":"SVC","currency":"Colon","symbol":"$"},"Estonia":{"code":"EEK","currency":"Kroon","symbol":"kr"},"Euro Member Countries":{"code":"EUR","currency":"European Union","symbol":"€"},"Falkland Islands (Malvinas)":{"code":"FKP","currency":"Pound","symbol":"£"},"Fiji":{"code":"FJD","currency":"Dollar","symbol":"$"},"Ghana":{"code":"GHC","currency":"Cedis","symbol":"¢"},"Gibraltar":{"code":"GIP","currency":"Pound","symbol":"£"},"Guatemala":{"code":"GTQ","currency":"Quetzal","symbol":"Q"},"Guernsey":{"code":"GGP","currency":"Pound","symbol":"£"},"Guyana":{"code":"GYD","currency":"Dollar","symbol":"$"},"Honduras":{"code":"HNL","currency":"Lempira","symbol":"L"},"Hong Kong":{"code":"HKD","currency":"Dollar","symbol":"$"},"Hungary":{"code":"HUF","currency":"Forint","symbol":"Ft"},"Iceland":{"code":"ISK","currency":"Krona","symbol":"kr"},"India":{"code":"INR","currency":"Rupee","symbol":"₨"},"Indonesia":{"code":"IDR","currency":"Rupiah","symbol":"Rp"},"Iran":{"code":"IRR","currency":"Rial","symbol":"﷼"},"Isle of Man":{"code":"IMP","currency":"Pound","symbol":"£"},"Israel":{"code":"ILS","currency":"Shekel","symbol":"₪"},"Jamaica":{"code":"JMD","currency":"Dollar","symbol":"J$"},"Japan":{"code":"JPY","currency":"Yen","symbol":"¥"},"Jersey":{"code":"JEP","currency":"Pound","symbol":"£"},"Kazakhstan":{"code":"KZT","currency":"Tenge","symbol":"лв"},"Kyrgyzstan":{"code":"KGS","currency":"Som","symbol":"лв"},"Laos":{"code":"LAK","currency":"Kip","symbol":"₭"},"Latvia":{"code":"LVL","currency":"Lat","symbol":"Ls"},"Lebanon":{"code":"LBP","currency":"Pound","symbol":"£"},"Liberia":{"code":"LRD","currency":"Dollar","symbol":"$"},"Lithuania":{"code":"LTL","currency":"Litas","symbol":"Lt"},"Macedonia":{"code":"MKD","currency":"Denar","symbol":"ден"},"Malaysia":{"code":"MYR","currency":"Ringgit","symbol":"RM"},"Mauritius":{"code":"MUR","currency":"Rupee","symbol":"₨"},"Mexico":{"code":"MXN","currency":"Peso","symbol":"$"},"Mongolia":{"code":"MNT","currency":"Tughrik","symbol":"₮"},"Mozambique":{"code":"MZN","currency":"Metical","symbol":"MT"},"Namibia":{"code":"NAD","currency":"Dollar","symbol":"$"},"Nepal":{"code":"NPR","currency":"Rupee","symbol":"₨"},"Netherlands Antilles":{"code":"ANG","currency":"Guilder","symbol":"ƒ"},"New Zealand":{"code":"NZD","currency":"Dollar","symbol":"$"},"Nicaragua":{"code":"NIO","currency":"Cordoba","symbol":"C$"},"Nigeria":{"code":"NGN","currency":"Naira","symbol":"₦"},"North Korea":{"code":"KPW","currency":"Won","symbol":"₩"},"Norway":{"code":"NOK","currency":"Krone","symbol":"kr"},"Oman":{"code":"OMR","currency":"Rial","symbol":"﷼"},"Pakistan":{"code":"PKR","currency":"Rupee","symbol":"₨"},"Panama":{"code":"PAB","currency":"Balboa","symbol":"B/."},"Paraguay":{"code":"PYG","currency":"Guarani","symbol":"Gs"},"Peru":{"code":"PEN","currency":"Nuevo Sol","symbol":"S/."},"Philippines":{"code":"PHP","currency":"Peso","symbol":"₱"},"Poland":{"code":"PLN","currency":"Zloty","symbol":"zł"},"Qatar":{"code":"QAR","currency":"Riyal","symbol":"﷼"},"Romania":{"code":"RON","currency":"New Leu","symbol":"lei"},"Russia":{"code":"RUB","currency":"Ruble","symbol":"руб"},"Saint Helena":{"code":"SHP","currency":"Pound","symbol":"£"},"Saudi Arabia":{"code":"SAR","currency":"Riyal","symbol":"﷼"},"Serbia":{"code":"RSD","currency":"Dinar","symbol":"Дин."},"Seychelles":{"code":"SCR","currency":"Rupee","symbol":"₨"},"Singapore":{"code":"SGD","currency":"Dollar","symbol":"$"},"Solomon Islands":{"code":"SBD","currency":"Dollar","symbol":"$"},"Somalia":{"code":"SOS","currency":"Shilling","symbol":"S"},"South Africa":{"code":"ZAR","currency":"Rand","symbol":"R"},"South Korea":{"code":"KRW","currency":"Won","symbol":"₩"},"Sri Lanka":{"code":"LKR","currency":"Rupee","symbol":"₨"},"Suriname":{"code":"SRD","currency":"Dollar","symbol":"$"},"Sweden":{"code":"SEK","currency":"Krona","symbol":"kr"},"Switzerland":{"code":"CHF","currency":"Franc","symbol":"CHF"},"Syria":{"code":"SYP","currency":"Pound","symbol":"£"},"Taiwan":{"code":"TWD","currency":"New Dollar","symbol":"NT$"},"Thailand":{"code":"THB","currency":"Baht","symbol":"฿"},"Trinidad and Tobago":{"code":"TTD","currency":"Dollar","symbol":"TT$"},"Turkey":{"code":"TRY","currency":"Lira","symbol":"₤"},"Tuvalu":{"code":"TVD","currency":"Dollar","symbol":"$"},"Ukraine":{"code":"UAH","currency":"Hryvna","symbol":"₴"},"United Kingdom":{"code":"GBP","currency":"Pound","symbol":"£"},"United States":{"code":"USD","currency":"Dollar","symbol":"$"},"Uruguay":{"code":"UYU","currency":"Peso","symbol":"$U"},"Uzbekistan":{"code":"UZS","currency":"Som","symbol":"лв"},"Venezuela":{"code":"VEF","currency":"Bolivar Fuerte","symbol":"Bs"},"Viet Nam":{"code":"VND","currency":"Dong","symbol":"₫"},"Yemen":{"code":"YER","currency":"Rial","symbol":"﷼"},"Zimbabwe":{"code":"ZWD","currency":"Dollar","symbol":"Z$"}};
826
-
827
- Currencies.countries = function() {
828
- var country_name, data;
829
- return this.names || (this.names = (function() {
830
- var _ref, _results;
831
- _ref = this.currencies;
832
- _results = [];
833
- for (country_name in _ref) {
834
- data = _ref[country_name];
835
- _results.push(country_name);
836
- }
837
- return _results;
838
- }).call(this));
839
- };
840
-
841
- Currencies.currency_codes = function() {
842
- var country_name, data;
843
- return this.codes || (this.codes = (function() {
844
- var _ref, _results;
845
- _ref = this.currencies;
846
- _results = [];
847
- for (country_name in _ref) {
848
- data = _ref[country_name];
849
- _results.push(data.code);
850
- }
851
- return _results;
852
- }).call(this));
853
- };
854
-
855
- Currencies.for_country = function(country_name) {
856
- return this.currencies[country_name];
857
- };
858
-
859
- Currencies.for_code = function(currency_code) {
860
- var country_name, data, final, _ref;
861
- final = null;
862
- _ref = this.currencies;
863
- for (country_name in _ref) {
864
- data = _ref[country_name];
865
- if (data.code === currency_code) {
866
- final = {
867
- country: country_name,
868
- code: data.code,
869
- symbol: data.symbol,
870
- currency: data.currency
871
- };
872
- break;
873
- }
874
- }
875
- return final;
876
- };
877
-
878
- return Currencies;
879
-
880
- })();
881
-
882
- if (typeof exports !== "undefined" && exports !== null) {
883
- for (key in TwitterCldr) {
884
- obj = TwitterCldr[key];
885
- exports[key] = obj;
886
- }
887
- }