tiny-safe-mod 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/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
- data/tiny-safe-mod.gemspec +11 -0
- metadata +293 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
# Generated by jeweler
|
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
|
+
# -*- encoding: utf-8 -*-
|
|
5
|
+
# stub: stringex 2.8.6 ruby lib
|
|
6
|
+
|
|
7
|
+
Gem::Specification.new do |s|
|
|
8
|
+
s.name = "stringex".freeze
|
|
9
|
+
s.version = "2.8.6"
|
|
10
|
+
|
|
11
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
12
|
+
s.require_paths = ["lib".freeze]
|
|
13
|
+
s.authors = ["Russell Norris".freeze]
|
|
14
|
+
s.date = "2023-04-19"
|
|
15
|
+
s.description = "Some [hopefully] useful extensions to Ruby's String class. Stringex is made up of three libraries: ActsAsUrl [permalink solution with better character translation], Unidecoder [Unicode to ASCII transliteration], and StringExtensions [miscellaneous helper methods for the String class].".freeze
|
|
16
|
+
s.email = "rsl@luckysneaks.com".freeze
|
|
17
|
+
s.extra_rdoc_files = [
|
|
18
|
+
"MIT-LICENSE"
|
|
19
|
+
]
|
|
20
|
+
s.files = [
|
|
21
|
+
"Gemfile",
|
|
22
|
+
"MIT-LICENSE",
|
|
23
|
+
"README.md",
|
|
24
|
+
"Rakefile",
|
|
25
|
+
"VERSION",
|
|
26
|
+
"init.rb",
|
|
27
|
+
"lib/stringex.rb",
|
|
28
|
+
"lib/stringex/acts_as_url.rb",
|
|
29
|
+
"lib/stringex/acts_as_url/adapter.rb",
|
|
30
|
+
"lib/stringex/acts_as_url/adapter/active_record.rb",
|
|
31
|
+
"lib/stringex/acts_as_url/adapter/base.rb",
|
|
32
|
+
"lib/stringex/acts_as_url/adapter/data_mapper.rb",
|
|
33
|
+
"lib/stringex/acts_as_url/adapter/mongoid.rb",
|
|
34
|
+
"lib/stringex/configuration.rb",
|
|
35
|
+
"lib/stringex/configuration/acts_as_url.rb",
|
|
36
|
+
"lib/stringex/configuration/base.rb",
|
|
37
|
+
"lib/stringex/configuration/configurator.rb",
|
|
38
|
+
"lib/stringex/configuration/string_extensions.rb",
|
|
39
|
+
"lib/stringex/configuration_lite.rb",
|
|
40
|
+
"lib/stringex/core_ext.rb",
|
|
41
|
+
"lib/stringex/localization.rb",
|
|
42
|
+
"lib/stringex/localization/backend/base.rb",
|
|
43
|
+
"lib/stringex/localization/backend/i18n.rb",
|
|
44
|
+
"lib/stringex/localization/backend/internal.rb",
|
|
45
|
+
"lib/stringex/localization/conversion_expressions.rb",
|
|
46
|
+
"lib/stringex/localization/converter.rb",
|
|
47
|
+
"lib/stringex/localization/default_conversions.rb",
|
|
48
|
+
"lib/stringex/rails/railtie.rb",
|
|
49
|
+
"lib/stringex/string_extensions.rb",
|
|
50
|
+
"lib/stringex/unidecoder.rb",
|
|
51
|
+
"lib/stringex/unidecoder_data/x00.yml",
|
|
52
|
+
"lib/stringex/unidecoder_data/x01.yml",
|
|
53
|
+
"lib/stringex/unidecoder_data/x02.yml",
|
|
54
|
+
"lib/stringex/unidecoder_data/x03.yml",
|
|
55
|
+
"lib/stringex/unidecoder_data/x04.yml",
|
|
56
|
+
"lib/stringex/unidecoder_data/x05.yml",
|
|
57
|
+
"lib/stringex/unidecoder_data/x06.yml",
|
|
58
|
+
"lib/stringex/unidecoder_data/x07.yml",
|
|
59
|
+
"lib/stringex/unidecoder_data/x09.yml",
|
|
60
|
+
"lib/stringex/unidecoder_data/x0a.yml",
|
|
61
|
+
"lib/stringex/unidecoder_data/x0b.yml",
|
|
62
|
+
"lib/stringex/unidecoder_data/x0c.yml",
|
|
63
|
+
"lib/stringex/unidecoder_data/x0d.yml",
|
|
64
|
+
"lib/stringex/unidecoder_data/x0e.yml",
|
|
65
|
+
"lib/stringex/unidecoder_data/x0f.yml",
|
|
66
|
+
"lib/stringex/unidecoder_data/x10.yml",
|
|
67
|
+
"lib/stringex/unidecoder_data/x11.yml",
|
|
68
|
+
"lib/stringex/unidecoder_data/x12.yml",
|
|
69
|
+
"lib/stringex/unidecoder_data/x13.yml",
|
|
70
|
+
"lib/stringex/unidecoder_data/x14.yml",
|
|
71
|
+
"lib/stringex/unidecoder_data/x15.yml",
|
|
72
|
+
"lib/stringex/unidecoder_data/x16.yml",
|
|
73
|
+
"lib/stringex/unidecoder_data/x17.yml",
|
|
74
|
+
"lib/stringex/unidecoder_data/x18.yml",
|
|
75
|
+
"lib/stringex/unidecoder_data/x1e.yml",
|
|
76
|
+
"lib/stringex/unidecoder_data/x1f.yml",
|
|
77
|
+
"lib/stringex/unidecoder_data/x20.yml",
|
|
78
|
+
"lib/stringex/unidecoder_data/x21.yml",
|
|
79
|
+
"lib/stringex/unidecoder_data/x22.yml",
|
|
80
|
+
"lib/stringex/unidecoder_data/x23.yml",
|
|
81
|
+
"lib/stringex/unidecoder_data/x24.yml",
|
|
82
|
+
"lib/stringex/unidecoder_data/x25.yml",
|
|
83
|
+
"lib/stringex/unidecoder_data/x26.yml",
|
|
84
|
+
"lib/stringex/unidecoder_data/x27.yml",
|
|
85
|
+
"lib/stringex/unidecoder_data/x28.yml",
|
|
86
|
+
"lib/stringex/unidecoder_data/x2e.yml",
|
|
87
|
+
"lib/stringex/unidecoder_data/x2f.yml",
|
|
88
|
+
"lib/stringex/unidecoder_data/x30.yml",
|
|
89
|
+
"lib/stringex/unidecoder_data/x31.yml",
|
|
90
|
+
"lib/stringex/unidecoder_data/x32.yml",
|
|
91
|
+
"lib/stringex/unidecoder_data/x33.yml",
|
|
92
|
+
"lib/stringex/unidecoder_data/x4d.yml",
|
|
93
|
+
"lib/stringex/unidecoder_data/x4e.yml",
|
|
94
|
+
"lib/stringex/unidecoder_data/x4f.yml",
|
|
95
|
+
"lib/stringex/unidecoder_data/x50.yml",
|
|
96
|
+
"lib/stringex/unidecoder_data/x51.yml",
|
|
97
|
+
"lib/stringex/unidecoder_data/x52.yml",
|
|
98
|
+
"lib/stringex/unidecoder_data/x53.yml",
|
|
99
|
+
"lib/stringex/unidecoder_data/x54.yml",
|
|
100
|
+
"lib/stringex/unidecoder_data/x55.yml",
|
|
101
|
+
"lib/stringex/unidecoder_data/x56.yml",
|
|
102
|
+
"lib/stringex/unidecoder_data/x57.yml",
|
|
103
|
+
"lib/stringex/unidecoder_data/x58.yml",
|
|
104
|
+
"lib/stringex/unidecoder_data/x59.yml",
|
|
105
|
+
"lib/stringex/unidecoder_data/x5a.yml",
|
|
106
|
+
"lib/stringex/unidecoder_data/x5b.yml",
|
|
107
|
+
"lib/stringex/unidecoder_data/x5c.yml",
|
|
108
|
+
"lib/stringex/unidecoder_data/x5d.yml",
|
|
109
|
+
"lib/stringex/unidecoder_data/x5e.yml",
|
|
110
|
+
"lib/stringex/unidecoder_data/x5f.yml",
|
|
111
|
+
"lib/stringex/unidecoder_data/x60.yml",
|
|
112
|
+
"lib/stringex/unidecoder_data/x61.yml",
|
|
113
|
+
"lib/stringex/unidecoder_data/x62.yml",
|
|
114
|
+
"lib/stringex/unidecoder_data/x63.yml",
|
|
115
|
+
"lib/stringex/unidecoder_data/x64.yml",
|
|
116
|
+
"lib/stringex/unidecoder_data/x65.yml",
|
|
117
|
+
"lib/stringex/unidecoder_data/x66.yml",
|
|
118
|
+
"lib/stringex/unidecoder_data/x67.yml",
|
|
119
|
+
"lib/stringex/unidecoder_data/x68.yml",
|
|
120
|
+
"lib/stringex/unidecoder_data/x69.yml",
|
|
121
|
+
"lib/stringex/unidecoder_data/x6a.yml",
|
|
122
|
+
"lib/stringex/unidecoder_data/x6b.yml",
|
|
123
|
+
"lib/stringex/unidecoder_data/x6c.yml",
|
|
124
|
+
"lib/stringex/unidecoder_data/x6d.yml",
|
|
125
|
+
"lib/stringex/unidecoder_data/x6e.yml",
|
|
126
|
+
"lib/stringex/unidecoder_data/x6f.yml",
|
|
127
|
+
"lib/stringex/unidecoder_data/x70.yml",
|
|
128
|
+
"lib/stringex/unidecoder_data/x71.yml",
|
|
129
|
+
"lib/stringex/unidecoder_data/x72.yml",
|
|
130
|
+
"lib/stringex/unidecoder_data/x73.yml",
|
|
131
|
+
"lib/stringex/unidecoder_data/x74.yml",
|
|
132
|
+
"lib/stringex/unidecoder_data/x75.yml",
|
|
133
|
+
"lib/stringex/unidecoder_data/x76.yml",
|
|
134
|
+
"lib/stringex/unidecoder_data/x77.yml",
|
|
135
|
+
"lib/stringex/unidecoder_data/x78.yml",
|
|
136
|
+
"lib/stringex/unidecoder_data/x79.yml",
|
|
137
|
+
"lib/stringex/unidecoder_data/x7a.yml",
|
|
138
|
+
"lib/stringex/unidecoder_data/x7b.yml",
|
|
139
|
+
"lib/stringex/unidecoder_data/x7c.yml",
|
|
140
|
+
"lib/stringex/unidecoder_data/x7d.yml",
|
|
141
|
+
"lib/stringex/unidecoder_data/x7e.yml",
|
|
142
|
+
"lib/stringex/unidecoder_data/x7f.yml",
|
|
143
|
+
"lib/stringex/unidecoder_data/x80.yml",
|
|
144
|
+
"lib/stringex/unidecoder_data/x81.yml",
|
|
145
|
+
"lib/stringex/unidecoder_data/x82.yml",
|
|
146
|
+
"lib/stringex/unidecoder_data/x83.yml",
|
|
147
|
+
"lib/stringex/unidecoder_data/x84.yml",
|
|
148
|
+
"lib/stringex/unidecoder_data/x85.yml",
|
|
149
|
+
"lib/stringex/unidecoder_data/x86.yml",
|
|
150
|
+
"lib/stringex/unidecoder_data/x87.yml",
|
|
151
|
+
"lib/stringex/unidecoder_data/x88.yml",
|
|
152
|
+
"lib/stringex/unidecoder_data/x89.yml",
|
|
153
|
+
"lib/stringex/unidecoder_data/x8a.yml",
|
|
154
|
+
"lib/stringex/unidecoder_data/x8b.yml",
|
|
155
|
+
"lib/stringex/unidecoder_data/x8c.yml",
|
|
156
|
+
"lib/stringex/unidecoder_data/x8d.yml",
|
|
157
|
+
"lib/stringex/unidecoder_data/x8e.yml",
|
|
158
|
+
"lib/stringex/unidecoder_data/x8f.yml",
|
|
159
|
+
"lib/stringex/unidecoder_data/x90.yml",
|
|
160
|
+
"lib/stringex/unidecoder_data/x91.yml",
|
|
161
|
+
"lib/stringex/unidecoder_data/x92.yml",
|
|
162
|
+
"lib/stringex/unidecoder_data/x93.yml",
|
|
163
|
+
"lib/stringex/unidecoder_data/x94.yml",
|
|
164
|
+
"lib/stringex/unidecoder_data/x95.yml",
|
|
165
|
+
"lib/stringex/unidecoder_data/x96.yml",
|
|
166
|
+
"lib/stringex/unidecoder_data/x97.yml",
|
|
167
|
+
"lib/stringex/unidecoder_data/x98.yml",
|
|
168
|
+
"lib/stringex/unidecoder_data/x99.yml",
|
|
169
|
+
"lib/stringex/unidecoder_data/x9a.yml",
|
|
170
|
+
"lib/stringex/unidecoder_data/x9b.yml",
|
|
171
|
+
"lib/stringex/unidecoder_data/x9c.yml",
|
|
172
|
+
"lib/stringex/unidecoder_data/x9d.yml",
|
|
173
|
+
"lib/stringex/unidecoder_data/x9e.yml",
|
|
174
|
+
"lib/stringex/unidecoder_data/x9f.yml",
|
|
175
|
+
"lib/stringex/unidecoder_data/xa0.yml",
|
|
176
|
+
"lib/stringex/unidecoder_data/xa1.yml",
|
|
177
|
+
"lib/stringex/unidecoder_data/xa2.yml",
|
|
178
|
+
"lib/stringex/unidecoder_data/xa3.yml",
|
|
179
|
+
"lib/stringex/unidecoder_data/xa4.yml",
|
|
180
|
+
"lib/stringex/unidecoder_data/xac.yml",
|
|
181
|
+
"lib/stringex/unidecoder_data/xad.yml",
|
|
182
|
+
"lib/stringex/unidecoder_data/xae.yml",
|
|
183
|
+
"lib/stringex/unidecoder_data/xaf.yml",
|
|
184
|
+
"lib/stringex/unidecoder_data/xb0.yml",
|
|
185
|
+
"lib/stringex/unidecoder_data/xb1.yml",
|
|
186
|
+
"lib/stringex/unidecoder_data/xb2.yml",
|
|
187
|
+
"lib/stringex/unidecoder_data/xb3.yml",
|
|
188
|
+
"lib/stringex/unidecoder_data/xb4.yml",
|
|
189
|
+
"lib/stringex/unidecoder_data/xb5.yml",
|
|
190
|
+
"lib/stringex/unidecoder_data/xb6.yml",
|
|
191
|
+
"lib/stringex/unidecoder_data/xb7.yml",
|
|
192
|
+
"lib/stringex/unidecoder_data/xb8.yml",
|
|
193
|
+
"lib/stringex/unidecoder_data/xb9.yml",
|
|
194
|
+
"lib/stringex/unidecoder_data/xba.yml",
|
|
195
|
+
"lib/stringex/unidecoder_data/xbb.yml",
|
|
196
|
+
"lib/stringex/unidecoder_data/xbc.yml",
|
|
197
|
+
"lib/stringex/unidecoder_data/xbd.yml",
|
|
198
|
+
"lib/stringex/unidecoder_data/xbe.yml",
|
|
199
|
+
"lib/stringex/unidecoder_data/xbf.yml",
|
|
200
|
+
"lib/stringex/unidecoder_data/xc0.yml",
|
|
201
|
+
"lib/stringex/unidecoder_data/xc1.yml",
|
|
202
|
+
"lib/stringex/unidecoder_data/xc2.yml",
|
|
203
|
+
"lib/stringex/unidecoder_data/xc3.yml",
|
|
204
|
+
"lib/stringex/unidecoder_data/xc4.yml",
|
|
205
|
+
"lib/stringex/unidecoder_data/xc5.yml",
|
|
206
|
+
"lib/stringex/unidecoder_data/xc6.yml",
|
|
207
|
+
"lib/stringex/unidecoder_data/xc7.yml",
|
|
208
|
+
"lib/stringex/unidecoder_data/xc8.yml",
|
|
209
|
+
"lib/stringex/unidecoder_data/xc9.yml",
|
|
210
|
+
"lib/stringex/unidecoder_data/xca.yml",
|
|
211
|
+
"lib/stringex/unidecoder_data/xcb.yml",
|
|
212
|
+
"lib/stringex/unidecoder_data/xcc.yml",
|
|
213
|
+
"lib/stringex/unidecoder_data/xcd.yml",
|
|
214
|
+
"lib/stringex/unidecoder_data/xce.yml",
|
|
215
|
+
"lib/stringex/unidecoder_data/xcf.yml",
|
|
216
|
+
"lib/stringex/unidecoder_data/xd0.yml",
|
|
217
|
+
"lib/stringex/unidecoder_data/xd1.yml",
|
|
218
|
+
"lib/stringex/unidecoder_data/xd2.yml",
|
|
219
|
+
"lib/stringex/unidecoder_data/xd3.yml",
|
|
220
|
+
"lib/stringex/unidecoder_data/xd4.yml",
|
|
221
|
+
"lib/stringex/unidecoder_data/xd5.yml",
|
|
222
|
+
"lib/stringex/unidecoder_data/xd6.yml",
|
|
223
|
+
"lib/stringex/unidecoder_data/xd7.yml",
|
|
224
|
+
"lib/stringex/unidecoder_data/xf9.yml",
|
|
225
|
+
"lib/stringex/unidecoder_data/xfa.yml",
|
|
226
|
+
"lib/stringex/unidecoder_data/xfb.yml",
|
|
227
|
+
"lib/stringex/unidecoder_data/xfc.yml",
|
|
228
|
+
"lib/stringex/unidecoder_data/xfd.yml",
|
|
229
|
+
"lib/stringex/unidecoder_data/xfe.yml",
|
|
230
|
+
"lib/stringex/unidecoder_data/xff.yml",
|
|
231
|
+
"lib/stringex/version.rb",
|
|
232
|
+
"lib/stringex_lite.rb",
|
|
233
|
+
"locales/da.yml",
|
|
234
|
+
"locales/de.yml",
|
|
235
|
+
"locales/en.yml",
|
|
236
|
+
"locales/fr.yml",
|
|
237
|
+
"locales/nb.yml",
|
|
238
|
+
"locales/nl.yml",
|
|
239
|
+
"locales/no.yml",
|
|
240
|
+
"locales/pl.yml",
|
|
241
|
+
"locales/pt-BR.yml",
|
|
242
|
+
"locales/ru.yml",
|
|
243
|
+
"locales/sv.yml",
|
|
244
|
+
"stringex.gemspec",
|
|
245
|
+
"test/performance/localization_performance_test.rb",
|
|
246
|
+
"test/test_helper.rb",
|
|
247
|
+
"test/unit/acts_as_url/adapter/activerecord.rb",
|
|
248
|
+
"test/unit/acts_as_url/adapter/datamapper.rb",
|
|
249
|
+
"test/unit/acts_as_url/adapter/mongoid.rb",
|
|
250
|
+
"test/unit/acts_as_url_configuration_test.rb",
|
|
251
|
+
"test/unit/acts_as_url_integration_test.rb",
|
|
252
|
+
"test/unit/localization/da_test.rb",
|
|
253
|
+
"test/unit/localization/de_test.rb",
|
|
254
|
+
"test/unit/localization/default_test.rb",
|
|
255
|
+
"test/unit/localization/en_test.rb",
|
|
256
|
+
"test/unit/localization/fr_test.rb",
|
|
257
|
+
"test/unit/localization/nl_test.rb",
|
|
258
|
+
"test/unit/localization/pl_test.rb",
|
|
259
|
+
"test/unit/localization/pt_br_test.rb",
|
|
260
|
+
"test/unit/localization/ru_test.rb",
|
|
261
|
+
"test/unit/localization/sv_test.rb",
|
|
262
|
+
"test/unit/localization_18n_failure_test.rb",
|
|
263
|
+
"test/unit/localization_test.rb",
|
|
264
|
+
"test/unit/string_extensions_configuration_test.rb",
|
|
265
|
+
"test/unit/string_extensions_test.rb",
|
|
266
|
+
"test/unit/unicode_point_suite/basic_greek_test.rb",
|
|
267
|
+
"test/unit/unicode_point_suite/basic_latin_test.rb",
|
|
268
|
+
"test/unit/unicode_point_suite/codepoint_test_helper.rb",
|
|
269
|
+
"test/unit/unidecoder/bad_localization.yml",
|
|
270
|
+
"test/unit/unidecoder/localization.yml",
|
|
271
|
+
"test/unit/unidecoder_test.rb",
|
|
272
|
+
"test/unit/version_test.rb"
|
|
273
|
+
]
|
|
274
|
+
s.homepage = "http://github.com/rsl/stringex".freeze
|
|
275
|
+
s.licenses = ["MIT".freeze]
|
|
276
|
+
s.rdoc_options = ["--main".freeze, "README.rdoc".freeze, "--charset".freeze, "utf-8".freeze, "--line-numbers".freeze]
|
|
277
|
+
s.rubygems_version = "3.4.9".freeze
|
|
278
|
+
s.summary = "Some [hopefully] useful extensions to Ruby's String class".freeze
|
|
279
|
+
|
|
280
|
+
s.specification_version = 4
|
|
281
|
+
|
|
282
|
+
s.add_development_dependency(%q<jeweler>.freeze, ["= 2.3.7"])
|
|
283
|
+
s.add_development_dependency(%q<travis-lint>.freeze, ["= 1.7.0"])
|
|
284
|
+
s.add_development_dependency(%q<RedCloth>.freeze, ["= 4.2.9"])
|
|
285
|
+
s.add_development_dependency(%q<sqlite3>.freeze, ["= 1.3.10"])
|
|
286
|
+
s.add_development_dependency(%q<test-unit>.freeze, ["= 3.0.9"])
|
|
287
|
+
s.add_development_dependency(%q<activerecord>.freeze, ["= 5.1.4"])
|
|
288
|
+
s.add_development_dependency(%q<i18n>.freeze, ["= 0.7.0"])
|
|
289
|
+
end
|
|
290
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require "test_helper"
|
|
2
|
+
require 'stringex'
|
|
3
|
+
require 'i18n'
|
|
4
|
+
require 'benchmark'
|
|
5
|
+
|
|
6
|
+
class LocalizationPerformanceTest < Test::Unit::TestCase
|
|
7
|
+
def setup
|
|
8
|
+
I18n.locale = :en
|
|
9
|
+
Stringex::Localization.reset!
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_i18n_performance
|
|
13
|
+
Stringex::Localization.backend = :internal
|
|
14
|
+
internal_time = Benchmark.realtime { 100.times{ "alskdjfal".to_url } }
|
|
15
|
+
|
|
16
|
+
Stringex::Localization.backend = :i18n
|
|
17
|
+
i18n_time = Benchmark.realtime { 100.times{ "alskdjfal".to_url } }
|
|
18
|
+
|
|
19
|
+
percentage_difference = ((i18n_time - internal_time) / internal_time) * 100
|
|
20
|
+
allowed_difference = 25
|
|
21
|
+
|
|
22
|
+
assert percentage_difference <= allowed_difference, "The I18n backend is #{percentage_difference.to_i} percent slower than the internal backend. The allowed difference is #{allowed_difference} percent."
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
gem 'activerecord'
|
|
2
|
+
require 'active_record'
|
|
3
|
+
require "stringex"
|
|
4
|
+
# Reload adapters to make sure ActsAsUrl sees the ORM
|
|
5
|
+
Stringex::ActsAsUrl::Adapter.load_available
|
|
6
|
+
|
|
7
|
+
puts "-------------------------------------------------"
|
|
8
|
+
puts "Running ActsAsUrl tests with ActiveRecord adapter"
|
|
9
|
+
puts "-------------------------------------------------"
|
|
10
|
+
|
|
11
|
+
ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:"
|
|
12
|
+
|
|
13
|
+
ActiveRecord::Migration.verbose = false
|
|
14
|
+
ActiveRecord::Schema.define do
|
|
15
|
+
create_table :documents, force: true do |t|
|
|
16
|
+
t.string :title, :other, :another, :url
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
create_table :sti_base_documents, force: true do |t|
|
|
20
|
+
t.string :title, :other, :another, :url, :type
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
ActiveRecord::Migration.verbose = true
|
|
24
|
+
|
|
25
|
+
class Document < ActiveRecord::Base
|
|
26
|
+
acts_as_url :title
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
class STIBaseDocument < ActiveRecord::Base
|
|
30
|
+
# This gets redefined in the only test that uses it but I want to be uniform
|
|
31
|
+
# in setting configuration details in the tests themselves
|
|
32
|
+
acts_as_url :title
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
class STIChildDocument < STIBaseDocument
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
class AnotherSTIChildDocument < STIBaseDocument
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
module AdapterSpecificTestBehaviors
|
|
42
|
+
def setup
|
|
43
|
+
# No setup tasks at present
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def teardown
|
|
47
|
+
[Document, STIBaseDocument].each do |klass|
|
|
48
|
+
klass.delete_all
|
|
49
|
+
# Reset behavior to default
|
|
50
|
+
klass.class_eval do
|
|
51
|
+
acts_as_url :title
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def add_validation_on_document_title
|
|
57
|
+
Document.class_eval do
|
|
58
|
+
validates_presence_of :title
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def remove_validation_on_document_title
|
|
63
|
+
Document.class_eval do
|
|
64
|
+
_validators.delete :title
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def adapter_specific_update(instance, hash)
|
|
69
|
+
instance.send :update!, hash
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
gem 'dm-core'
|
|
2
|
+
gem 'dm-migrations'
|
|
3
|
+
gem 'dm-validations'
|
|
4
|
+
require 'dm-core'
|
|
5
|
+
require 'dm-migrations'
|
|
6
|
+
require 'dm-validations'
|
|
7
|
+
require 'stringex'
|
|
8
|
+
# Reload adapters to make sure ActsAsUrl sees the ORM
|
|
9
|
+
Stringex::ActsAsUrl::Adapter.load_available
|
|
10
|
+
|
|
11
|
+
puts "-------------------------------------------------"
|
|
12
|
+
puts "Running ActsAsUrl tests with DataMapper adapter"
|
|
13
|
+
puts "-------------------------------------------------"
|
|
14
|
+
|
|
15
|
+
DataMapper.setup :default, 'sqlite::memory:'
|
|
16
|
+
|
|
17
|
+
# What the tests do in constant redefining the same classes doesn't quite work with DataMapper.
|
|
18
|
+
# This proc allows us to reset the class definitions on each test. This might be more expensive
|
|
19
|
+
# but it definitely allows the class definitions to be correct. If someone more familiar with
|
|
20
|
+
# DataMapper than I am wants to refactor this, I'd be more than happy to take a look.
|
|
21
|
+
DefineTestClasses = proc do
|
|
22
|
+
class Document
|
|
23
|
+
include DataMapper::Resource
|
|
24
|
+
property :id, Serial
|
|
25
|
+
property :title, String
|
|
26
|
+
property :other, String
|
|
27
|
+
property :another, String
|
|
28
|
+
property :url, String, lazy: false
|
|
29
|
+
|
|
30
|
+
acts_as_url :title
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
class STIBaseDocument
|
|
34
|
+
include DataMapper::Resource
|
|
35
|
+
property :id, Serial
|
|
36
|
+
property :title, String
|
|
37
|
+
property :other, String
|
|
38
|
+
property :another, String
|
|
39
|
+
property :url, String, lazy: false
|
|
40
|
+
property :type, String
|
|
41
|
+
|
|
42
|
+
# This gets redefined in the only test that uses it but I want to be uniform
|
|
43
|
+
# in setting configuration details in the tests themselves
|
|
44
|
+
acts_as_url :title
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
class STIChildDocument < STIBaseDocument
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
class AnotherSTIChildDocument < STIBaseDocument
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
DataMapper.finalize
|
|
54
|
+
Document.auto_migrate!
|
|
55
|
+
STIBaseDocument.auto_migrate!
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
module AdapterSpecificTestBehaviors
|
|
59
|
+
def setup
|
|
60
|
+
DefineTestClasses.call
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def teardown
|
|
64
|
+
[Document, STIBaseDocument, STIChildDocument, AnotherSTIChildDocument].each do |klass|
|
|
65
|
+
klass.destroy
|
|
66
|
+
Object.send :remove_const, klass.name.intern
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def add_validation_on_document_title
|
|
71
|
+
Document.class_eval do
|
|
72
|
+
validates_presence_of :title
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def remove_validation_on_document_title
|
|
77
|
+
# Do nothing. The class is going to be reloaded on the next test.
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def adapter_specific_update(instance, hash)
|
|
81
|
+
response = instance.send :update, hash
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
gem 'mongoid'
|
|
2
|
+
require 'mongoid'
|
|
3
|
+
require 'stringex'
|
|
4
|
+
# Reload adapters to make sure ActsAsUrl sees the ORM
|
|
5
|
+
Stringex::ActsAsUrl::Adapter.load_available
|
|
6
|
+
|
|
7
|
+
puts "-------------------------------------------------"
|
|
8
|
+
puts "Running ActsAsUrl tests with Mongoid adapter"
|
|
9
|
+
puts "-------------------------------------------------"
|
|
10
|
+
|
|
11
|
+
Mongoid.configure do |config|
|
|
12
|
+
config.connect_to('acts_as_url')
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class Document
|
|
16
|
+
include Mongoid::Document
|
|
17
|
+
field :title, type: String
|
|
18
|
+
field :other, type: String
|
|
19
|
+
field :another, type: String
|
|
20
|
+
field :url, type: String
|
|
21
|
+
|
|
22
|
+
acts_as_url :title
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
begin
|
|
26
|
+
# Let's make sure we can connect to mongodb before we run our tests!
|
|
27
|
+
Mongoid::Sessions.default.databases
|
|
28
|
+
rescue Moped::Errors::ConnectionFailure => err
|
|
29
|
+
puts 'Cannot connect to mongodb. Aborting.'
|
|
30
|
+
exit
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
class STIBaseDocument
|
|
34
|
+
include Mongoid::Document
|
|
35
|
+
field :title, type: String
|
|
36
|
+
field :other, type: String
|
|
37
|
+
field :another, type: String
|
|
38
|
+
field :url, type: String
|
|
39
|
+
field :type, type: String
|
|
40
|
+
|
|
41
|
+
# This gets redefined in the only test that uses it but I want to be uniform
|
|
42
|
+
# in setting configuration details in the tests themselves
|
|
43
|
+
acts_as_url :title
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
class STIChildDocument < STIBaseDocument
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
class AnotherSTIChildDocument < STIBaseDocument
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
module AdapterSpecificTestBehaviors
|
|
53
|
+
def setup
|
|
54
|
+
# No setup tasks at present
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def teardown
|
|
58
|
+
[Document, STIBaseDocument].each do |klass|
|
|
59
|
+
klass.delete_all
|
|
60
|
+
# Reset behavior to default
|
|
61
|
+
klass.class_eval do
|
|
62
|
+
acts_as_url :title
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def add_validation_on_document_title
|
|
68
|
+
Document.class_eval do
|
|
69
|
+
validates_presence_of :title
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def remove_validation_on_document_title
|
|
74
|
+
Document.class_eval do
|
|
75
|
+
_validators.delete :title
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def adapter_specific_update(instance, hash)
|
|
80
|
+
instance.send :update!, hash
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
|
|
3
|
+
require 'test_helper'
|
|
4
|
+
require 'stringex'
|
|
5
|
+
|
|
6
|
+
class ActsAsUrlConfigurationTest < Test::Unit::TestCase
|
|
7
|
+
def teardown
|
|
8
|
+
Stringex::ActsAsUrl.unconfigure!
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_can_set_base_settings
|
|
12
|
+
default_configuration = Stringex::Configuration::ActsAsUrl.new(url_attribute: "original")
|
|
13
|
+
assert_equal "original", default_configuration.settings.url_attribute
|
|
14
|
+
|
|
15
|
+
Stringex::ActsAsUrl.configure do |c|
|
|
16
|
+
c.url_attribute = "special"
|
|
17
|
+
end
|
|
18
|
+
new_configuration = Stringex::Configuration::ActsAsUrl.new
|
|
19
|
+
assert_equal "special", new_configuration.settings.url_attribute
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_local_options_overrides_system_wide_configuration
|
|
23
|
+
Stringex::ActsAsUrl.configure do |c|
|
|
24
|
+
c.url_attribute = "special"
|
|
25
|
+
end
|
|
26
|
+
system_configuration = Stringex::Configuration::ActsAsUrl.new
|
|
27
|
+
assert_equal "special", system_configuration.settings.url_attribute
|
|
28
|
+
|
|
29
|
+
local_configuration = Stringex::Configuration::ActsAsUrl.new(url_attribute: "local")
|
|
30
|
+
assert_equal "local", local_configuration.settings.url_attribute
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def test_inherits_settings_from_string_extensions
|
|
34
|
+
string_extensions_settings = Stringex::Configuration::StringExtensions.new
|
|
35
|
+
acts_as_url_settings = Stringex::Configuration::ActsAsUrl.new
|
|
36
|
+
|
|
37
|
+
acts_as_url_settings.string_extensions_settings.keys.each do |key|
|
|
38
|
+
assert_equal acts_as_url_settings.settings.send(key), string_extensions_settings.settings.send(key)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_accepts_base_settings_for_string_extensions
|
|
43
|
+
string_extensions_settings = Stringex::Configuration::StringExtensions.new.default_settings
|
|
44
|
+
|
|
45
|
+
Stringex::ActsAsUrl.configure do |c|
|
|
46
|
+
string_extensions_settings.keys.each do |key|
|
|
47
|
+
assert_respond_to c, "#{key}="
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|