twitter_cldr 1.3.0 → 1.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. data/README.md +58 -10
  2. data/Rakefile +25 -0
  3. data/lib/twitter_cldr.rb +16 -1
  4. data/lib/twitter_cldr/core_ext.rb +1 -0
  5. data/lib/twitter_cldr/core_ext/calendars/datetime.rb +14 -0
  6. data/lib/twitter_cldr/core_ext/calendars/timespan.rb +26 -0
  7. data/lib/twitter_cldr/formatters.rb +1 -0
  8. data/lib/twitter_cldr/formatters/calendars/datetime_formatter.rb +1 -6
  9. data/lib/twitter_cldr/formatters/calendars/timespan_formatter.rb +67 -0
  10. data/lib/twitter_cldr/formatters/numbers/number_formatter.rb +1 -1
  11. data/lib/twitter_cldr/tokenizers.rb +1 -0
  12. data/lib/twitter_cldr/tokenizers/base.rb +23 -9
  13. data/lib/twitter_cldr/tokenizers/calendars/date_tokenizer.rb +14 -8
  14. data/lib/twitter_cldr/tokenizers/calendars/datetime_tokenizer.rb +13 -9
  15. data/lib/twitter_cldr/tokenizers/calendars/time_tokenizer.rb +13 -7
  16. data/lib/twitter_cldr/tokenizers/calendars/timespan_tokenizer.rb +82 -0
  17. data/lib/twitter_cldr/tokenizers/numbers/number_tokenizer.rb +21 -14
  18. data/lib/twitter_cldr/tokenizers/token.rb +4 -0
  19. data/lib/twitter_cldr/version.rb +1 -1
  20. data/resources/locales/ar/units.yml +149 -0
  21. data/resources/locales/da/units.yml +79 -0
  22. data/resources/locales/de/units.yml +93 -0
  23. data/resources/locales/en/units.yml +65 -0
  24. data/resources/locales/es/units.yml +93 -0
  25. data/resources/locales/fa/units.yml +86 -0
  26. data/resources/locales/fi/units.yml +93 -0
  27. data/resources/locales/fil/units.yml +79 -0
  28. data/resources/locales/fr/units.yml +93 -0
  29. data/resources/locales/he/units.yml +79 -0
  30. data/resources/locales/hi/units.yml +79 -0
  31. data/resources/locales/hu/units.yml +72 -0
  32. data/resources/locales/id/units.yml +72 -0
  33. data/resources/locales/it/units.yml +79 -0
  34. data/resources/locales/ja/units.yml +72 -0
  35. data/resources/locales/ko/units.yml +72 -0
  36. data/resources/locales/ms/units.yml +86 -0
  37. data/resources/locales/nl/units.yml +79 -0
  38. data/resources/locales/pl/units.yml +135 -0
  39. data/resources/locales/pt/units.yml +93 -0
  40. data/resources/locales/ru/units.yml +135 -0
  41. data/resources/locales/sv/units.yml +93 -0
  42. data/resources/locales/th/units.yml +72 -0
  43. data/resources/locales/tr/units.yml +72 -0
  44. data/resources/locales/ur/units.yml +86 -0
  45. data/resources/locales/zh-Hant/units.yml +72 -0
  46. data/resources/locales/zh/units.yml +72 -0
  47. data/spec/core_ext/calendars/date_spec.rb +83 -9
  48. data/spec/core_ext/calendars/datetime_spec.rb +1 -3
  49. data/spec/core_ext/calendars/time_spec.rb +12 -3
  50. data/spec/formatters/calendars/timespan_formatter_spec.rb +39 -0
  51. data/spec/tokenizers/base_spec.rb +10 -10
  52. data/spec/tokenizers/calendars/timespan_tokenizer_spec.rb +24 -0
  53. data/spec/tokenizers/numbers/number_tokenizer_spec.rb +1 -1
  54. data/spec/twitter_cldr_spec.rb +16 -0
  55. metadata +126 -14
  56. data/lib/twitter_cldr/tokenizers/key_path.rb +0 -35
  57. data/spec/tokenizers/key_path_spec.rb +0 -49
@@ -17,7 +17,7 @@ describe NumberTokenizer do
17
17
 
18
18
  describe "#full_path_for" do
19
19
  it "should fill in the type and return the full path to the requested format" do
20
- NumberTokenizer.new.send(:full_path_for, :default).should == "numbers.formats.decimal.patterns.default"
20
+ NumberTokenizer.new.send(:full_path_for, :default).should == [:numbers, :formats, :decimal, :patterns, :default]
21
21
  end
22
22
  end
23
23
 
@@ -44,6 +44,22 @@ describe TwitterCldr do
44
44
  TwitterCldr.convert_locale(:'zh-cn').should == :zh
45
45
  TwitterCldr.convert_locale(:'zh-tw').should == :'zh-Hant'
46
46
  end
47
+
48
+ it "should leave unknown locales alone" do
49
+ TwitterCldr.convert_locale(:blarg).should == :blarg
50
+ end
51
+ end
52
+
53
+ describe "#twitter_locale" do
54
+ it "should convert a CLDR locale to a twitter locale" do
55
+ TwitterCldr.twitter_locale(:ms).should == :msa
56
+ TwitterCldr.twitter_locale(:zh).should == :'zh-cn'
57
+ TwitterCldr.twitter_locale(:'zh-Hant').should == :'zh-tw'
58
+ end
59
+
60
+ it "should leave unknown locales alone" do
61
+ TwitterCldr.twitter_locale(:blarg).should == :blarg
62
+ end
47
63
  end
48
64
 
49
65
  describe "#get_locale" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twitter_cldr
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 3
9
- - 0
10
- version: 1.3.0
9
+ - 6
10
+ version: 1.3.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Cameron Dutro
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-06-01 00:00:00 Z
18
+ date: 2012-06-12 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: json
@@ -34,9 +34,25 @@ dependencies:
34
34
  type: :runtime
35
35
  version_requirements: *id001
36
36
  - !ruby/object:Gem::Dependency
37
- name: rspec
37
+ name: mustache
38
38
  prerelease: false
39
39
  requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ hash: 411
45
+ segments:
46
+ - 0
47
+ - 99
48
+ - 4
49
+ version: 0.99.4
50
+ type: :runtime
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: rspec
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
40
56
  none: false
41
57
  requirements:
42
58
  - - ~>
@@ -48,11 +64,11 @@ dependencies:
48
64
  - 0
49
65
  version: 2.9.0
50
66
  type: :development
51
- version_requirements: *id002
67
+ version_requirements: *id003
52
68
  - !ruby/object:Gem::Dependency
53
69
  name: rr
54
70
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
71
+ requirement: &id004 !ruby/object:Gem::Requirement
56
72
  none: false
57
73
  requirements:
58
74
  - - ~>
@@ -64,11 +80,11 @@ dependencies:
64
80
  - 4
65
81
  version: 1.0.4
66
82
  type: :development
67
- version_requirements: *id003
83
+ version_requirements: *id004
68
84
  - !ruby/object:Gem::Dependency
69
85
  name: rake
70
86
  prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
87
+ requirement: &id005 !ruby/object:Gem::Requirement
72
88
  none: false
73
89
  requirements:
74
90
  - - ~>
@@ -80,11 +96,77 @@ dependencies:
80
96
  - 2
81
97
  version: 0.9.2
82
98
  type: :development
83
- version_requirements: *id004
99
+ version_requirements: *id005
100
+ - !ruby/object:Gem::Dependency
101
+ name: jasmine-headless-webkit
102
+ prerelease: false
103
+ requirement: &id006 !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
+ - - ~>
107
+ - !ruby/object:Gem::Version
108
+ hash: 844733855
109
+ segments:
110
+ - 0
111
+ - 9
112
+ - 0
113
+ - rc
114
+ - 1
115
+ version: 0.9.0.rc1
116
+ type: :development
117
+ version_requirements: *id006
118
+ - !ruby/object:Gem::Dependency
119
+ name: therubyracer
120
+ prerelease: false
121
+ requirement: &id007 !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ~>
125
+ - !ruby/object:Gem::Version
126
+ hash: 47
127
+ segments:
128
+ - 0
129
+ - 9
130
+ - 10
131
+ version: 0.9.10
132
+ type: :development
133
+ version_requirements: *id007
134
+ - !ruby/object:Gem::Dependency
135
+ name: uglifier
136
+ prerelease: false
137
+ requirement: &id008 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ~>
141
+ - !ruby/object:Gem::Version
142
+ hash: 23
143
+ segments:
144
+ - 1
145
+ - 2
146
+ - 4
147
+ version: 1.2.4
148
+ type: :development
149
+ version_requirements: *id008
150
+ - !ruby/object:Gem::Dependency
151
+ name: coffee-script
152
+ prerelease: false
153
+ requirement: &id009 !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ~>
157
+ - !ruby/object:Gem::Version
158
+ hash: 7
159
+ segments:
160
+ - 2
161
+ - 2
162
+ - 0
163
+ version: 2.2.0
164
+ type: :development
165
+ version_requirements: *id009
84
166
  - !ruby/object:Gem::Dependency
85
167
  name: rcov
86
168
  prerelease: false
87
- requirement: &id005 !ruby/object:Gem::Requirement
169
+ requirement: &id010 !ruby/object:Gem::Requirement
88
170
  none: false
89
171
  requirements:
90
172
  - - ">="
@@ -94,7 +176,7 @@ dependencies:
94
176
  - 0
95
177
  version: "0"
96
178
  type: :development
97
- version_requirements: *id005
179
+ version_requirements: *id010
98
180
  description: Provides date, time, number, and list formatting functionality for various Twitter-supported locales in Ruby and Javascript.
99
181
  email:
100
182
  - cdutro@twitter.com
@@ -113,6 +195,7 @@ files:
113
195
  - lib/twitter_cldr/core_ext/calendars/date.rb
114
196
  - lib/twitter_cldr/core_ext/calendars/datetime.rb
115
197
  - lib/twitter_cldr/core_ext/calendars/time.rb
198
+ - lib/twitter_cldr/core_ext/calendars/timespan.rb
116
199
  - lib/twitter_cldr/core_ext/localized_object.rb
117
200
  - lib/twitter_cldr/core_ext/numbers/bignum.rb
118
201
  - lib/twitter_cldr/core_ext/numbers/fixnum.rb
@@ -125,6 +208,7 @@ files:
125
208
  - lib/twitter_cldr/formatters/calendars/date_formatter.rb
126
209
  - lib/twitter_cldr/formatters/calendars/datetime_formatter.rb
127
210
  - lib/twitter_cldr/formatters/calendars/time_formatter.rb
211
+ - lib/twitter_cldr/formatters/calendars/timespan_formatter.rb
128
212
  - lib/twitter_cldr/formatters/numbers/currency_formatter.rb
129
213
  - lib/twitter_cldr/formatters/numbers/decimal_formatter.rb
130
214
  - lib/twitter_cldr/formatters/numbers/helpers/base.rb
@@ -152,8 +236,8 @@ files:
152
236
  - lib/twitter_cldr/tokenizers/calendars/date_tokenizer.rb
153
237
  - lib/twitter_cldr/tokenizers/calendars/datetime_tokenizer.rb
154
238
  - lib/twitter_cldr/tokenizers/calendars/time_tokenizer.rb
239
+ - lib/twitter_cldr/tokenizers/calendars/timespan_tokenizer.rb
155
240
  - lib/twitter_cldr/tokenizers/composite_token.rb
156
- - lib/twitter_cldr/tokenizers/key_path.rb
157
241
  - lib/twitter_cldr/tokenizers/numbers/number_tokenizer.rb
158
242
  - lib/twitter_cldr/tokenizers/token.rb
159
243
  - lib/twitter_cldr/tokenizers.rb
@@ -174,6 +258,7 @@ files:
174
258
  - spec/core_ext/symbol_spec.rb
175
259
  - spec/formatters/base_spec.rb
176
260
  - spec/formatters/calendars/datetime_formatter_spec.rb
261
+ - spec/formatters/calendars/timespan_formatter_spec.rb
177
262
  - spec/formatters/numbers/currency_formatter_spec.rb
178
263
  - spec/formatters/numbers/decimal_formatter_spec.rb
179
264
  - spec/formatters/numbers/helpers/fraction_spec.rb
@@ -198,8 +283,8 @@ files:
198
283
  - spec/tokenizers/calendars/date_tokenizer_spec.rb
199
284
  - spec/tokenizers/calendars/datetime_tokenizer_spec.rb
200
285
  - spec/tokenizers/calendars/time_tokenizer_spec.rb
286
+ - spec/tokenizers/calendars/timespan_tokenizer_spec.rb
201
287
  - spec/tokenizers/composite_token_spec.rb
202
- - spec/tokenizers/key_path_spec.rb
203
288
  - spec/tokenizers/numbers/number_tokenizer_spec.rb
204
289
  - spec/tokenizers/token_spec.rb
205
290
  - spec/twitter_cldr_spec.rb
@@ -210,74 +295,92 @@ files:
210
295
  - resources/locales/ar/languages.yml
211
296
  - resources/locales/ar/numbers.yml
212
297
  - resources/locales/ar/plurals.yml
298
+ - resources/locales/ar/units.yml
213
299
  - resources/locales/da/calendars.yml
214
300
  - resources/locales/da/languages.yml
215
301
  - resources/locales/da/numbers.yml
216
302
  - resources/locales/da/plurals.yml
303
+ - resources/locales/da/units.yml
217
304
  - resources/locales/de/calendars.yml
218
305
  - resources/locales/de/languages.yml
219
306
  - resources/locales/de/numbers.yml
220
307
  - resources/locales/de/plurals.yml
308
+ - resources/locales/de/units.yml
221
309
  - resources/locales/en/calendars.yml
222
310
  - resources/locales/en/languages.yml
223
311
  - resources/locales/en/numbers.yml
224
312
  - resources/locales/en/plurals.yml
313
+ - resources/locales/en/units.yml
225
314
  - resources/locales/es/calendars.yml
226
315
  - resources/locales/es/languages.yml
227
316
  - resources/locales/es/numbers.yml
228
317
  - resources/locales/es/plurals.yml
318
+ - resources/locales/es/units.yml
229
319
  - resources/locales/fa/calendars.yml
230
320
  - resources/locales/fa/languages.yml
231
321
  - resources/locales/fa/numbers.yml
232
322
  - resources/locales/fa/plurals.yml
323
+ - resources/locales/fa/units.yml
233
324
  - resources/locales/fi/calendars.yml
234
325
  - resources/locales/fi/languages.yml
235
326
  - resources/locales/fi/numbers.yml
236
327
  - resources/locales/fi/plurals.yml
328
+ - resources/locales/fi/units.yml
237
329
  - resources/locales/fil/calendars.yml
238
330
  - resources/locales/fil/languages.yml
239
331
  - resources/locales/fil/numbers.yml
240
332
  - resources/locales/fil/plurals.yml
333
+ - resources/locales/fil/units.yml
241
334
  - resources/locales/fr/calendars.yml
242
335
  - resources/locales/fr/languages.yml
243
336
  - resources/locales/fr/numbers.yml
244
337
  - resources/locales/fr/plurals.yml
338
+ - resources/locales/fr/units.yml
245
339
  - resources/locales/he/calendars.yml
246
340
  - resources/locales/he/languages.yml
247
341
  - resources/locales/he/numbers.yml
248
342
  - resources/locales/he/plurals.yml
343
+ - resources/locales/he/units.yml
249
344
  - resources/locales/hi/calendars.yml
250
345
  - resources/locales/hi/languages.yml
251
346
  - resources/locales/hi/numbers.yml
252
347
  - resources/locales/hi/plurals.yml
348
+ - resources/locales/hi/units.yml
253
349
  - resources/locales/hu/calendars.yml
254
350
  - resources/locales/hu/languages.yml
255
351
  - resources/locales/hu/numbers.yml
256
352
  - resources/locales/hu/plurals.yml
353
+ - resources/locales/hu/units.yml
257
354
  - resources/locales/id/calendars.yml
258
355
  - resources/locales/id/languages.yml
259
356
  - resources/locales/id/numbers.yml
260
357
  - resources/locales/id/plurals.yml
358
+ - resources/locales/id/units.yml
261
359
  - resources/locales/it/calendars.yml
262
360
  - resources/locales/it/languages.yml
263
361
  - resources/locales/it/numbers.yml
264
362
  - resources/locales/it/plurals.yml
363
+ - resources/locales/it/units.yml
265
364
  - resources/locales/ja/calendars.yml
266
365
  - resources/locales/ja/languages.yml
267
366
  - resources/locales/ja/numbers.yml
268
367
  - resources/locales/ja/plurals.yml
368
+ - resources/locales/ja/units.yml
269
369
  - resources/locales/ko/calendars.yml
270
370
  - resources/locales/ko/languages.yml
271
371
  - resources/locales/ko/numbers.yml
272
372
  - resources/locales/ko/plurals.yml
373
+ - resources/locales/ko/units.yml
273
374
  - resources/locales/ms/calendars.yml
274
375
  - resources/locales/ms/languages.yml
275
376
  - resources/locales/ms/numbers.yml
276
377
  - resources/locales/ms/plurals.yml
378
+ - resources/locales/ms/units.yml
277
379
  - resources/locales/nl/calendars.yml
278
380
  - resources/locales/nl/languages.yml
279
381
  - resources/locales/nl/numbers.yml
280
382
  - resources/locales/nl/plurals.yml
383
+ - resources/locales/nl/units.yml
281
384
  - resources/locales/no/calendars.yml
282
385
  - resources/locales/no/languages.yml
283
386
  - resources/locales/no/numbers.yml
@@ -286,37 +389,46 @@ files:
286
389
  - resources/locales/pl/languages.yml
287
390
  - resources/locales/pl/numbers.yml
288
391
  - resources/locales/pl/plurals.yml
392
+ - resources/locales/pl/units.yml
289
393
  - resources/locales/pt/calendars.yml
290
394
  - resources/locales/pt/languages.yml
291
395
  - resources/locales/pt/numbers.yml
292
396
  - resources/locales/pt/plurals.yml
397
+ - resources/locales/pt/units.yml
293
398
  - resources/locales/ru/calendars.yml
294
399
  - resources/locales/ru/languages.yml
295
400
  - resources/locales/ru/numbers.yml
296
401
  - resources/locales/ru/plurals.yml
402
+ - resources/locales/ru/units.yml
297
403
  - resources/locales/sv/calendars.yml
298
404
  - resources/locales/sv/languages.yml
299
405
  - resources/locales/sv/numbers.yml
300
406
  - resources/locales/sv/plurals.yml
407
+ - resources/locales/sv/units.yml
301
408
  - resources/locales/th/calendars.yml
302
409
  - resources/locales/th/languages.yml
303
410
  - resources/locales/th/numbers.yml
304
411
  - resources/locales/th/plurals.yml
412
+ - resources/locales/th/units.yml
305
413
  - resources/locales/tr/calendars.yml
306
414
  - resources/locales/tr/languages.yml
307
415
  - resources/locales/tr/numbers.yml
308
416
  - resources/locales/tr/plurals.yml
417
+ - resources/locales/tr/units.yml
309
418
  - resources/locales/ur/calendars.yml
310
419
  - resources/locales/ur/languages.yml
311
420
  - resources/locales/ur/numbers.yml
312
421
  - resources/locales/ur/plurals.yml
422
+ - resources/locales/ur/units.yml
313
423
  - resources/locales/zh/calendars.yml
314
424
  - resources/locales/zh/languages.yml
315
425
  - resources/locales/zh/numbers.yml
316
426
  - resources/locales/zh/plurals.yml
427
+ - resources/locales/zh/units.yml
317
428
  - resources/locales/zh-Hant/calendars.yml
318
429
  - resources/locales/zh-Hant/languages.yml
319
430
  - resources/locales/zh-Hant/numbers.yml
431
+ - resources/locales/zh-Hant/units.yml
320
432
  - resources/shared/currencies.yml
321
433
  - resources/unicode_data/aegean_numbers.yml
322
434
  - resources/unicode_data/alchemical_symbols.yml
@@ -1,35 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- # Copyright 2012 Twitter, Inc
4
- # http://www.apache.org/licenses/LICENSE-2.0
5
-
6
- module TwitterCldr
7
- module Tokenizers
8
- class KeyPath
9
- class << self
10
- def dirname(path)
11
- self.join_path(self.split_path(path)[0..-2])
12
- end
13
-
14
- def join(*args)
15
- final = ""
16
- args.each do |arg|
17
- fixed_arg = arg.chomp(".")
18
- fixed_arg = arg[1..-1] if fixed_arg[0].chr == "."
19
- final << "." if final.size > 0
20
- final << fixed_arg
21
- end
22
- final
23
- end
24
-
25
- def split_path(path)
26
- path.split(/\./)
27
- end
28
-
29
- def join_path(path_arr)
30
- path_arr.join(".")
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,49 +0,0 @@
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__)), "spec_helper")
7
- include TwitterCldr::Tokenizers
8
-
9
- describe KeyPath do
10
- describe "#dirname" do
11
- it "should strip off the last element" do
12
- KeyPath.dirname("castle.in.the.sky").should == "castle.in.the"
13
- end
14
-
15
- it "shouldn't choke if given an empty string" do
16
- KeyPath.dirname("").should == ""
17
- end
18
- end
19
-
20
- describe "#join" do
21
- it "joins two args with two dots" do
22
- KeyPath.join("seahawks.", ".rule").should == "seahawks.rule"
23
- end
24
-
25
- it "joins two args with one dot at the end of the first" do
26
- KeyPath.join("seahawks.", "rule").should == "seahawks.rule"
27
- end
28
-
29
- it "joins two args with one dot at the beginning of the second" do
30
- KeyPath.join("seahawks", ".rule").should == "seahawks.rule"
31
- end
32
-
33
- it "joins two args with no dots" do
34
- KeyPath.join("seahawks", "rule").should == "seahawks.rule"
35
- end
36
- end
37
-
38
- describe "#split_path" do
39
- it "should split the path by dots" do
40
- KeyPath.split_path("rain.in.spain").should == ["rain", "in", "spain"]
41
- end
42
- end
43
-
44
- describe "#join_path" do
45
- it "should join the path with dots" do
46
- KeyPath.join_path(["rain", "in", "spain"]).should == "rain.in.spain"
47
- end
48
- end
49
- end