twitter_cldr 1.3.0 → 1.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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