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.
- data/README.md +58 -10
- data/Rakefile +25 -0
- data/lib/twitter_cldr.rb +16 -1
- data/lib/twitter_cldr/core_ext.rb +1 -0
- data/lib/twitter_cldr/core_ext/calendars/datetime.rb +14 -0
- data/lib/twitter_cldr/core_ext/calendars/timespan.rb +26 -0
- data/lib/twitter_cldr/formatters.rb +1 -0
- data/lib/twitter_cldr/formatters/calendars/datetime_formatter.rb +1 -6
- data/lib/twitter_cldr/formatters/calendars/timespan_formatter.rb +67 -0
- data/lib/twitter_cldr/formatters/numbers/number_formatter.rb +1 -1
- data/lib/twitter_cldr/tokenizers.rb +1 -0
- data/lib/twitter_cldr/tokenizers/base.rb +23 -9
- data/lib/twitter_cldr/tokenizers/calendars/date_tokenizer.rb +14 -8
- data/lib/twitter_cldr/tokenizers/calendars/datetime_tokenizer.rb +13 -9
- data/lib/twitter_cldr/tokenizers/calendars/time_tokenizer.rb +13 -7
- data/lib/twitter_cldr/tokenizers/calendars/timespan_tokenizer.rb +82 -0
- data/lib/twitter_cldr/tokenizers/numbers/number_tokenizer.rb +21 -14
- data/lib/twitter_cldr/tokenizers/token.rb +4 -0
- data/lib/twitter_cldr/version.rb +1 -1
- data/resources/locales/ar/units.yml +149 -0
- data/resources/locales/da/units.yml +79 -0
- data/resources/locales/de/units.yml +93 -0
- data/resources/locales/en/units.yml +65 -0
- data/resources/locales/es/units.yml +93 -0
- data/resources/locales/fa/units.yml +86 -0
- data/resources/locales/fi/units.yml +93 -0
- data/resources/locales/fil/units.yml +79 -0
- data/resources/locales/fr/units.yml +93 -0
- data/resources/locales/he/units.yml +79 -0
- data/resources/locales/hi/units.yml +79 -0
- data/resources/locales/hu/units.yml +72 -0
- data/resources/locales/id/units.yml +72 -0
- data/resources/locales/it/units.yml +79 -0
- data/resources/locales/ja/units.yml +72 -0
- data/resources/locales/ko/units.yml +72 -0
- data/resources/locales/ms/units.yml +86 -0
- data/resources/locales/nl/units.yml +79 -0
- data/resources/locales/pl/units.yml +135 -0
- data/resources/locales/pt/units.yml +93 -0
- data/resources/locales/ru/units.yml +135 -0
- data/resources/locales/sv/units.yml +93 -0
- data/resources/locales/th/units.yml +72 -0
- data/resources/locales/tr/units.yml +72 -0
- data/resources/locales/ur/units.yml +86 -0
- data/resources/locales/zh-Hant/units.yml +72 -0
- data/resources/locales/zh/units.yml +72 -0
- data/spec/core_ext/calendars/date_spec.rb +83 -9
- data/spec/core_ext/calendars/datetime_spec.rb +1 -3
- data/spec/core_ext/calendars/time_spec.rb +12 -3
- data/spec/formatters/calendars/timespan_formatter_spec.rb +39 -0
- data/spec/tokenizers/base_spec.rb +10 -10
- data/spec/tokenizers/calendars/timespan_tokenizer_spec.rb +24 -0
- data/spec/tokenizers/numbers/number_tokenizer_spec.rb +1 -1
- data/spec/twitter_cldr_spec.rb +16 -0
- metadata +126 -14
- data/lib/twitter_cldr/tokenizers/key_path.rb +0 -35
- 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 ==
|
20
|
+
NumberTokenizer.new.send(:full_path_for, :default).should == [:numbers, :formats, :decimal, :patterns, :default]
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
data/spec/twitter_cldr_spec.rb
CHANGED
@@ -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:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 1.3.
|
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-
|
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:
|
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: *
|
67
|
+
version_requirements: *id003
|
52
68
|
- !ruby/object:Gem::Dependency
|
53
69
|
name: rr
|
54
70
|
prerelease: false
|
55
|
-
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: *
|
83
|
+
version_requirements: *id004
|
68
84
|
- !ruby/object:Gem::Dependency
|
69
85
|
name: rake
|
70
86
|
prerelease: false
|
71
|
-
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: *
|
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: &
|
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: *
|
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
|