twitter_cldr 1.9.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +7 -0
- data/History.txt +11 -0
- data/README.md +93 -13
- data/Rakefile +27 -6
- data/lib/twitter_cldr/formatters.rb +15 -12
- data/lib/twitter_cldr/formatters/base.rb +1 -1
- data/lib/twitter_cldr/formatters/calendars/datetime_formatter.rb +18 -3
- data/lib/twitter_cldr/formatters/calendars/timespan_formatter.rb +24 -26
- data/lib/twitter_cldr/formatters/numbers/abbreviated/abbreviated_number_formatter.rb +47 -0
- data/lib/twitter_cldr/formatters/numbers/abbreviated/long_decimal_formatter.rb +18 -0
- data/lib/twitter_cldr/formatters/numbers/abbreviated/short_decimal_formatter.rb +18 -0
- data/lib/twitter_cldr/formatters/numbers/currency_formatter.rb +22 -17
- data/lib/twitter_cldr/formatters/numbers/decimal_formatter.rb +0 -9
- data/lib/twitter_cldr/formatters/numbers/helpers/base.rb +1 -1
- data/lib/twitter_cldr/formatters/numbers/number_formatter.rb +25 -10
- data/lib/twitter_cldr/formatters/numbers/percent_formatter.rb +9 -6
- data/lib/twitter_cldr/localized/localized_datetime.rb +6 -2
- data/lib/twitter_cldr/localized/localized_number.rb +9 -3
- data/lib/twitter_cldr/localized/localized_timespan.rb +1 -1
- data/lib/twitter_cldr/resources.rb +13 -12
- data/lib/twitter_cldr/resources/custom_locales_resources_importer.rb +1 -1
- data/lib/twitter_cldr/resources/download.rb +1 -1
- data/lib/twitter_cldr/resources/locales_resources_importer.rb +10 -6
- data/lib/twitter_cldr/shared/bidi.rb +27 -27
- data/lib/twitter_cldr/shared/currencies.rb +20 -13
- data/lib/twitter_cldr/tokenizers.rb +10 -9
- data/lib/twitter_cldr/tokenizers/base.rb +33 -21
- data/lib/twitter_cldr/tokenizers/calendars/additional_date_format_selector.rb +86 -0
- data/lib/twitter_cldr/tokenizers/calendars/date_tokenizer.rb +20 -11
- data/lib/twitter_cldr/tokenizers/calendars/datetime_tokenizer.rb +50 -13
- data/lib/twitter_cldr/tokenizers/calendars/time_tokenizer.rb +19 -10
- data/lib/twitter_cldr/tokenizers/calendars/timespan_tokenizer.rb +32 -32
- data/lib/twitter_cldr/tokenizers/numbers/number_tokenizer.rb +45 -22
- data/lib/twitter_cldr/utils.rb +16 -1
- data/lib/twitter_cldr/version.rb +1 -1
- data/resources/collation/tailoring/af.yml +1 -0
- data/resources/collation/tailoring/ar.yml +3 -2
- data/resources/collation/tailoring/be.yml +7 -0
- data/resources/collation/tailoring/bg.yml +5 -0
- data/resources/collation/tailoring/bn.yml +9 -0
- data/resources/collation/tailoring/ca.yml +3 -2
- data/resources/collation/tailoring/cs.yml +3 -2
- data/resources/collation/tailoring/cy.yml +51 -0
- data/resources/collation/tailoring/da.yml +3 -2
- data/resources/collation/tailoring/de.yml +1 -0
- data/resources/collation/tailoring/el.yml +1 -0
- data/resources/collation/tailoring/en.yml +1 -0
- data/resources/collation/tailoring/es.yml +3 -2
- data/resources/collation/tailoring/eu.yml +1 -0
- data/resources/collation/tailoring/fa.yml +3 -2
- data/resources/collation/tailoring/fi.yml +3 -2
- data/resources/collation/tailoring/fil.yml +3 -2
- data/resources/collation/tailoring/fr.yml +1 -0
- data/resources/collation/tailoring/ga.yml +5 -0
- data/resources/collation/tailoring/gl.yml +5 -0
- data/resources/collation/tailoring/he.yml +1 -0
- data/resources/collation/tailoring/hi.yml +3 -2
- data/resources/collation/tailoring/hu.yml +3 -2
- data/resources/collation/tailoring/id.yml +1 -0
- data/resources/collation/tailoring/it.yml +1 -0
- data/resources/collation/tailoring/ja.yml +107 -54
- data/resources/collation/tailoring/ko.yml +3 -2
- data/resources/collation/tailoring/lv.yml +35 -0
- data/resources/collation/tailoring/ms.yml +1 -0
- data/resources/collation/tailoring/nb.yml +3 -2
- data/resources/collation/tailoring/nl.yml +1 -0
- data/resources/collation/tailoring/pl.yml +3 -2
- data/resources/collation/tailoring/pt.yml +1 -0
- data/resources/collation/tailoring/ro.yml +31 -0
- data/resources/collation/tailoring/ru.yml +1 -0
- data/resources/collation/tailoring/sk.yml +35 -0
- data/resources/collation/tailoring/sq.yml +65 -0
- data/resources/collation/tailoring/sr.yml +5 -0
- data/resources/collation/tailoring/sv.yml +3 -2
- data/resources/collation/tailoring/ta.yml +57 -0
- data/resources/collation/tailoring/th.yml +3 -2
- data/resources/collation/tailoring/tr.yml +3 -2
- data/resources/collation/tailoring/uk.yml +3 -2
- data/resources/collation/tailoring/ur.yml +3 -2
- data/resources/collation/tailoring/zh-Hant.yml +3 -2
- data/resources/collation/tailoring/zh.yml +3 -2
- data/resources/collation/tries/be.dump +0 -0
- data/resources/collation/tries/bg.dump +0 -0
- data/resources/collation/tries/bn.dump +0 -0
- data/resources/collation/tries/cy.dump +0 -0
- data/resources/collation/tries/ga.dump +0 -0
- data/resources/collation/tries/gl.dump +0 -0
- data/resources/collation/tries/lv.dump +0 -0
- data/resources/collation/tries/ro.dump +0 -0
- data/resources/collation/tries/sk.dump +0 -0
- data/resources/collation/tries/sq.dump +0 -0
- data/resources/collation/tries/sr.dump +0 -0
- data/resources/collation/tries/ta.dump +0 -0
- data/resources/custom/locales/ar/units.yml +6 -6
- data/resources/custom/locales/be/units.yml +27 -0
- data/resources/custom/locales/bg/units.yml +19 -0
- data/resources/custom/locales/bn/units.yml +7 -0
- data/resources/custom/locales/cs/units.yml +3 -3
- data/resources/custom/locales/cy/units.yml +35 -0
- data/resources/custom/locales/fil/units.yml +2 -2
- data/resources/custom/locales/ga/units.yml +24 -0
- data/resources/custom/locales/gl/units.yml +19 -0
- data/resources/custom/locales/hu/plurals.yml +3 -0
- data/resources/custom/locales/hu/units.yml +4 -0
- data/resources/custom/locales/lv/units.yml +23 -0
- data/resources/custom/locales/ms/units.yml +1 -1
- data/resources/custom/locales/ro/units.yml +23 -0
- data/resources/custom/locales/sk/units.yml +23 -0
- data/resources/custom/locales/sr/units.yml +27 -0
- data/resources/custom/locales/ta/units.yml +11 -0
- data/resources/custom/locales/th/calendars.yml +14 -0
- data/resources/locales/af/calendars.yml +56 -0
- data/resources/locales/af/currencies.yml +358 -0
- data/resources/locales/af/languages.yml +23 -3
- data/resources/locales/af/numbers.yml +22 -8
- data/resources/locales/af/units.yml +26 -54
- data/resources/locales/ar/calendars.yml +99 -6
- data/resources/locales/ar/currencies.yml +1491 -0
- data/resources/locales/ar/languages.yml +33 -6
- data/resources/locales/ar/numbers.yml +27 -14
- data/resources/locales/ar/units.yml +31 -31
- data/resources/locales/be/calendars.yml +229 -0
- data/resources/locales/be/currencies.yml +66 -0
- data/resources/locales/be/languages.yml +149 -0
- data/resources/locales/be/layout.yml +4 -0
- data/resources/locales/be/lists.yml +7 -0
- data/resources/locales/be/numbers.yml +43 -0
- data/resources/locales/be/plurals.yml +5 -0
- data/resources/locales/be/units.yml +87 -0
- data/resources/locales/bg/calendars.yml +220 -0
- data/resources/locales/bg/currencies.yml +773 -0
- data/resources/locales/bg/languages.yml +513 -0
- data/resources/locales/bg/layout.yml +4 -0
- data/resources/locales/bg/lists.yml +7 -0
- data/resources/locales/bg/numbers.yml +57 -0
- data/resources/locales/bg/plurals.yml +3 -0
- data/resources/locales/bg/units.yml +108 -0
- data/resources/locales/bn/calendars.yml +205 -0
- data/resources/locales/bn/currencies.yml +564 -0
- data/resources/locales/bn/languages.yml +513 -0
- data/resources/locales/bn/layout.yml +4 -0
- data/resources/locales/bn/lists.yml +7 -0
- data/resources/locales/bn/numbers.yml +57 -0
- data/resources/locales/bn/plurals.yml +3 -0
- data/resources/locales/bn/units.yml +108 -0
- data/resources/locales/ca/calendars.yml +70 -21
- data/resources/locales/ca/currencies.yml +904 -0
- data/resources/locales/ca/languages.yml +70 -5
- data/resources/locales/ca/numbers.yml +19 -6
- data/resources/locales/ca/units.yml +0 -28
- data/resources/locales/cs/calendars.yml +73 -27
- data/resources/locales/cs/currencies.yml +1063 -0
- data/resources/locales/cs/languages.yml +113 -31
- data/resources/locales/cs/numbers.yml +17 -4
- data/resources/locales/cs/units.yml +0 -28
- data/resources/locales/cy/calendars.yml +266 -0
- data/resources/locales/cy/currencies.yml +54 -0
- data/resources/locales/cy/languages.yml +92 -0
- data/resources/locales/cy/layout.yml +4 -0
- data/resources/locales/cy/lists.yml +7 -0
- data/resources/locales/cy/numbers.yml +49 -0
- data/resources/locales/cy/plurals.yml +4 -0
- data/resources/locales/cy/units.yml +73 -0
- data/resources/locales/da/calendars.yml +117 -16
- data/resources/locales/da/currencies.yml +814 -0
- data/resources/locales/da/languages.yml +66 -5
- data/resources/locales/da/numbers.yml +16 -3
- data/resources/locales/da/units.yml +21 -35
- data/resources/locales/de/calendars.yml +115 -17
- data/resources/locales/de/currencies.yml +843 -0
- data/resources/locales/de/languages.yml +5 -3
- data/resources/locales/de/numbers.yml +18 -5
- data/resources/locales/de/units.yml +0 -28
- data/resources/locales/el/calendars.yml +61 -8
- data/resources/locales/el/currencies.yml +866 -0
- data/resources/locales/el/languages.yml +61 -5
- data/resources/locales/el/numbers.yml +18 -5
- data/resources/locales/el/units.yml +7 -42
- data/resources/locales/en/calendars.yml +43 -4
- data/resources/locales/en/currencies.yml +912 -0
- data/resources/locales/en/languages.yml +26 -6
- data/resources/locales/en/numbers.yml +17 -4
- data/resources/locales/es/calendars.yml +60 -0
- data/resources/locales/es/currencies.yml +820 -0
- data/resources/locales/es/languages.yml +66 -1
- data/resources/locales/es/numbers.yml +20 -7
- data/resources/locales/es/units.yml +0 -28
- data/resources/locales/eu/calendars.yml +43 -2
- data/resources/locales/eu/currencies.yml +378 -0
- data/resources/locales/eu/languages.yml +29 -13
- data/resources/locales/eu/numbers.yml +17 -4
- data/resources/locales/eu/units.yml +22 -43
- data/resources/locales/fa/calendars.yml +57 -0
- data/resources/locales/fa/currencies.yml +449 -0
- data/resources/locales/fa/languages.yml +8 -3
- data/resources/locales/fa/numbers.yml +20 -7
- data/resources/locales/fa/units.yml +0 -42
- data/resources/locales/fi/calendars.yml +49 -1
- data/resources/locales/fi/currencies.yml +903 -0
- data/resources/locales/fi/languages.yml +58 -2
- data/resources/locales/fi/numbers.yml +25 -12
- data/resources/locales/fi/units.yml +0 -28
- data/resources/locales/fil/calendars.yml +51 -0
- data/resources/locales/fil/currencies.yml +357 -0
- data/resources/locales/fil/languages.yml +25 -8
- data/resources/locales/fil/numbers.yml +18 -5
- data/resources/locales/fil/units.yml +14 -28
- data/resources/locales/fr/calendars.yml +114 -12
- data/resources/locales/fr/currencies.yml +884 -0
- data/resources/locales/fr/languages.yml +43 -9
- data/resources/locales/fr/numbers.yml +22 -9
- data/resources/locales/fr/units.yml +2 -30
- data/resources/locales/ga/calendars.yml +187 -0
- data/resources/locales/ga/currencies.yml +513 -0
- data/resources/locales/ga/languages.yml +147 -0
- data/resources/locales/ga/layout.yml +4 -0
- data/resources/locales/ga/lists.yml +7 -0
- data/resources/locales/ga/numbers.yml +43 -0
- data/resources/locales/ga/plurals.yml +4 -0
- data/resources/locales/ga/units.yml +66 -0
- data/resources/locales/gl/calendars.yml +216 -0
- data/resources/locales/gl/currencies.yml +476 -0
- data/resources/locales/gl/languages.yml +213 -0
- data/resources/locales/gl/layout.yml +4 -0
- data/resources/locales/gl/lists.yml +7 -0
- data/resources/locales/gl/numbers.yml +57 -0
- data/resources/locales/gl/plurals.yml +3 -0
- data/resources/locales/gl/units.yml +108 -0
- data/resources/locales/he/calendars.yml +70 -18
- data/resources/locales/he/currencies.yml +497 -0
- data/resources/locales/he/languages.yml +301 -7
- data/resources/locales/he/lists.yml +2 -2
- data/resources/locales/he/numbers.yml +23 -8
- data/resources/locales/he/plurals.yml +3 -2
- data/resources/locales/he/units.yml +72 -30
- data/resources/locales/hi/calendars.yml +54 -1
- data/resources/locales/hi/currencies.yml +388 -0
- data/resources/locales/hi/languages.yml +2 -0
- data/resources/locales/hi/numbers.yml +21 -8
- data/resources/locales/hi/units.yml +15 -29
- data/resources/locales/hu/calendars.yml +52 -5
- data/resources/locales/hu/currencies.yml +640 -0
- data/resources/locales/hu/languages.yml +60 -4
- data/resources/locales/hu/numbers.yml +25 -12
- data/resources/locales/hu/units.yml +1 -29
- data/resources/locales/id/calendars.yml +125 -21
- data/resources/locales/id/currencies.yml +603 -0
- data/resources/locales/id/languages.yml +113 -51
- data/resources/locales/id/numbers.yml +16 -3
- data/resources/locales/id/units.yml +0 -28
- data/resources/locales/it/calendars.yml +59 -6
- data/resources/locales/it/currencies.yml +722 -0
- data/resources/locales/it/languages.yml +77 -5
- data/resources/locales/it/numbers.yml +22 -9
- data/resources/locales/it/units.yml +0 -14
- data/resources/locales/ja/calendars.yml +55 -5
- data/resources/locales/ja/currencies.yml +602 -0
- data/resources/locales/ja/languages.yml +103 -43
- data/resources/locales/ja/numbers.yml +18 -5
- data/resources/locales/ja/units.yml +6 -34
- data/resources/locales/ko/calendars.yml +50 -0
- data/resources/locales/ko/currencies.yml +596 -0
- data/resources/locales/ko/languages.yml +75 -8
- data/resources/locales/ko/numbers.yml +17 -4
- data/resources/locales/ko/units.yml +0 -28
- data/resources/locales/lv/calendars.yml +275 -0
- data/resources/locales/lv/currencies.yml +765 -0
- data/resources/locales/lv/languages.yml +576 -0
- data/resources/locales/lv/layout.yml +4 -0
- data/resources/locales/lv/lists.yml +7 -0
- data/resources/locales/lv/numbers.yml +58 -0
- data/resources/locales/lv/plurals.yml +4 -0
- data/resources/locales/lv/units.yml +136 -0
- data/resources/locales/ms/calendars.yml +86 -4
- data/resources/locales/ms/currencies.yml +341 -0
- data/resources/locales/ms/languages.yml +25 -3
- data/resources/locales/ms/numbers.yml +19 -6
- data/resources/locales/ms/units.yml +0 -56
- data/resources/locales/nb/calendars.yml +48 -1
- data/resources/locales/nb/currencies.yml +846 -0
- data/resources/locales/nb/languages.yml +44 -2
- data/resources/locales/nb/numbers.yml +16 -3
- data/resources/locales/nb/units.yml +6 -28
- data/resources/locales/nl/calendars.yml +110 -9
- data/resources/locales/nl/currencies.yml +640 -0
- data/resources/locales/nl/languages.yml +68 -8
- data/resources/locales/nl/numbers.yml +25 -12
- data/resources/locales/nl/units.yml +14 -28
- data/resources/locales/pl/calendars.yml +53 -6
- data/resources/locales/pl/currencies.yml +1100 -0
- data/resources/locales/pl/languages.yml +13 -6
- data/resources/locales/pl/lists.yml +2 -2
- data/resources/locales/pl/numbers.yml +18 -5
- data/resources/locales/pl/units.yml +51 -92
- data/resources/locales/pt/calendars.yml +121 -9
- data/resources/locales/pt/currencies.yml +904 -0
- data/resources/locales/pt/languages.yml +5 -3
- data/resources/locales/pt/numbers.yml +17 -4
- data/resources/locales/pt/units.yml +0 -28
- data/resources/locales/ro/calendars.yml +278 -0
- data/resources/locales/ro/currencies.yml +946 -0
- data/resources/locales/ro/languages.yml +576 -0
- data/resources/locales/ro/layout.yml +4 -0
- data/resources/locales/ro/lists.yml +7 -0
- data/resources/locales/ro/numbers.yml +58 -0
- data/resources/locales/ro/plurals.yml +3 -0
- data/resources/locales/ro/units.yml +136 -0
- data/resources/locales/ru/calendars.yml +72 -12
- data/resources/locales/ru/currencies.yml +1061 -0
- data/resources/locales/ru/languages.yml +51 -6
- data/resources/locales/ru/numbers.yml +21 -5
- data/resources/locales/ru/units.yml +0 -28
- data/resources/locales/sk/calendars.yml +275 -0
- data/resources/locales/sk/currencies.yml +713 -0
- data/resources/locales/sk/languages.yml +576 -0
- data/resources/locales/sk/layout.yml +4 -0
- data/resources/locales/sk/lists.yml +7 -0
- data/resources/locales/sk/numbers.yml +58 -0
- data/resources/locales/sk/plurals.yml +3 -0
- data/resources/locales/sk/units.yml +136 -0
- data/resources/locales/sq/calendars.yml +188 -0
- data/resources/locales/sq/currencies.yml +56 -0
- data/resources/locales/sq/languages.yml +17 -0
- data/resources/locales/sq/layout.yml +4 -0
- data/resources/locales/sq/lists.yml +7 -0
- data/resources/locales/sq/numbers.yml +43 -0
- data/resources/locales/sq/plurals.yml +3 -0
- data/resources/locales/sq/units.yml +73 -0
- data/resources/locales/sr/calendars.yml +285 -0
- data/resources/locales/sr/currencies.yml +1494 -0
- data/resources/locales/sr/languages.yml +513 -0
- data/resources/locales/sr/layout.yml +4 -0
- data/resources/locales/sr/lists.yml +7 -0
- data/resources/locales/sr/numbers.yml +59 -0
- data/resources/locales/sr/plurals.yml +5 -0
- data/resources/locales/sr/units.yml +164 -0
- data/resources/locales/sv/calendars.yml +59 -1
- data/resources/locales/sv/currencies.yml +919 -0
- data/resources/locales/sv/languages.yml +47 -2
- data/resources/locales/sv/numbers.yml +27 -12
- data/resources/locales/sv/units.yml +4 -32
- data/resources/locales/ta/calendars.yml +264 -0
- data/resources/locales/ta/currencies.yml +346 -0
- data/resources/locales/ta/languages.yml +512 -0
- data/resources/locales/ta/layout.yml +4 -0
- data/resources/locales/ta/lists.yml +7 -0
- data/resources/locales/ta/numbers.yml +57 -0
- data/resources/locales/ta/plurals.yml +3 -0
- data/resources/locales/ta/units.yml +108 -0
- data/resources/locales/th/calendars.yml +125 -27
- data/resources/locales/th/currencies.yml +602 -0
- data/resources/locales/th/languages.yml +70 -5
- data/resources/locales/th/numbers.yml +24 -11
- data/resources/locales/th/units.yml +0 -28
- data/resources/locales/tr/calendars.yml +62 -12
- data/resources/locales/tr/currencies.yml +571 -0
- data/resources/locales/tr/languages.yml +94 -29
- data/resources/locales/tr/numbers.yml +19 -6
- data/resources/locales/tr/units.yml +1 -29
- data/resources/locales/uk/calendars.yml +52 -0
- data/resources/locales/uk/currencies.yml +799 -0
- data/resources/locales/uk/languages.yml +57 -2
- data/resources/locales/uk/numbers.yml +18 -5
- data/resources/locales/uk/units.yml +0 -28
- data/resources/locales/ur/calendars.yml +96 -32
- data/resources/locales/ur/currencies.yml +360 -0
- data/resources/locales/ur/languages.yml +49 -32
- data/resources/locales/ur/numbers.yml +13 -13
- data/resources/locales/ur/units.yml +28 -56
- data/resources/locales/zh-Hant/calendars.yml +59 -1
- data/resources/locales/zh-Hant/currencies.yml +602 -0
- data/resources/locales/zh-Hant/languages.yml +74 -8
- data/resources/locales/zh-Hant/numbers.yml +17 -4
- data/resources/locales/zh-Hant/units.yml +0 -28
- data/resources/locales/zh/calendars.yml +95 -35
- data/resources/locales/zh/currencies.yml +602 -0
- data/resources/locales/zh/languages.yml +116 -46
- data/resources/locales/zh/numbers.yml +20 -7
- data/resources/locales/zh/units.yml +6 -34
- data/resources/shared/currency_digits_and_rounding.yml +187 -0
- data/spec/bidi/bidi_spec.rb +1 -1
- data/spec/collation/tailoring_spec.rb +29 -25
- data/spec/formatters/calendars/datetime_formatter_spec.rb +50 -2
- data/spec/formatters/calendars/timespan_formatter_spec.rb +52 -8
- data/spec/formatters/numbers/abbreviated/abbreviated_number_formatter_spec.rb +81 -0
- data/spec/formatters/numbers/abbreviated/long_decimal_formatter_spec.rb +37 -0
- data/spec/formatters/numbers/abbreviated/short_decimal_formatter_spec.rb +37 -0
- data/spec/formatters/numbers/currency_formatter_spec.rb +10 -1
- data/spec/localized/localized_date_spec.rb +11 -11
- data/spec/localized/localized_datetime_spec.rb +27 -3
- data/spec/localized/localized_number_spec.rb +34 -6
- data/spec/localized/localized_time_spec.rb +1 -1
- data/spec/readme_spec.rb +24 -3
- data/spec/shared/currencies_spec.rb +7 -9
- data/spec/spec_helper.rb +7 -0
- data/spec/tokenizers/base_spec.rb +71 -21
- data/spec/tokenizers/calendars/additional_date_format_selector_spec.rb +131 -0
- data/spec/tokenizers/calendars/datetime_tokenizer_spec.rb +54 -27
- data/spec/tokenizers/calendars/time_tokenizer_spec.rb +16 -16
- data/spec/tokenizers/numbers/number_tokenizer_spec.rb +9 -21
- data/spec/utils/yaml/yaml_spec.rb +21 -16
- data/spec/utils_spec.rb +6 -2
- metadata +218 -37
@@ -6,54 +6,77 @@
|
|
6
6
|
module TwitterCldr
|
7
7
|
module Tokenizers
|
8
8
|
class NumberTokenizer < Base
|
9
|
-
|
9
|
+
ABBREVIATED_MIN_POWER = 3
|
10
|
+
ABBREVIATED_MAX_POWER = 14
|
11
|
+
|
12
|
+
VALID_TYPES = [:decimal, :percent, :currency, :short_decimal, :long_decimal]
|
13
|
+
TOKEN_SPLITTER_REGEX = /([^0*#,\.]*)([0#,\.]+)([^0*#,\.]*)$/
|
14
|
+
TOKEN_TYPE_REGEXES = {
|
15
|
+
:pattern => { :regex => /[0?#,\.]*/, :priority => 1 },
|
16
|
+
:plaintext => { :regex => //, :priority => 2 }
|
17
|
+
}
|
10
18
|
|
11
19
|
def initialize(options = {})
|
12
20
|
super(options)
|
13
21
|
|
14
|
-
@
|
22
|
+
@token_splitter_regexes = {
|
23
|
+
:else => TOKEN_SPLITTER_REGEX
|
24
|
+
}
|
15
25
|
|
16
|
-
@
|
17
|
-
|
26
|
+
@token_type_regexes = {
|
27
|
+
:else => TOKEN_TYPE_REGEXES
|
28
|
+
}
|
18
29
|
|
19
30
|
@base_path = [:numbers, :formats]
|
20
31
|
@symbol_path = [:numbers, :symbols]
|
21
32
|
|
22
33
|
@paths = {
|
23
|
-
|
24
|
-
|
25
|
-
|
34
|
+
:default => [:decimal, :patterns],
|
35
|
+
:decimal => [:decimal, :patterns],
|
36
|
+
:long_decimal => [:decimal, :patterns, :long],
|
37
|
+
:short_decimal => [:decimal, :patterns, :short],
|
38
|
+
:currency => [:currency, :patterns],
|
39
|
+
:percent => [:percent, :patterns]
|
26
40
|
}
|
27
41
|
end
|
28
42
|
|
29
43
|
def tokens(options = {})
|
30
|
-
|
31
|
-
|
44
|
+
@type = options[:type] || @type || :default
|
45
|
+
@format = options[:format] || @format || :default
|
32
46
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
insert_point[:positive] = positive
|
47
|
+
path = full_path
|
48
|
+
positive, negative = traverse(path).to_s.split(/;/)
|
49
|
+
sign = options[:sign] || :positive
|
37
50
|
|
38
|
-
|
39
|
-
|
51
|
+
pattern = case sign
|
52
|
+
when :negative
|
53
|
+
if negative
|
54
|
+
"#{symbols[:minus] || '-'}#{negative}"
|
55
|
+
else
|
56
|
+
"#{symbols[:minus] || '-'}#{positive}"
|
57
|
+
end
|
40
58
|
else
|
41
|
-
|
42
|
-
end
|
59
|
+
positive
|
43
60
|
end
|
44
61
|
|
45
|
-
|
46
|
-
tokens_for(full_path_for(sign), nil)
|
62
|
+
tokens_for_pattern(pattern, path, [sign])
|
47
63
|
end
|
48
64
|
|
49
65
|
def symbols
|
50
|
-
|
66
|
+
traverse(@symbol_path)
|
67
|
+
end
|
68
|
+
|
69
|
+
def valid_types
|
70
|
+
VALID_TYPES.select do |type|
|
71
|
+
result = traverse(@base_path + @paths[type])
|
72
|
+
!!result ? result.size > 0 : result
|
73
|
+
end
|
51
74
|
end
|
52
75
|
|
53
76
|
protected
|
54
77
|
|
55
|
-
def
|
56
|
-
@base_path + [@type] +
|
78
|
+
def full_path
|
79
|
+
@base_path + paths[@type] + [@format]
|
57
80
|
end
|
58
81
|
|
59
82
|
def init_resources
|
data/lib/twitter_cldr/utils.rb
CHANGED
@@ -29,11 +29,26 @@ module TwitterCldr
|
|
29
29
|
elsif first.is_a?(Array) && second.is_a?(Array)
|
30
30
|
second.each_with_index { |elem, index| first[index] = deep_merge!(first[index], elem) }
|
31
31
|
else
|
32
|
-
|
32
|
+
return second
|
33
33
|
end
|
34
34
|
first
|
35
35
|
end
|
36
36
|
|
37
|
+
def deep_merge_hash(first, second, &block)
|
38
|
+
target = first.dup
|
39
|
+
|
40
|
+
second.keys.each do |key|
|
41
|
+
if second[key].is_a?(Hash) && first[key].is_a?(Hash)
|
42
|
+
target[key] = deep_merge_hash(target[key], second[key], &block)
|
43
|
+
next
|
44
|
+
end
|
45
|
+
|
46
|
+
target[key] = block_given? ? yield(first[key], second[key]) : second[key]
|
47
|
+
end
|
48
|
+
|
49
|
+
target
|
50
|
+
end
|
51
|
+
|
37
52
|
def compute_cache_key(*pieces)
|
38
53
|
if pieces && pieces.size > 0
|
39
54
|
pieces.join("|").hash
|
data/lib/twitter_cldr/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
:collator_options: {}
|
3
|
-
:tailored_table: 0629; [6144, 87, 5]
|
3
|
+
:tailored_table: ! '0629; [6144, 87, 5]
|
4
4
|
|
5
5
|
FE94; [6144, 87, 6]
|
6
6
|
|
@@ -18,5 +18,6 @@
|
|
18
18
|
|
19
19
|
FC90; [6287, 87, A]
|
20
20
|
|
21
|
-
FC5D; [6287, 87, B]
|
21
|
+
FC5D; [6287, 87, B]'
|
22
22
|
:suppressed_contractions: ''
|
23
|
+
...
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
:collator_options: {}
|
3
|
-
:tailored_table: 0063 030C; [2C04, 5, 5]
|
3
|
+
:tailored_table: ! '0063 030C; [2C04, 5, 5]
|
4
4
|
|
5
5
|
0043 030C; [2C04, 5, 86]
|
6
6
|
|
@@ -22,5 +22,6 @@
|
|
22
22
|
|
23
23
|
007A 030C; [5A04, 5, 5]
|
24
24
|
|
25
|
-
005A 030C; [5A04, 5, 86]
|
25
|
+
005A 030C; [5A04, 5, 86]'
|
26
26
|
:suppressed_contractions: ''
|
27
|
+
...
|
@@ -0,0 +1,51 @@
|
|
1
|
+
---
|
2
|
+
:collator_options: {}
|
3
|
+
:tailored_table: ! '0063 0068; [2C04, 5, 5]
|
4
|
+
|
5
|
+
0043 0068; [2C04, 5, 46]
|
6
|
+
|
7
|
+
0043 0048; [2C04, 5, 87]
|
8
|
+
|
9
|
+
0064 0064; [2E04, 5, 5]
|
10
|
+
|
11
|
+
0044 0064; [2E04, 5, 46]
|
12
|
+
|
13
|
+
0044 0044; [2E04, 5, 87]
|
14
|
+
|
15
|
+
0066 0066; [3204, 5, 5]
|
16
|
+
|
17
|
+
0046 0066; [3204, 5, 46]
|
18
|
+
|
19
|
+
0046 0046; [3204, 5, 87]
|
20
|
+
|
21
|
+
006E 0067; [3404, 5, 5]
|
22
|
+
|
23
|
+
004E 0067; [3404, 5, 46]
|
24
|
+
|
25
|
+
004E 0047; [3404, 5, 87]
|
26
|
+
|
27
|
+
006C 006C; [3E04, 5, 5]
|
28
|
+
|
29
|
+
004C 006C; [3E04, 5, 46]
|
30
|
+
|
31
|
+
004C 004C; [3E04, 5, 87]
|
32
|
+
|
33
|
+
0070 0068; [4604, 5, 5]
|
34
|
+
|
35
|
+
0050 0068; [4604, 5, 46]
|
36
|
+
|
37
|
+
0050 0048; [4604, 5, 87]
|
38
|
+
|
39
|
+
0072 0068; [4A04, 5, 5]
|
40
|
+
|
41
|
+
0052 0068; [4A04, 5, 46]
|
42
|
+
|
43
|
+
0052 0048; [4A04, 5, 87]
|
44
|
+
|
45
|
+
0074 0068; [4E04, 5, 5]
|
46
|
+
|
47
|
+
0054 0068; [4E04, 5, 46]
|
48
|
+
|
49
|
+
0054 0048; [4E04, 5, 87]'
|
50
|
+
:suppressed_contractions: ''
|
51
|
+
...
|
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
:collator_options:
|
3
3
|
:case_first: :upper
|
4
|
-
:tailored_table: 0111; [2D, 87, 5]
|
4
|
+
:tailored_table: ! '0111; [2D, 87, 5]
|
5
5
|
|
6
6
|
0110; [2D, 87, 86]
|
7
7
|
|
@@ -57,5 +57,6 @@
|
|
57
57
|
|
58
58
|
0041 0061; [5AA1, 5, 48][6, 0, C0]
|
59
59
|
|
60
|
-
0041 0041; [5AA1, 5, 89][6, 0, C0]
|
60
|
+
0041 0041; [5AA1, 5, 89][6, 0, C0]'
|
61
61
|
:suppressed_contractions: ''
|
62
|
+
...
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
:collator_options: {}
|
3
|
-
:tailored_table: 0650; [0, D3, 5][0, A, C0]
|
3
|
+
:tailored_table: ! '0650; [0, D3, 5][0, A, C0]
|
4
4
|
|
5
5
|
064F; [0, D3, 5][0, B, C0]
|
6
6
|
|
@@ -70,5 +70,6 @@
|
|
70
70
|
|
71
71
|
06CD; [6289, 8C, 5]
|
72
72
|
|
73
|
-
06CE; [6289, 8D, 5]
|
73
|
+
06CE; [6289, 8D, 5]'
|
74
74
|
:suppressed_contractions: ''
|
75
|
+
...
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
:collator_options: {}
|
3
|
-
:tailored_table: 0111; [2D, 87, 5][4, 5, 5][0, D0, 5][0, 3D, C0]
|
3
|
+
:tailored_table: ! '0111; [2D, 87, 5][4, 5, 5][0, D0, 5][0, 3D, C0]
|
4
4
|
|
5
5
|
0110; [2D, 87, 86][4, 5, 5][0, D0, 5][0, 3D, C0]
|
6
6
|
|
@@ -42,5 +42,6 @@
|
|
42
42
|
|
43
43
|
00F8; [5AA1, 87, 5][6, 0, C0]
|
44
44
|
|
45
|
-
00D8; [5AA1, 87, 86][6, 0, C0]
|
45
|
+
00D8; [5AA1, 87, 86][6, 0, C0]'
|
46
46
|
:suppressed_contractions: ''
|
47
|
+
...
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
:collator_options: {}
|
3
|
-
:tailored_table: 006E 0303; [4204, 5, 5]
|
3
|
+
:tailored_table: ! '006E 0303; [4204, 5, 5]
|
4
4
|
|
5
5
|
004E 0303; [4204, 5, 86]
|
6
6
|
|
@@ -8,5 +8,6 @@
|
|
8
8
|
|
9
9
|
004E 0067; [4205, 5, 46]
|
10
10
|
|
11
|
-
004E 0047; [4205, 5, 87]
|
11
|
+
004E 0047; [4205, 5, 87]'
|
12
12
|
:suppressed_contractions: ''
|
13
|
+
...
|
@@ -1,8 +1,9 @@
|
|
1
1
|
---
|
2
2
|
:collator_options: {}
|
3
|
-
:tailored_table: 0902; [680B, 5, 5][4, 0, C0]
|
3
|
+
:tailored_table: ! '0902; [680B, 5, 5][4, 0, C0]
|
4
4
|
|
5
5
|
0901; [680B, 87, 5][4, 0, C0]
|
6
6
|
|
7
|
-
0903; [680B, 5, 5][5, 0, C0]
|
7
|
+
0903; [680B, 5, 5][5, 0, C0]'
|
8
8
|
:suppressed_contractions: ''
|
9
|
+
...
|
@@ -1,6 +1,6 @@
|
|
1
1
|
---
|
2
2
|
:collator_options: {}
|
3
|
-
:tailored_table: 0063 0073; [2C04, 5, 5]
|
3
|
+
:tailored_table: ! '0063 0073; [2C04, 5, 5]
|
4
4
|
|
5
5
|
0043 0073; [2C04, 5, 47]
|
6
6
|
|
@@ -122,5 +122,6 @@
|
|
122
122
|
|
123
123
|
005A 007A 0073; [5A04, 5, 48][5A04, 5, 5]
|
124
124
|
|
125
|
-
005A 005A 0053; [5A04, 5, 8A][5A04, 5, 89]
|
125
|
+
005A 005A 0053; [5A04, 5, 8A][5A04, 5, 89]'
|
126
126
|
:suppressed_contractions: ''
|
127
|
+
...
|