twitter_cldr_js 1.0.0
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.
- data/Gemfile +12 -0
- data/History.txt +3 -0
- data/LICENSE +177 -0
- data/NOTICE +120 -0
- data/README.md +161 -0
- data/Rakefile +66 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_af.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_ar.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_ca.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_cs.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_da.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_de.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_el.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_en.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_es.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_eu.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_fa.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_fi.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_fil.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_fr.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_he.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_hi.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_hu.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_id.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_it.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_ja.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_ko.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_msa.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_nl.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_no.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_pl.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_pt.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_ru.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_sv.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_th.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_tr.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_uk.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_ur.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_zh-cn.js +887 -0
- data/lib/assets/javascripts/twitter_cldr/twitter_cldr_zh-tw.js +887 -0
- data/lib/twitter_cldr/js/compiler.rb +49 -0
- data/lib/twitter_cldr/js/mustache/bundle.coffee +15 -0
- data/lib/twitter_cldr/js/mustache/calendars/datetime.coffee +240 -0
- data/lib/twitter_cldr/js/mustache/calendars/timespan.coffee +52 -0
- data/lib/twitter_cldr/js/mustache/numbers/numbers.coffee +179 -0
- data/lib/twitter_cldr/js/mustache/plurals/rules.coffee +14 -0
- data/lib/twitter_cldr/js/mustache/shared/currencies.coffee +27 -0
- data/lib/twitter_cldr/js/renderers/base.rb +18 -0
- data/lib/twitter_cldr/js/renderers/bundle.rb +18 -0
- data/lib/twitter_cldr/js/renderers/calendars/datetime_renderer.rb +34 -0
- data/lib/twitter_cldr/js/renderers/calendars/timespan_renderer.rb +39 -0
- data/lib/twitter_cldr/js/renderers/numbers/numbers_renderer.rb +31 -0
- data/lib/twitter_cldr/js/renderers/plurals/rules/plural_rules_compiler.rb +93 -0
- data/lib/twitter_cldr/js/renderers/plurals/rules/plural_rules_renderer.rb +26 -0
- data/lib/twitter_cldr/js/renderers/shared/currencies_renderer.rb +23 -0
- data/lib/twitter_cldr/js/renderers.rb +31 -0
- data/lib/twitter_cldr/js/tasks/tasks.rake +14 -0
- data/lib/twitter_cldr/js/tasks/tasks.rb +88 -0
- data/lib/twitter_cldr/js/version.rb +10 -0
- data/lib/twitter_cldr/js.rb +31 -0
- data/spec/js/calendars/datetime.spec.js +418 -0
- data/spec/js/calendars/timespan.spec.js +91 -0
- data/spec/js/numbers/currency.spec.js +34 -0
- data/spec/js/numbers/decimal.spec.js +24 -0
- data/spec/js/numbers/helpers/fraction.spec.js +23 -0
- data/spec/js/numbers/helpers/integer.spec.js +100 -0
- data/spec/js/numbers/number.spec.js +70 -0
- data/spec/js/numbers/percent.spec.js +22 -0
- data/spec/js/plurals/plural_rules.spec.js +28 -0
- data/spec/ruby/renderers/plurals/plural_rules_compiler_spec.rb +56 -0
- data/spec/ruby/spec_helper.rb +11 -0
- data/twitter_cldr_js.gemspec +34 -0
- metadata +224 -0
@@ -0,0 +1,100 @@
|
|
1
|
+
// Copyright 2012 Twitter, Inc
|
2
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
3
|
+
|
4
|
+
var TwitterCldr = require('../../../../lib/assets/javascripts/twitter_cldr/twitter_cldr_en.js');
|
5
|
+
|
6
|
+
describe("IntegerHelper", function() {
|
7
|
+
describe("#apply", function() {
|
8
|
+
describe("with the ### format", function() {
|
9
|
+
beforeEach(function() {
|
10
|
+
token = "###";
|
11
|
+
});
|
12
|
+
|
13
|
+
it("test: interpolates a number", function() {
|
14
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token).apply(123)).toEqual('123');
|
15
|
+
});
|
16
|
+
|
17
|
+
it("test: does not include a fraction for a float", function() {
|
18
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token).apply(123.45)).toEqual('123');
|
19
|
+
});
|
20
|
+
|
21
|
+
it("test: does not round when given a float", function() {
|
22
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token).apply(123.55)).toEqual('123');
|
23
|
+
});
|
24
|
+
|
25
|
+
it("test: does not round with :precision => 1", function() {
|
26
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token).apply(123.55, {precision: 1})).toEqual('123');
|
27
|
+
});
|
28
|
+
});
|
29
|
+
|
30
|
+
describe("with the #,## format", function() {
|
31
|
+
beforeEach(function() {
|
32
|
+
token = "#,##";
|
33
|
+
});
|
34
|
+
|
35
|
+
it("test: single group", function() {
|
36
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token).apply(123)).toEqual('1,23');
|
37
|
+
});
|
38
|
+
|
39
|
+
it("test: multiple groups with a primary group size", function() {
|
40
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token).apply(123456789)).toEqual('1,23,45,67,89');
|
41
|
+
});
|
42
|
+
});
|
43
|
+
|
44
|
+
describe("with the #,##0.## format", function() {
|
45
|
+
beforeEach(function() {
|
46
|
+
token = "#,##0.##";
|
47
|
+
});
|
48
|
+
|
49
|
+
it("test: ignores a fraction part given in the format string", function() {
|
50
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token).apply(1234.567)).toEqual('1,234');
|
51
|
+
});
|
52
|
+
|
53
|
+
it("test: cldr example #,##0.## => 1 234", function() {
|
54
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token).apply(1234.567)).toEqual('1,234');
|
55
|
+
});
|
56
|
+
});
|
57
|
+
|
58
|
+
describe("miscellaneous formats", function() {
|
59
|
+
it("test: interpolates a number on the right side", function () {
|
60
|
+
token = "0###";
|
61
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token).apply(123)).toEqual('0123');
|
62
|
+
});
|
63
|
+
|
64
|
+
it("test: strips optional digits", function() {
|
65
|
+
token = "######";
|
66
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token).apply(123)).toEqual('123');
|
67
|
+
});
|
68
|
+
|
69
|
+
it("test: multiple groups with a primary and secondary group size", function() {
|
70
|
+
token = "#,##,##0";
|
71
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token).apply(123456789)).toEqual('12,34,56,789');
|
72
|
+
});
|
73
|
+
|
74
|
+
it("test: does not group when no digits left of the grouping position", function() {
|
75
|
+
token = "#,###";
|
76
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token).apply(123)).toEqual('123');
|
77
|
+
});
|
78
|
+
|
79
|
+
it("test: cldr example #,##0.### => 1 234", function() {
|
80
|
+
token = "#,##0.###";
|
81
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token, {group: ' '}).apply(1234.567)).toEqual('1 234');
|
82
|
+
});
|
83
|
+
|
84
|
+
it("test: cldr example ###0.##### => 1234", function() {
|
85
|
+
token = "###0.#####";
|
86
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token, {group: ' '}).apply(1234.567)).toEqual('1234');
|
87
|
+
});
|
88
|
+
|
89
|
+
it("test: cldr example ###0.0000# => 1234", function() {
|
90
|
+
token = "###0.0000#";
|
91
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token, {group: ' '}).apply(1234.567)).toEqual('1234');
|
92
|
+
});
|
93
|
+
|
94
|
+
it("test: cldr example 00000.0000 => 01234", function() {
|
95
|
+
token = "00000.0000";
|
96
|
+
expect(new TwitterCldr.NumberFormatter.IntegerHelper(token, {group: ' '}).apply(1234.567)).toEqual('01234');
|
97
|
+
});
|
98
|
+
});
|
99
|
+
});
|
100
|
+
});
|
@@ -0,0 +1,70 @@
|
|
1
|
+
// Copyright 2012 Twitter, Inc
|
2
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
3
|
+
|
4
|
+
var TwitterCldr = require('../../../lib/assets/javascripts/twitter_cldr/twitter_cldr_en.js');
|
5
|
+
|
6
|
+
describe("NumberFormatter", function() {
|
7
|
+
beforeEach(function() {
|
8
|
+
formatter = new TwitterCldr.DecimalFormatter();
|
9
|
+
});
|
10
|
+
|
11
|
+
describe("#precision_from", function() {
|
12
|
+
it("should return the correct precision", function() {
|
13
|
+
expect(formatter.precision_from(12.123)).toEqual(3);
|
14
|
+
});
|
15
|
+
|
16
|
+
it("should return zero precision if the number isn't a decimal", function() {
|
17
|
+
expect(formatter.precision_from(12)).toEqual(0);
|
18
|
+
});
|
19
|
+
});
|
20
|
+
|
21
|
+
describe("#round_to", function() {
|
22
|
+
it("should round a number to the given precision", function() {
|
23
|
+
expect(formatter.round_to(12, 0)).toEqual(12);
|
24
|
+
expect(formatter.round_to(12.2, 0)).toEqual(12);
|
25
|
+
expect(formatter.round_to(12.5, 0)).toEqual(13);
|
26
|
+
expect(formatter.round_to(12.25, 1)).toEqual(12.3);
|
27
|
+
expect(formatter.round_to(12.25, 2)).toEqual(12.25);
|
28
|
+
expect(formatter.round_to(12.25, 3)).toEqual(12.25);
|
29
|
+
});
|
30
|
+
});
|
31
|
+
|
32
|
+
describe("#parse_number", function() {
|
33
|
+
it("should round and split the given number by decimal", function() {
|
34
|
+
expect(formatter.parse_number(12, {precision: 0})).toEqual(["12"]);
|
35
|
+
expect(formatter.parse_number(12.2, {precision: 0})).toEqual(["12"]);
|
36
|
+
expect(formatter.parse_number(12.5, {precision: 0})).toEqual(["13"]);
|
37
|
+
expect(formatter.parse_number(12.25, {precision: 1})).toEqual(["12", "3"]);
|
38
|
+
expect(formatter.parse_number(12.25, {precision: 2})).toEqual(["12", "25"]);
|
39
|
+
expect(formatter.parse_number(12.25, {precision: 3})).toEqual(["12", "250"]);
|
40
|
+
});
|
41
|
+
});
|
42
|
+
|
43
|
+
describe("#format", function() {
|
44
|
+
it("should format a basic integer", function() {
|
45
|
+
expect(formatter.format(12)).toEqual("12");
|
46
|
+
});
|
47
|
+
|
48
|
+
describe("should respect the :precision option", function() {
|
49
|
+
it("formats with precision of 0", function() {
|
50
|
+
expect(formatter.format(12.1, {precision: 0})).toEqual("12");
|
51
|
+
});
|
52
|
+
|
53
|
+
it("rounds and formats with precision of 1", function() {
|
54
|
+
expect(formatter.format(12.25, {precision: 1})).toEqual("12.3");
|
55
|
+
});
|
56
|
+
});
|
57
|
+
|
58
|
+
it("uses the length of the original decimal as the precision", function() {
|
59
|
+
expect(formatter.format(12.8543)).toEqual("12.8543");
|
60
|
+
});
|
61
|
+
|
62
|
+
it("formats an integer larger than 999", function() {
|
63
|
+
expect(formatter.format(1337)).toEqual("1,337");
|
64
|
+
});
|
65
|
+
|
66
|
+
it("formats a decimal larger than 999.9", function() {
|
67
|
+
expect(formatter.format(1337.37)).toEqual("1,337.37");
|
68
|
+
});
|
69
|
+
});
|
70
|
+
});
|
@@ -0,0 +1,22 @@
|
|
1
|
+
// Copyright 2012 Twitter, Inc
|
2
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
3
|
+
|
4
|
+
var TwitterCldr = require('../../../lib/assets/javascripts/twitter_cldr/twitter_cldr_en.js');
|
5
|
+
|
6
|
+
describe("PercentFormatter", function() {
|
7
|
+
beforeEach(function() {
|
8
|
+
formatter = new TwitterCldr.PercentFormatter();
|
9
|
+
});
|
10
|
+
|
11
|
+
it("should format the number correctly", function() {
|
12
|
+
expect(formatter.format(12)).toEqual("12%");
|
13
|
+
});
|
14
|
+
|
15
|
+
it("should format negative numbers correctly", function() {
|
16
|
+
expect(formatter.format(-12)).toEqual("-12%");
|
17
|
+
});
|
18
|
+
|
19
|
+
it("should respect the precision option", function() {
|
20
|
+
expect(formatter.format(-12, {precision: 3})).toEqual("-12.000%");
|
21
|
+
});
|
22
|
+
});
|
@@ -0,0 +1,28 @@
|
|
1
|
+
// Copyright 2012 Twitter, Inc
|
2
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
3
|
+
|
4
|
+
var TwitterCldr = require('../../../lib/assets/javascripts/twitter_cldr/twitter_cldr_en.js');
|
5
|
+
|
6
|
+
describe("PluralRules", function() {
|
7
|
+
describe("#all", function() {
|
8
|
+
it("returns an array of all English plural rules", function() {
|
9
|
+
expect(TwitterCldr.PluralRules.all()).toEqual(["one", "other"]);
|
10
|
+
});
|
11
|
+
});
|
12
|
+
|
13
|
+
describe("#rule_for", function() {
|
14
|
+
it("returns 'one' for the number 1", function() {
|
15
|
+
expect(TwitterCldr.PluralRules.rule_for(1)).toEqual("one");
|
16
|
+
});
|
17
|
+
|
18
|
+
it("returns 'other' for any number greater than 1", function() {
|
19
|
+
for (var i = 2; i < 10; i ++) {
|
20
|
+
expect(TwitterCldr.PluralRules.rule_for(i)).toEqual("other");
|
21
|
+
}
|
22
|
+
});
|
23
|
+
|
24
|
+
it("returns 'other' for the number 0", function() {
|
25
|
+
expect(TwitterCldr.PluralRules.rule_for(0)).toEqual("other");
|
26
|
+
});
|
27
|
+
});
|
28
|
+
});
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
# Copyright 2012 Twitter, Inc
|
4
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
5
|
+
|
6
|
+
require File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "spec_helper")
|
7
|
+
|
8
|
+
include TwitterCldr::Js::Renderers::PluralRules
|
9
|
+
|
10
|
+
describe PluralRulesCompiler do
|
11
|
+
describe "#rule_to_js" do
|
12
|
+
it "handles a single plural rule" do
|
13
|
+
PluralRulesCompiler.rule_to_js(":other").should == 'function(n) { return "other" }'
|
14
|
+
end
|
15
|
+
|
16
|
+
it "handles a conditional plural rule (eg. English)" do
|
17
|
+
PluralRulesCompiler.rule_to_js("n == 1 ? :one : :other").should == 'function(n) { return (function() { if (n == 1) { return "one" } else { return "other" } })(); }'
|
18
|
+
end
|
19
|
+
|
20
|
+
it "handles an include? call" do
|
21
|
+
PluralRulesCompiler.rule_to_js("[2, 3, 4].include?(n)").should == "function(n) { return [2, 3, 4].indexOf(n) >= 0 }"
|
22
|
+
end
|
23
|
+
|
24
|
+
it "handles a between? call" do
|
25
|
+
PluralRulesCompiler.rule_to_js("n.between?(0, 2)").should == "function(n) { return ((n >= 0) && (n <= 2)) }"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "handles the modulus operator" do
|
29
|
+
PluralRulesCompiler.rule_to_js("n % 10").should == "function(n) { return n % 10 }"
|
30
|
+
end
|
31
|
+
|
32
|
+
it "handles < and > operators" do
|
33
|
+
PluralRulesCompiler.rule_to_js("n > 10").should == "function(n) { return n > 10 }"
|
34
|
+
PluralRulesCompiler.rule_to_js("n < 10").should == "function(n) { return n < 10 }"
|
35
|
+
end
|
36
|
+
|
37
|
+
it "handles 'and', 'or', and 'not' operators" do
|
38
|
+
PluralRulesCompiler.rule_to_js("n and n").should == "function(n) { return n && n }"
|
39
|
+
PluralRulesCompiler.rule_to_js("n or n").should == "function(n) { return n || n }"
|
40
|
+
PluralRulesCompiler.rule_to_js("not n").should == "function(n) { return !(n) }"
|
41
|
+
end
|
42
|
+
|
43
|
+
it "compounds include? and the modulus operator" do
|
44
|
+
PluralRulesCompiler.rule_to_js("[2, 3, 4].include?(n % 10)").should == "function(n) { return [2, 3, 4].indexOf(n % 10) >= 0 }"
|
45
|
+
end
|
46
|
+
|
47
|
+
it "compounds include?, modulus, and an if statement" do
|
48
|
+
PluralRulesCompiler.rule_to_js("[2, 3, 4].include?(n % 10) ? :one : :other").should == 'function(n) { return (function() { if ([2, 3, 4].indexOf(n % 10) >= 0) { return "one" } else { return "other" } })(); }'
|
49
|
+
end
|
50
|
+
|
51
|
+
it "chains two if statements (eg. Polish)" do
|
52
|
+
ruby_string = "n == 1 ? :one : [2, 3, 4].include?(n % 10) && ![12, 13, 14].include?(n % 100) && ![22, 23, 24].include?(n % 100) ? :few : :other"
|
53
|
+
PluralRulesCompiler.rule_to_js(ruby_string).should == 'function(n) { return (function() { if (n == 1) { return "one" } else { return (function() { if ([2, 3, 4].indexOf(n % 10) >= 0 && !([12, 13, 14].indexOf(n % 100) >= 0) && !([22, 23, 24].indexOf(n % 100) >= 0)) { return "few" } else { return "other" } })(); } })(); }'
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), 'lib')
|
2
|
+
require 'twitter_cldr/js/version'
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "twitter_cldr_js"
|
6
|
+
s.version = ::TwitterCldr::Js::VERSION
|
7
|
+
s.authors = ["Cameron Dutro"]
|
8
|
+
s.email = ["cdutro@twitter.com"]
|
9
|
+
s.homepage = "http://twitter.com"
|
10
|
+
|
11
|
+
s.description = s.summary = "Provides date, time, number, and list formatting functionality for various Twitter-supported locales in Javascript."
|
12
|
+
|
13
|
+
s.platform = Gem::Platform::RUBY
|
14
|
+
s.has_rdoc = true
|
15
|
+
s.summary = "Text formatting using data from Unicode's Common Locale Data Repository (CLDR)."
|
16
|
+
|
17
|
+
s.add_dependency 'json', '>= 1.1.9'
|
18
|
+
s.add_dependency 'twitter_cldr', '~> 1.8.0'
|
19
|
+
s.add_dependency 'railties', '~> 3.1'
|
20
|
+
s.add_dependency 'rake', '~> 0.9.2.2'
|
21
|
+
s.add_dependency 'mustache', '~> 0.99.4'
|
22
|
+
s.add_dependency 'ruby_parser', '~> 2.3.1'
|
23
|
+
s.add_dependency 'therubyracer', '~> 0.9.10'
|
24
|
+
s.add_dependency 'uglifier', '~> 1.2.4'
|
25
|
+
s.add_dependency 'coffee-script', '~> 2.2.0'
|
26
|
+
|
27
|
+
s.require_path = 'lib'
|
28
|
+
|
29
|
+
gem_files = Dir["{lib,spec}/**/*", "Gemfile", "History.txt", "LICENSE", "NOTICE", "README.md", "Rakefile", "twitter_cldr_js.gemspec"]
|
30
|
+
excluded_files = %w[]
|
31
|
+
versioned_files = `git ls-files`.split("\n")
|
32
|
+
|
33
|
+
s.files = (gem_files - excluded_files) & versioned_files
|
34
|
+
end
|
metadata
ADDED
@@ -0,0 +1,224 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: twitter_cldr_js
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 1.0.0
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Cameron Dutro
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2012-08-23 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: json
|
17
|
+
prerelease: false
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.1.9
|
24
|
+
type: :runtime
|
25
|
+
version_requirements: *id001
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: twitter_cldr
|
28
|
+
prerelease: false
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
|
+
none: false
|
31
|
+
requirements:
|
32
|
+
- - ~>
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 1.8.0
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id002
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: railties
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: "3.1"
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id003
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rake
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ~>
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 0.9.2.2
|
57
|
+
type: :runtime
|
58
|
+
version_requirements: *id004
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: mustache
|
61
|
+
prerelease: false
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ~>
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 0.99.4
|
68
|
+
type: :runtime
|
69
|
+
version_requirements: *id005
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: ruby_parser
|
72
|
+
prerelease: false
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ~>
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 2.3.1
|
79
|
+
type: :runtime
|
80
|
+
version_requirements: *id006
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: therubyracer
|
83
|
+
prerelease: false
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.9.10
|
90
|
+
type: :runtime
|
91
|
+
version_requirements: *id007
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: uglifier
|
94
|
+
prerelease: false
|
95
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
97
|
+
requirements:
|
98
|
+
- - ~>
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: 1.2.4
|
101
|
+
type: :runtime
|
102
|
+
version_requirements: *id008
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: coffee-script
|
105
|
+
prerelease: false
|
106
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ~>
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 2.2.0
|
112
|
+
type: :runtime
|
113
|
+
version_requirements: *id009
|
114
|
+
description: Provides date, time, number, and list formatting functionality for various Twitter-supported locales in Javascript.
|
115
|
+
email:
|
116
|
+
- cdutro@twitter.com
|
117
|
+
executables: []
|
118
|
+
|
119
|
+
extensions: []
|
120
|
+
|
121
|
+
extra_rdoc_files: []
|
122
|
+
|
123
|
+
files:
|
124
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_af.js
|
125
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_ar.js
|
126
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_ca.js
|
127
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_cs.js
|
128
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_da.js
|
129
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_de.js
|
130
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_el.js
|
131
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_en.js
|
132
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_es.js
|
133
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_eu.js
|
134
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_fa.js
|
135
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_fi.js
|
136
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_fil.js
|
137
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_fr.js
|
138
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_he.js
|
139
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_hi.js
|
140
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_hu.js
|
141
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_id.js
|
142
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_it.js
|
143
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_ja.js
|
144
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_ko.js
|
145
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_msa.js
|
146
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_nl.js
|
147
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_no.js
|
148
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_pl.js
|
149
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_pt.js
|
150
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_ru.js
|
151
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_sv.js
|
152
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_th.js
|
153
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_tr.js
|
154
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_uk.js
|
155
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_ur.js
|
156
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_zh-cn.js
|
157
|
+
- lib/assets/javascripts/twitter_cldr/twitter_cldr_zh-tw.js
|
158
|
+
- lib/twitter_cldr/js/compiler.rb
|
159
|
+
- lib/twitter_cldr/js/mustache/bundle.coffee
|
160
|
+
- lib/twitter_cldr/js/mustache/calendars/datetime.coffee
|
161
|
+
- lib/twitter_cldr/js/mustache/calendars/timespan.coffee
|
162
|
+
- lib/twitter_cldr/js/mustache/numbers/numbers.coffee
|
163
|
+
- lib/twitter_cldr/js/mustache/plurals/rules.coffee
|
164
|
+
- lib/twitter_cldr/js/mustache/shared/currencies.coffee
|
165
|
+
- lib/twitter_cldr/js/renderers/base.rb
|
166
|
+
- lib/twitter_cldr/js/renderers/bundle.rb
|
167
|
+
- lib/twitter_cldr/js/renderers/calendars/datetime_renderer.rb
|
168
|
+
- lib/twitter_cldr/js/renderers/calendars/timespan_renderer.rb
|
169
|
+
- lib/twitter_cldr/js/renderers/numbers/numbers_renderer.rb
|
170
|
+
- lib/twitter_cldr/js/renderers/plurals/rules/plural_rules_compiler.rb
|
171
|
+
- lib/twitter_cldr/js/renderers/plurals/rules/plural_rules_renderer.rb
|
172
|
+
- lib/twitter_cldr/js/renderers/shared/currencies_renderer.rb
|
173
|
+
- lib/twitter_cldr/js/renderers.rb
|
174
|
+
- lib/twitter_cldr/js/tasks/tasks.rake
|
175
|
+
- lib/twitter_cldr/js/tasks/tasks.rb
|
176
|
+
- lib/twitter_cldr/js/version.rb
|
177
|
+
- lib/twitter_cldr/js.rb
|
178
|
+
- spec/js/calendars/datetime.spec.js
|
179
|
+
- spec/js/calendars/timespan.spec.js
|
180
|
+
- spec/js/numbers/currency.spec.js
|
181
|
+
- spec/js/numbers/decimal.spec.js
|
182
|
+
- spec/js/numbers/helpers/fraction.spec.js
|
183
|
+
- spec/js/numbers/helpers/integer.spec.js
|
184
|
+
- spec/js/numbers/number.spec.js
|
185
|
+
- spec/js/numbers/percent.spec.js
|
186
|
+
- spec/js/plurals/plural_rules.spec.js
|
187
|
+
- spec/ruby/renderers/plurals/plural_rules_compiler_spec.rb
|
188
|
+
- spec/ruby/spec_helper.rb
|
189
|
+
- Gemfile
|
190
|
+
- History.txt
|
191
|
+
- LICENSE
|
192
|
+
- NOTICE
|
193
|
+
- README.md
|
194
|
+
- Rakefile
|
195
|
+
- twitter_cldr_js.gemspec
|
196
|
+
homepage: http://twitter.com
|
197
|
+
licenses: []
|
198
|
+
|
199
|
+
post_install_message:
|
200
|
+
rdoc_options: []
|
201
|
+
|
202
|
+
require_paths:
|
203
|
+
- lib
|
204
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
205
|
+
none: false
|
206
|
+
requirements:
|
207
|
+
- - ">="
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: "0"
|
210
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
211
|
+
none: false
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: "0"
|
216
|
+
requirements: []
|
217
|
+
|
218
|
+
rubyforge_project:
|
219
|
+
rubygems_version: 1.8.17
|
220
|
+
signing_key:
|
221
|
+
specification_version: 3
|
222
|
+
summary: Text formatting using data from Unicode's Common Locale Data Repository (CLDR).
|
223
|
+
test_files: []
|
224
|
+
|