mini-pro-pkg 0.0.1
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.
- checksums.yaml +7 -0
- data/mini-pro-pkg.gemspec +12 -0
- data/stringex-2.8.6/Gemfile +51 -0
- data/stringex-2.8.6/MIT-LICENSE +20 -0
- data/stringex-2.8.6/README.md +162 -0
- data/stringex-2.8.6/Rakefile +57 -0
- data/stringex-2.8.6/VERSION +1 -0
- data/stringex-2.8.6/init.rb +3 -0
- data/stringex-2.8.6/lib/stringex/acts_as_url/adapter/active_record.rb +23 -0
- data/stringex-2.8.6/lib/stringex/acts_as_url/adapter/base.rb +240 -0
- data/stringex-2.8.6/lib/stringex/acts_as_url/adapter/data_mapper.rb +61 -0
- data/stringex-2.8.6/lib/stringex/acts_as_url/adapter/mongoid.rb +37 -0
- data/stringex-2.8.6/lib/stringex/acts_as_url/adapter.rb +26 -0
- data/stringex-2.8.6/lib/stringex/acts_as_url.rb +107 -0
- data/stringex-2.8.6/lib/stringex/configuration/acts_as_url.rb +50 -0
- data/stringex-2.8.6/lib/stringex/configuration/base.rb +58 -0
- data/stringex-2.8.6/lib/stringex/configuration/configurator.rb +25 -0
- data/stringex-2.8.6/lib/stringex/configuration/string_extensions.rb +20 -0
- data/stringex-2.8.6/lib/stringex/configuration.rb +4 -0
- data/stringex-2.8.6/lib/stringex/configuration_lite.rb +3 -0
- data/stringex-2.8.6/lib/stringex/core_ext.rb +10 -0
- data/stringex-2.8.6/lib/stringex/localization/backend/base.rb +13 -0
- data/stringex-2.8.6/lib/stringex/localization/backend/i18n.rb +86 -0
- data/stringex-2.8.6/lib/stringex/localization/backend/internal.rb +47 -0
- data/stringex-2.8.6/lib/stringex/localization/conversion_expressions.rb +154 -0
- data/stringex-2.8.6/lib/stringex/localization/converter.rb +129 -0
- data/stringex-2.8.6/lib/stringex/localization/default_conversions.rb +89 -0
- data/stringex-2.8.6/lib/stringex/localization.rb +112 -0
- data/stringex-2.8.6/lib/stringex/rails/railtie.rb +10 -0
- data/stringex-2.8.6/lib/stringex/string_extensions.rb +228 -0
- data/stringex-2.8.6/lib/stringex/unidecoder.rb +82 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x00.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x01.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x02.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x03.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x04.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x05.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x06.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x07.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x09.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x0a.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x0b.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x0c.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x0d.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x0e.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x0f.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x10.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x11.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x12.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x13.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x14.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x15.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x16.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x17.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x18.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x1e.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x1f.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x20.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x21.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x22.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x23.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x24.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x25.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x26.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x27.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x28.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x2e.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x2f.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x30.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x31.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x32.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x33.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x4d.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x4e.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x4f.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x50.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x51.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x52.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x53.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x54.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x55.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x56.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x57.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x58.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x59.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x5a.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x5b.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x5c.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x5d.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x5e.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x5f.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x60.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x61.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x62.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x63.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x64.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x65.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x66.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x67.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x68.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x69.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x6a.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x6b.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x6c.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x6d.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x6e.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x6f.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x70.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x71.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x72.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x73.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x74.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x75.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x76.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x77.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x78.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x79.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x7a.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x7b.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x7c.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x7d.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x7e.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x7f.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x80.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x81.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x82.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x83.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x84.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x85.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x86.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x87.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x88.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x89.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x8a.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x8b.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x8c.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x8d.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x8e.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x8f.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x90.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x91.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x92.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x93.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x94.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x95.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x96.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x97.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x98.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x99.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x9a.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x9b.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x9c.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x9d.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x9e.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/x9f.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xa0.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xa1.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xa2.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xa3.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xa4.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xac.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xad.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xae.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xaf.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xb0.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xb1.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xb2.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xb3.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xb4.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xb5.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xb6.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xb7.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xb8.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xb9.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xba.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xbb.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xbc.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xbd.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xbe.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xbf.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xc0.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xc1.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xc2.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xc3.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xc4.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xc5.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xc6.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xc7.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xc8.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xc9.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xca.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xcb.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xcc.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xcd.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xce.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xcf.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xd0.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xd1.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xd2.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xd3.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xd4.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xd5.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xd6.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xd7.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xf9.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xfa.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xfb.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xfc.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xfd.yml +256 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xfe.yml +257 -0
- data/stringex-2.8.6/lib/stringex/unidecoder_data/xff.yml +257 -0
- data/stringex-2.8.6/lib/stringex/version.rb +8 -0
- data/stringex-2.8.6/lib/stringex.rb +17 -0
- data/stringex-2.8.6/lib/stringex_lite.rb +15 -0
- data/stringex-2.8.6/locales/da.yml +76 -0
- data/stringex-2.8.6/locales/de.yml +77 -0
- data/stringex-2.8.6/locales/en.yml +69 -0
- data/stringex-2.8.6/locales/fr.yml +72 -0
- data/stringex-2.8.6/locales/nb.yml +76 -0
- data/stringex-2.8.6/locales/nl.yml +69 -0
- data/stringex-2.8.6/locales/no.yml +76 -0
- data/stringex-2.8.6/locales/pl.yml +88 -0
- data/stringex-2.8.6/locales/pt-BR.yml +69 -0
- data/stringex-2.8.6/locales/ru.yml +69 -0
- data/stringex-2.8.6/locales/sv.yml +76 -0
- data/stringex-2.8.6/stringex.gemspec +290 -0
- data/stringex-2.8.6/test/performance/localization_performance_test.rb +24 -0
- data/stringex-2.8.6/test/test_helper.rb +2 -0
- data/stringex-2.8.6/test/unit/acts_as_url/adapter/activerecord.rb +71 -0
- data/stringex-2.8.6/test/unit/acts_as_url/adapter/datamapper.rb +83 -0
- data/stringex-2.8.6/test/unit/acts_as_url/adapter/mongoid.rb +82 -0
- data/stringex-2.8.6/test/unit/acts_as_url_configuration_test.rb +51 -0
- data/stringex-2.8.6/test/unit/acts_as_url_integration_test.rb +425 -0
- data/stringex-2.8.6/test/unit/localization/da_test.rb +118 -0
- data/stringex-2.8.6/test/unit/localization/de_test.rb +118 -0
- data/stringex-2.8.6/test/unit/localization/default_test.rb +115 -0
- data/stringex-2.8.6/test/unit/localization/en_test.rb +118 -0
- data/stringex-2.8.6/test/unit/localization/fr_test.rb +118 -0
- data/stringex-2.8.6/test/unit/localization/nl_test.rb +118 -0
- data/stringex-2.8.6/test/unit/localization/pl_test.rb +118 -0
- data/stringex-2.8.6/test/unit/localization/pt_br_test.rb +118 -0
- data/stringex-2.8.6/test/unit/localization/ru_test.rb +130 -0
- data/stringex-2.8.6/test/unit/localization/sv_test.rb +118 -0
- data/stringex-2.8.6/test/unit/localization_18n_failure_test.rb +40 -0
- data/stringex-2.8.6/test/unit/localization_test.rb +162 -0
- data/stringex-2.8.6/test/unit/string_extensions_configuration_test.rb +17 -0
- data/stringex-2.8.6/test/unit/string_extensions_test.rb +321 -0
- data/stringex-2.8.6/test/unit/unicode_point_suite/basic_greek_test.rb +113 -0
- data/stringex-2.8.6/test/unit/unicode_point_suite/basic_latin_test.rb +144 -0
- data/stringex-2.8.6/test/unit/unicode_point_suite/codepoint_test_helper.rb +32 -0
- data/stringex-2.8.6/test/unit/unidecoder/bad_localization.yml +1 -0
- data/stringex-2.8.6/test/unit/unidecoder/localization.yml +4 -0
- data/stringex-2.8.6/test/unit/unidecoder_test.rb +104 -0
- data/stringex-2.8.6/test/unit/version_test.rb +12 -0
- metadata +294 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
|
|
3
|
+
require 'test_helper'
|
|
4
|
+
require 'i18n'
|
|
5
|
+
require 'stringex'
|
|
6
|
+
|
|
7
|
+
class BrazilianYAMLLocalizationTest < Test::Unit::TestCase
|
|
8
|
+
def setup
|
|
9
|
+
Stringex::Localization.reset!
|
|
10
|
+
Stringex::Localization.backend = :i18n
|
|
11
|
+
Stringex::Localization.backend.load_translations :'pt-BR'
|
|
12
|
+
Stringex::Localization.locale = :'pt-BR'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
{
|
|
16
|
+
"foo & bar" => "foo e bar",
|
|
17
|
+
"AT&T" => "AT e T",
|
|
18
|
+
"99° is normal" => "99 graus is normal",
|
|
19
|
+
"4 ÷ 2 is 2" => "4 dividido por 2 is 2",
|
|
20
|
+
"webcrawler.com" => "webcrawler ponto com",
|
|
21
|
+
"Well..." => "Well reticências",
|
|
22
|
+
"x=1" => "x igual à 1",
|
|
23
|
+
"a #2 pencil" => "a número 2 pencil",
|
|
24
|
+
"100%" => "100 porcento",
|
|
25
|
+
"cost+tax" => "cost mais tax",
|
|
26
|
+
"batman/robin fan fiction" => "batman barra robin fan fiction",
|
|
27
|
+
"dial *69" => "dial estrela 69",
|
|
28
|
+
" i leave whitespace on ends unchanged " => " i leave whitespace on ends unchanged "
|
|
29
|
+
}.each do |original, converted|
|
|
30
|
+
define_method "test_character_conversion: '#{original}'" do
|
|
31
|
+
assert_equal converted, original.convert_miscellaneous_characters
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
{
|
|
36
|
+
"¤20" => "20 reais",
|
|
37
|
+
"$100" => "100 dólares",
|
|
38
|
+
"$19.99" => "19 dólares 99 cents",
|
|
39
|
+
"£100" => "100 libras",
|
|
40
|
+
"£19.99" => "19 libras 99 centavos",
|
|
41
|
+
"€100" => "100 euros",
|
|
42
|
+
"€19.99" => "19 euros 99 cents",
|
|
43
|
+
"¥1000" => "1000 yen"
|
|
44
|
+
}.each do |original, converted|
|
|
45
|
+
define_method "test_currency_conversion: '#{original}'" do
|
|
46
|
+
assert_equal converted, original.convert_miscellaneous_characters
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
{
|
|
51
|
+
"Tea & Sympathy" => "Tea e Sympathy",
|
|
52
|
+
"10¢" => "10 centavos",
|
|
53
|
+
"©2000" => "(c)2000",
|
|
54
|
+
"98° is fine" => "98 graus is fine",
|
|
55
|
+
"10÷5" => "10 dividido por 5",
|
|
56
|
+
""quoted"" => '"quoted"',
|
|
57
|
+
"to be continued…" => "to be continued...",
|
|
58
|
+
"2000–2004" => "2000-2004",
|
|
59
|
+
"I wish—oh, never mind" => "I wish--oh, never mind",
|
|
60
|
+
"½ ounce of gold" => "metade ounce of gold",
|
|
61
|
+
"1 and ¼ ounces of silver" => "1 and um quarto ounces of silver",
|
|
62
|
+
"9 and ¾ ounces of platinum" => "9 and três quartos ounces of platinum",
|
|
63
|
+
"3>2" => "3>2",
|
|
64
|
+
"2<3" => "2<3",
|
|
65
|
+
"two words" => "two words",
|
|
66
|
+
"£100" => "libras 100",
|
|
67
|
+
"Walmart®" => "Walmart(r)",
|
|
68
|
+
"'single quoted'" => "'single quoted'",
|
|
69
|
+
"2×4" => "2x4",
|
|
70
|
+
"Programming™" => "Programming(tm)",
|
|
71
|
+
"¥20000" => "yen 20000",
|
|
72
|
+
" i leave whitespace on ends unchanged " => " i leave whitespace on ends unchanged "
|
|
73
|
+
}.each do |original, converted|
|
|
74
|
+
define_method "test_html_entity_conversion: '#{original}'" do
|
|
75
|
+
assert_equal converted, original.convert_miscellaneous_html_entities
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
{
|
|
80
|
+
"½" => "metade",
|
|
81
|
+
"½" => "metade",
|
|
82
|
+
"½" => "metade",
|
|
83
|
+
"⅓" => "um terço",
|
|
84
|
+
"⅓" => "um terço",
|
|
85
|
+
"⅔" => "dois terços",
|
|
86
|
+
"⅔" => "dois terços",
|
|
87
|
+
"¼" => "um quarto",
|
|
88
|
+
"¼" => "um quarto",
|
|
89
|
+
"¼" => "um quarto",
|
|
90
|
+
"¾" => "três quartos",
|
|
91
|
+
"¾" => "três quartos",
|
|
92
|
+
"¾" => "três quartos",
|
|
93
|
+
"⅕" => "um quinto",
|
|
94
|
+
"⅕" => "um quinto",
|
|
95
|
+
"⅖" => "dois quintos",
|
|
96
|
+
"⅖" => "dois quintos",
|
|
97
|
+
"⅗" => "três quintos",
|
|
98
|
+
"⅗" => "três quintos",
|
|
99
|
+
"⅘" => "quatro quintos",
|
|
100
|
+
"⅘" => "quatro quintos",
|
|
101
|
+
"⅙" => "um sexto",
|
|
102
|
+
"⅙" => "um sexto",
|
|
103
|
+
"⅚" => "cinco sextos",
|
|
104
|
+
"⅚" => "cinco sextos",
|
|
105
|
+
"⅛" => "um oitavo",
|
|
106
|
+
"⅛" => "um oitavo",
|
|
107
|
+
"⅜" => "três oitavos",
|
|
108
|
+
"⅜" => "três oitavos",
|
|
109
|
+
"⅝" => "cinco oitavos",
|
|
110
|
+
"⅝" => "cinco oitavos",
|
|
111
|
+
"⅞" => "sete oitavos",
|
|
112
|
+
"⅞" => "sete oitavos"
|
|
113
|
+
}.each do |original, converted|
|
|
114
|
+
define_method "test_vulgar_fractions_conversion: #{original}" do
|
|
115
|
+
assert_equal converted, original.convert_vulgar_fractions
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
|
|
3
|
+
require 'test_helper'
|
|
4
|
+
require 'i18n'
|
|
5
|
+
require 'stringex'
|
|
6
|
+
|
|
7
|
+
class RussianYAMLLocalizationTest < Test::Unit::TestCase
|
|
8
|
+
def setup
|
|
9
|
+
Stringex::Localization.reset!
|
|
10
|
+
Stringex::Localization.backend = :i18n
|
|
11
|
+
Stringex::Localization.backend.load_translations :ru
|
|
12
|
+
Stringex::Localization.locale = :ru
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
{
|
|
16
|
+
"foo & bar" => "foo и bar",
|
|
17
|
+
"AT&T" => "AT и T",
|
|
18
|
+
"99° is normal" => "99 градусов is normal",
|
|
19
|
+
"4 ÷ 2 is 2" => "4 делить на 2 is 2",
|
|
20
|
+
"webcrawler.com" => "webcrawler точка com",
|
|
21
|
+
"Well..." => "Well многоточие",
|
|
22
|
+
"x=1" => "x равно 1",
|
|
23
|
+
"a #2 pencil" => "a номер 2 pencil",
|
|
24
|
+
"100%" => "100 процентов",
|
|
25
|
+
"cost+tax" => "cost плюс tax",
|
|
26
|
+
"batman/robin fan fiction" => "batman слеш robin fan fiction",
|
|
27
|
+
"dial *69" => "dial звезда 69",
|
|
28
|
+
" i leave whitespace on ends unchanged " => " i leave whitespace on ends unchanged "
|
|
29
|
+
}.each do |original, converted|
|
|
30
|
+
define_method "test_character_conversion: '#{original}'" do
|
|
31
|
+
assert_equal converted, original.convert_miscellaneous_characters
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
{
|
|
36
|
+
"¤20" => "20 рубль",
|
|
37
|
+
"$100" => "100 долларов",
|
|
38
|
+
"$19.99" => "19 долларов 99 центов",
|
|
39
|
+
"£100" => "100 фунтов",
|
|
40
|
+
"£19.99" => "19 фунтов 99 пенсов",
|
|
41
|
+
"€100" => "100 евро",
|
|
42
|
+
"€19.99" => "19 евро 99 центов",
|
|
43
|
+
"¥1000" => "1000 йен"
|
|
44
|
+
}.each do |original, converted|
|
|
45
|
+
define_method "test_currency_conversion: '#{original}'" do
|
|
46
|
+
assert_equal converted, original.convert_miscellaneous_characters
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
{
|
|
51
|
+
"Tea & Sympathy" => "Tea и Sympathy",
|
|
52
|
+
"10¢" => "10 центов",
|
|
53
|
+
"©2000" => "(c)2000",
|
|
54
|
+
"98° is fine" => "98 градусов is fine",
|
|
55
|
+
"10÷5" => "10 делить на 5",
|
|
56
|
+
""quoted"" => '"quoted"',
|
|
57
|
+
"to be continued…" => "to be continued...",
|
|
58
|
+
"2000–2004" => "2000-2004",
|
|
59
|
+
"I wish—oh, never mind" => "I wish--oh, never mind",
|
|
60
|
+
"½ ounce of gold" => "половина ounce of gold",
|
|
61
|
+
"1 and ¼ ounces of silver" => "1 and одна четверть ounces of silver",
|
|
62
|
+
"9 and ¾ ounces of platinum" => "9 and три четверти ounces of platinum",
|
|
63
|
+
"3>2" => "3>2",
|
|
64
|
+
"2<3" => "2<3",
|
|
65
|
+
"two words" => "two words",
|
|
66
|
+
"£100" => "фунтов 100",
|
|
67
|
+
"Walmart®" => "Walmart(r)",
|
|
68
|
+
"'single quoted'" => "'single quoted'",
|
|
69
|
+
"2×4" => "2x4",
|
|
70
|
+
"Programming™" => "Programming(tm)",
|
|
71
|
+
"¥20000" => "йен 20000",
|
|
72
|
+
" i leave whitespace on ends unchanged " => " i leave whitespace on ends unchanged "
|
|
73
|
+
}.each do |original, converted|
|
|
74
|
+
define_method "test_html_entity_conversion: '#{original}'" do
|
|
75
|
+
assert_equal converted, original.convert_miscellaneous_html_entities
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
{
|
|
80
|
+
"½" => "половина",
|
|
81
|
+
"½" => "половина",
|
|
82
|
+
"½" => "половина",
|
|
83
|
+
"⅓" => "одна треть",
|
|
84
|
+
"⅓" => "одна треть",
|
|
85
|
+
"⅔" => "две трети",
|
|
86
|
+
"⅔" => "две трети",
|
|
87
|
+
"¼" => "одна четверть",
|
|
88
|
+
"¼" => "одна четверть",
|
|
89
|
+
"¼" => "одна четверть",
|
|
90
|
+
"¾" => "три четверти",
|
|
91
|
+
"¾" => "три четверти",
|
|
92
|
+
"¾" => "три четверти",
|
|
93
|
+
"⅕" => "одна пятая",
|
|
94
|
+
"⅕" => "одна пятая",
|
|
95
|
+
"⅖" => "две пятых",
|
|
96
|
+
"⅖" => "две пятых",
|
|
97
|
+
"⅗" => "три пятых",
|
|
98
|
+
"⅗" => "три пятых",
|
|
99
|
+
"⅘" => "четыре пятых",
|
|
100
|
+
"⅘" => "четыре пятых",
|
|
101
|
+
"⅙" => "одна шестая",
|
|
102
|
+
"⅙" => "одна шестая",
|
|
103
|
+
"⅚" => "пять шестых",
|
|
104
|
+
"⅚" => "пять шестых",
|
|
105
|
+
"⅛" => "одна восьмая",
|
|
106
|
+
"⅛" => "одна восьмая",
|
|
107
|
+
"⅜" => "три восьмых",
|
|
108
|
+
"⅜" => "три восьмых",
|
|
109
|
+
"⅝" => "пять восьмых",
|
|
110
|
+
"⅝" => "пять восьмых",
|
|
111
|
+
"⅞" => "семь восьмых",
|
|
112
|
+
"⅞" => "семь восьмых"
|
|
113
|
+
}.each do |original, converted|
|
|
114
|
+
define_method "test_vulgar_fractions_conversion: #{original}" do
|
|
115
|
+
assert_equal converted, original.convert_vulgar_fractions
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
{
|
|
120
|
+
"foo & bar" => "foo-i-bar",
|
|
121
|
+
"AT&T" => "at-i-t",
|
|
122
|
+
"99° is normal" => "99-ghradusov-is-normal",
|
|
123
|
+
"4 ÷ 2 is 2" => "4-dielit-na-2-is-2",
|
|
124
|
+
"webcrawler.com" => "webcrawler-tochka-com",
|
|
125
|
+
}.each do |original, converted|
|
|
126
|
+
define_method "test_character_conversion_to_url: '#{original}'" do
|
|
127
|
+
assert_equal converted, original.to_url
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
|
|
3
|
+
require 'test_helper'
|
|
4
|
+
require 'i18n'
|
|
5
|
+
require 'stringex'
|
|
6
|
+
|
|
7
|
+
class SwedishYAMLLocalizationTest < Test::Unit::TestCase
|
|
8
|
+
def setup
|
|
9
|
+
Stringex::Localization.reset!
|
|
10
|
+
Stringex::Localization.backend = :i18n
|
|
11
|
+
Stringex::Localization.backend.load_translations :sv
|
|
12
|
+
Stringex::Localization.locale = :sv
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
{
|
|
16
|
+
"foo & bar" => "foo och bar",
|
|
17
|
+
"AT&T" => "AT och T",
|
|
18
|
+
"99° is normal" => "99 grader is normal",
|
|
19
|
+
"4 ÷ 2 is 2" => "4 delat med 2 is 2",
|
|
20
|
+
"webcrawler.com" => "webcrawler punkt com",
|
|
21
|
+
"Well..." => "Well punkt punkt punkt",
|
|
22
|
+
"x=1" => "x lika med 1",
|
|
23
|
+
"a #2 pencil" => "a nummer 2 pencil",
|
|
24
|
+
"100%" => "100 procent",
|
|
25
|
+
"cost+tax" => "cost plus tax",
|
|
26
|
+
"batman/robin fan fiction" => "batman slash robin fan fiction",
|
|
27
|
+
"dial *69" => "dial stjärna 69",
|
|
28
|
+
" i leave whitespace on ends unchanged " => " i leave whitespace on ends unchanged "
|
|
29
|
+
}.each do |original, converted|
|
|
30
|
+
define_method "test_character_conversion: '#{original}'" do
|
|
31
|
+
assert_equal converted, original.convert_miscellaneous_characters
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
{
|
|
36
|
+
"¤20" => "20 kronor",
|
|
37
|
+
"$100" => "100 dollar",
|
|
38
|
+
"$19.99" => "19 dollar 99 cent",
|
|
39
|
+
"£100" => "100 pund",
|
|
40
|
+
"£19.99" => "19 pund 99 pence",
|
|
41
|
+
"€100" => "100 euro",
|
|
42
|
+
"€19.99" => "19 euro 99 cent",
|
|
43
|
+
"¥1000" => "1000 yen"
|
|
44
|
+
}.each do |original, converted|
|
|
45
|
+
define_method "test_currency_conversion: '#{original}'" do
|
|
46
|
+
assert_equal converted, original.convert_miscellaneous_characters
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
{
|
|
51
|
+
"Tea & Sympathy" => "Tea och Sympathy",
|
|
52
|
+
"10¢" => "10 cents",
|
|
53
|
+
"©2000" => "(c)2000",
|
|
54
|
+
"98° is fine" => "98 grader is fine",
|
|
55
|
+
"10÷5" => "10 delat med 5",
|
|
56
|
+
""quoted"" => '"quoted"',
|
|
57
|
+
"to be continued…" => "to be continued...",
|
|
58
|
+
"2000–2004" => "2000-2004",
|
|
59
|
+
"I wish—oh, never mind" => "I wish--oh, never mind",
|
|
60
|
+
"½ ounce of gold" => "halv ounce of gold",
|
|
61
|
+
"1 and ¼ ounces of silver" => "1 and en fjärdedel ounces of silver",
|
|
62
|
+
"9 and ¾ ounces of platinum" => "9 and tre fjärdedelar ounces of platinum",
|
|
63
|
+
"3>2" => "3>2",
|
|
64
|
+
"2<3" => "2<3",
|
|
65
|
+
"two words" => "two words",
|
|
66
|
+
"£100" => "pund 100",
|
|
67
|
+
"Walmart®" => "Walmart(r)",
|
|
68
|
+
"'single quoted'" => "'single quoted'",
|
|
69
|
+
"2×4" => "2x4",
|
|
70
|
+
"Programming™" => "Programming(tm)",
|
|
71
|
+
"¥20000" => "yen 20000",
|
|
72
|
+
" i leave whitespace on ends unchanged " => " i leave whitespace on ends unchanged "
|
|
73
|
+
}.each do |original, converted|
|
|
74
|
+
define_method "test_html_entity_conversion: '#{original}'" do
|
|
75
|
+
assert_equal converted, original.convert_miscellaneous_html_entities
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
{
|
|
80
|
+
"½" => "halv",
|
|
81
|
+
"½" => "halv",
|
|
82
|
+
"½" => "halv",
|
|
83
|
+
"⅓" => "en tredjedel",
|
|
84
|
+
"⅓" => "en tredjedel",
|
|
85
|
+
"⅔" => "två tredjedelar",
|
|
86
|
+
"⅔" => "två tredjedelar",
|
|
87
|
+
"¼" => "en fjärdedel",
|
|
88
|
+
"¼" => "en fjärdedel",
|
|
89
|
+
"¼" => "en fjärdedel",
|
|
90
|
+
"¾" => "tre fjärdedelar",
|
|
91
|
+
"¾" => "tre fjärdedelar",
|
|
92
|
+
"¾" => "tre fjärdedelar",
|
|
93
|
+
"⅕" => "en femtedel",
|
|
94
|
+
"⅕" => "en femtedel",
|
|
95
|
+
"⅖" => "två femtedelar",
|
|
96
|
+
"⅖" => "två femtedelar",
|
|
97
|
+
"⅗" => "tre femtedelar",
|
|
98
|
+
"⅗" => "tre femtedelar",
|
|
99
|
+
"⅘" => "fyra femtedelar",
|
|
100
|
+
"⅘" => "fyra femtedelar",
|
|
101
|
+
"⅙" => "en sjättedel",
|
|
102
|
+
"⅙" => "en sjättedel",
|
|
103
|
+
"⅚" => "fem sjättedelar",
|
|
104
|
+
"⅚" => "fem sjättedelar",
|
|
105
|
+
"⅛" => "en åttondel",
|
|
106
|
+
"⅛" => "en åttondel",
|
|
107
|
+
"⅜" => "tre åttondelar",
|
|
108
|
+
"⅜" => "tre åttondelar",
|
|
109
|
+
"⅝" => "fem åttondelar",
|
|
110
|
+
"⅝" => "fem åttondelar",
|
|
111
|
+
"⅞" => "sju åttondelar",
|
|
112
|
+
"⅞" => "sju åttondelar"
|
|
113
|
+
}.each do |original, converted|
|
|
114
|
+
define_method "test_vulgar_fractions_conversion: #{original}" do
|
|
115
|
+
assert_equal converted, original.convert_vulgar_fractions
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require "test_helper"
|
|
2
|
+
require 'stringex'
|
|
3
|
+
|
|
4
|
+
class LocalizationI18nFailureTest < Test::Unit::TestCase
|
|
5
|
+
def setup
|
|
6
|
+
alias_i18n
|
|
7
|
+
Stringex::Localization.reset!
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_loading_i18n_backend_fails_if_no_i18n_module
|
|
11
|
+
assert_raise(Stringex::Localization::Backend::I18nNotDefined) do
|
|
12
|
+
Stringex::Localization.backend = :i18n
|
|
13
|
+
end
|
|
14
|
+
ensure
|
|
15
|
+
unalias_i18n
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def test_loading_i18n_backend_fails_if_i18n_defined_without_translate
|
|
19
|
+
Object.send :const_set, :I18n, Module.new
|
|
20
|
+
|
|
21
|
+
assert_raise(Stringex::Localization::Backend::I18nMissingTranslate) do
|
|
22
|
+
Stringex::Localization.backend = :i18n
|
|
23
|
+
end
|
|
24
|
+
ensure
|
|
25
|
+
Object.send :remove_const, :I18n
|
|
26
|
+
unalias_i18n
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
private
|
|
30
|
+
|
|
31
|
+
def alias_i18n
|
|
32
|
+
Object.send :const_set, :I18nBackup, I18n
|
|
33
|
+
Object.send :remove_const, :I18n
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def unalias_i18n
|
|
37
|
+
Object.send :const_set, :I18n, I18nBackup
|
|
38
|
+
Object.send :remove_const, :I18nBackup
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
require "test_helper"
|
|
2
|
+
require 'stringex'
|
|
3
|
+
require 'i18n'
|
|
4
|
+
|
|
5
|
+
class LocalizationTest < Test::Unit::TestCase
|
|
6
|
+
def setup
|
|
7
|
+
I18n.locale = :en
|
|
8
|
+
Stringex::Localization.reset!
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_stores_translations
|
|
12
|
+
Stringex::Localization.backend = :internal
|
|
13
|
+
|
|
14
|
+
data = { one: "number one", two: "number two" }
|
|
15
|
+
Stringex::Localization.store_translations :en, :test_store, data
|
|
16
|
+
|
|
17
|
+
data.each do |key, value|
|
|
18
|
+
assert_equal value, Stringex::Localization.translate(:test_store, key)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_converts_translation_keys_to_symbols
|
|
23
|
+
Stringex::Localization.backend = :internal
|
|
24
|
+
|
|
25
|
+
data = { "one" => "number one", "two" => "number two" }
|
|
26
|
+
Stringex::Localization.store_translations :en, :test_convert, data
|
|
27
|
+
|
|
28
|
+
data.each do |key, value|
|
|
29
|
+
assert_equal value, Stringex::Localization.translate(:test_convert, key)
|
|
30
|
+
assert_equal value, Stringex::Localization.translate(:test_convert, key.to_sym)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_can_translate
|
|
35
|
+
Stringex::Localization.backend = :internal
|
|
36
|
+
|
|
37
|
+
data = { one: "number one", two: "number two" }
|
|
38
|
+
Stringex::Localization.store_translations :en, :test_translate, data
|
|
39
|
+
|
|
40
|
+
data.each do |key, value|
|
|
41
|
+
assert_equal value, Stringex::Localization.translate(:test_translate, key)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def test_can_translate_when_given_string_as_key
|
|
46
|
+
Stringex::Localization.backend = :internal
|
|
47
|
+
|
|
48
|
+
data = { one: "number one", two: "number two" }
|
|
49
|
+
Stringex::Localization.store_translations :en, :test_translate, data
|
|
50
|
+
|
|
51
|
+
data.each do |key, value|
|
|
52
|
+
assert_equal value, Stringex::Localization.translate(:test_translate, key.to_s)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_returns_default_if_none_found
|
|
57
|
+
Stringex::Localization.backend = :internal
|
|
58
|
+
assert_equal "my default", Stringex::Localization.translate(:test_default, :nonexistent, default: "my default")
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_returns_nil_if_no_default
|
|
62
|
+
Stringex::Localization.backend = :internal
|
|
63
|
+
assert_nil Stringex::Localization.translate(:test_no_default, :nonexistent)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def test_falls_back_to_default_locale
|
|
67
|
+
Stringex::Localization.backend = :internal
|
|
68
|
+
Stringex::Localization.default_locale = :es
|
|
69
|
+
Stringex::Localization.locale = :da
|
|
70
|
+
|
|
71
|
+
data = { "one" => "number one", "two" => "number two" }
|
|
72
|
+
Stringex::Localization.store_translations :es, :test_default_locale, data
|
|
73
|
+
|
|
74
|
+
data.each do |key, value|
|
|
75
|
+
assert_equal value, Stringex::Localization.translate(:test_default_locale, key)
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def test_with_locale
|
|
80
|
+
Stringex::Localization.backend = :internal
|
|
81
|
+
Stringex::Localization.locale = :fr
|
|
82
|
+
assert_equal :fr, Stringex::Localization.locale
|
|
83
|
+
locale_set_in_block = nil
|
|
84
|
+
Stringex::Localization.with_locale :da do
|
|
85
|
+
locale_set_in_block = Stringex::Localization.locale
|
|
86
|
+
end
|
|
87
|
+
assert_equal :da, locale_set_in_block
|
|
88
|
+
assert_equal :fr, Stringex::Localization.locale
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def test_stores_translations_in_i18n
|
|
92
|
+
Stringex::Localization.backend = :i18n
|
|
93
|
+
|
|
94
|
+
data = { one: "number one", two: "number two" }
|
|
95
|
+
Stringex::Localization.store_translations :en, :test_i18n_store, data
|
|
96
|
+
|
|
97
|
+
data.each do |key, value|
|
|
98
|
+
assert_equal value, I18n.translate("stringex.test_i18n_store.#{key}")
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def test_can_translate_using_i18n
|
|
103
|
+
Stringex::Localization.backend = :i18n
|
|
104
|
+
|
|
105
|
+
data = { one: "number one", two: "number two" }
|
|
106
|
+
|
|
107
|
+
I18n.backend.store_translations :en, { stringex: { test_i18n_translation: data } }
|
|
108
|
+
|
|
109
|
+
data.each do |key, value|
|
|
110
|
+
assert_equal value, Stringex::Localization.translate(:test_i18n_translation, key)
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def test_allows_blank_translations
|
|
115
|
+
[:internal, :i18n].each do |backend|
|
|
116
|
+
Stringex::Localization.backend = backend
|
|
117
|
+
|
|
118
|
+
assert_equal "Test blank", "Test blank".convert_miscellaneous_html_entities
|
|
119
|
+
|
|
120
|
+
Stringex::Localization.store_translations :en, :html_entities, { nbsp: "" }
|
|
121
|
+
assert_equal "Testblank", "Test blank".convert_miscellaneous_html_entities
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def test_assigns_locale_in_i18n_backend
|
|
126
|
+
if other_locale = I18n.available_locales.find{|locale| ![:en, :de].include?(locale)}
|
|
127
|
+
I18n.locale = :en
|
|
128
|
+
Stringex::Localization.backend = :i18n
|
|
129
|
+
|
|
130
|
+
assert_equal :en, Stringex::Localization.locale
|
|
131
|
+
|
|
132
|
+
I18n.locale = other_locale
|
|
133
|
+
assert_equal other_locale, Stringex::Localization.locale
|
|
134
|
+
|
|
135
|
+
Stringex::Localization.locale = :de
|
|
136
|
+
assert_equal :de, Stringex::Localization.locale
|
|
137
|
+
assert_equal other_locale, I18n.locale
|
|
138
|
+
|
|
139
|
+
Stringex::Localization.locale = nil
|
|
140
|
+
assert_equal other_locale, Stringex::Localization.locale
|
|
141
|
+
assert_equal other_locale, I18n.locale
|
|
142
|
+
else
|
|
143
|
+
flunk "No I18n locales are available except :de and :en so test will not work"
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
def test_enforce_available_locales_default
|
|
148
|
+
return unless I18n.respond_to?(:enforce_available_locales)
|
|
149
|
+
Stringex::Localization.backend = :i18n
|
|
150
|
+
assert_not_nil I18n.enforce_available_locales
|
|
151
|
+
'Some String'.to_url
|
|
152
|
+
assert_not_nil I18n.enforce_available_locales
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def test_respects_user_enforce_available_locales_setting
|
|
156
|
+
return unless I18n.respond_to?(:enforce_available_locales)
|
|
157
|
+
Stringex::Localization.backend = :i18n
|
|
158
|
+
I18n.enforce_available_locales = false
|
|
159
|
+
'Some String'.to_url
|
|
160
|
+
assert_equal false, I18n.enforce_available_locales
|
|
161
|
+
end
|
|
162
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
|
|
3
|
+
require 'test_helper'
|
|
4
|
+
require 'stringex'
|
|
5
|
+
|
|
6
|
+
class StringExtensionsConfigurationTest < Test::Unit::TestCase
|
|
7
|
+
def teardown
|
|
8
|
+
Stringex::StringExtensions.unconfigure!
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_can_set_base_settings
|
|
12
|
+
Stringex::StringExtensions.configure do |c|
|
|
13
|
+
c.replace_whitespace_with = "~"
|
|
14
|
+
end
|
|
15
|
+
assert_equal "foo~bar", "foo bar".to_url
|
|
16
|
+
end
|
|
17
|
+
end
|