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.
Files changed (255) hide show
  1. checksums.yaml +7 -0
  2. data/mini-pro-pkg.gemspec +12 -0
  3. data/stringex-2.8.6/Gemfile +51 -0
  4. data/stringex-2.8.6/MIT-LICENSE +20 -0
  5. data/stringex-2.8.6/README.md +162 -0
  6. data/stringex-2.8.6/Rakefile +57 -0
  7. data/stringex-2.8.6/VERSION +1 -0
  8. data/stringex-2.8.6/init.rb +3 -0
  9. data/stringex-2.8.6/lib/stringex/acts_as_url/adapter/active_record.rb +23 -0
  10. data/stringex-2.8.6/lib/stringex/acts_as_url/adapter/base.rb +240 -0
  11. data/stringex-2.8.6/lib/stringex/acts_as_url/adapter/data_mapper.rb +61 -0
  12. data/stringex-2.8.6/lib/stringex/acts_as_url/adapter/mongoid.rb +37 -0
  13. data/stringex-2.8.6/lib/stringex/acts_as_url/adapter.rb +26 -0
  14. data/stringex-2.8.6/lib/stringex/acts_as_url.rb +107 -0
  15. data/stringex-2.8.6/lib/stringex/configuration/acts_as_url.rb +50 -0
  16. data/stringex-2.8.6/lib/stringex/configuration/base.rb +58 -0
  17. data/stringex-2.8.6/lib/stringex/configuration/configurator.rb +25 -0
  18. data/stringex-2.8.6/lib/stringex/configuration/string_extensions.rb +20 -0
  19. data/stringex-2.8.6/lib/stringex/configuration.rb +4 -0
  20. data/stringex-2.8.6/lib/stringex/configuration_lite.rb +3 -0
  21. data/stringex-2.8.6/lib/stringex/core_ext.rb +10 -0
  22. data/stringex-2.8.6/lib/stringex/localization/backend/base.rb +13 -0
  23. data/stringex-2.8.6/lib/stringex/localization/backend/i18n.rb +86 -0
  24. data/stringex-2.8.6/lib/stringex/localization/backend/internal.rb +47 -0
  25. data/stringex-2.8.6/lib/stringex/localization/conversion_expressions.rb +154 -0
  26. data/stringex-2.8.6/lib/stringex/localization/converter.rb +129 -0
  27. data/stringex-2.8.6/lib/stringex/localization/default_conversions.rb +89 -0
  28. data/stringex-2.8.6/lib/stringex/localization.rb +112 -0
  29. data/stringex-2.8.6/lib/stringex/rails/railtie.rb +10 -0
  30. data/stringex-2.8.6/lib/stringex/string_extensions.rb +228 -0
  31. data/stringex-2.8.6/lib/stringex/unidecoder.rb +82 -0
  32. data/stringex-2.8.6/lib/stringex/unidecoder_data/x00.yml +257 -0
  33. data/stringex-2.8.6/lib/stringex/unidecoder_data/x01.yml +257 -0
  34. data/stringex-2.8.6/lib/stringex/unidecoder_data/x02.yml +256 -0
  35. data/stringex-2.8.6/lib/stringex/unidecoder_data/x03.yml +256 -0
  36. data/stringex-2.8.6/lib/stringex/unidecoder_data/x04.yml +256 -0
  37. data/stringex-2.8.6/lib/stringex/unidecoder_data/x05.yml +256 -0
  38. data/stringex-2.8.6/lib/stringex/unidecoder_data/x06.yml +256 -0
  39. data/stringex-2.8.6/lib/stringex/unidecoder_data/x07.yml +256 -0
  40. data/stringex-2.8.6/lib/stringex/unidecoder_data/x09.yml +256 -0
  41. data/stringex-2.8.6/lib/stringex/unidecoder_data/x0a.yml +256 -0
  42. data/stringex-2.8.6/lib/stringex/unidecoder_data/x0b.yml +256 -0
  43. data/stringex-2.8.6/lib/stringex/unidecoder_data/x0c.yml +256 -0
  44. data/stringex-2.8.6/lib/stringex/unidecoder_data/x0d.yml +256 -0
  45. data/stringex-2.8.6/lib/stringex/unidecoder_data/x0e.yml +256 -0
  46. data/stringex-2.8.6/lib/stringex/unidecoder_data/x0f.yml +256 -0
  47. data/stringex-2.8.6/lib/stringex/unidecoder_data/x10.yml +256 -0
  48. data/stringex-2.8.6/lib/stringex/unidecoder_data/x11.yml +256 -0
  49. data/stringex-2.8.6/lib/stringex/unidecoder_data/x12.yml +257 -0
  50. data/stringex-2.8.6/lib/stringex/unidecoder_data/x13.yml +256 -0
  51. data/stringex-2.8.6/lib/stringex/unidecoder_data/x14.yml +257 -0
  52. data/stringex-2.8.6/lib/stringex/unidecoder_data/x15.yml +257 -0
  53. data/stringex-2.8.6/lib/stringex/unidecoder_data/x16.yml +256 -0
  54. data/stringex-2.8.6/lib/stringex/unidecoder_data/x17.yml +256 -0
  55. data/stringex-2.8.6/lib/stringex/unidecoder_data/x18.yml +256 -0
  56. data/stringex-2.8.6/lib/stringex/unidecoder_data/x1e.yml +256 -0
  57. data/stringex-2.8.6/lib/stringex/unidecoder_data/x1f.yml +256 -0
  58. data/stringex-2.8.6/lib/stringex/unidecoder_data/x20.yml +256 -0
  59. data/stringex-2.8.6/lib/stringex/unidecoder_data/x21.yml +256 -0
  60. data/stringex-2.8.6/lib/stringex/unidecoder_data/x22.yml +256 -0
  61. data/stringex-2.8.6/lib/stringex/unidecoder_data/x23.yml +256 -0
  62. data/stringex-2.8.6/lib/stringex/unidecoder_data/x24.yml +256 -0
  63. data/stringex-2.8.6/lib/stringex/unidecoder_data/x25.yml +256 -0
  64. data/stringex-2.8.6/lib/stringex/unidecoder_data/x26.yml +256 -0
  65. data/stringex-2.8.6/lib/stringex/unidecoder_data/x27.yml +256 -0
  66. data/stringex-2.8.6/lib/stringex/unidecoder_data/x28.yml +257 -0
  67. data/stringex-2.8.6/lib/stringex/unidecoder_data/x2e.yml +256 -0
  68. data/stringex-2.8.6/lib/stringex/unidecoder_data/x2f.yml +256 -0
  69. data/stringex-2.8.6/lib/stringex/unidecoder_data/x30.yml +256 -0
  70. data/stringex-2.8.6/lib/stringex/unidecoder_data/x31.yml +256 -0
  71. data/stringex-2.8.6/lib/stringex/unidecoder_data/x32.yml +256 -0
  72. data/stringex-2.8.6/lib/stringex/unidecoder_data/x33.yml +256 -0
  73. data/stringex-2.8.6/lib/stringex/unidecoder_data/x4d.yml +256 -0
  74. data/stringex-2.8.6/lib/stringex/unidecoder_data/x4e.yml +257 -0
  75. data/stringex-2.8.6/lib/stringex/unidecoder_data/x4f.yml +257 -0
  76. data/stringex-2.8.6/lib/stringex/unidecoder_data/x50.yml +257 -0
  77. data/stringex-2.8.6/lib/stringex/unidecoder_data/x51.yml +257 -0
  78. data/stringex-2.8.6/lib/stringex/unidecoder_data/x52.yml +257 -0
  79. data/stringex-2.8.6/lib/stringex/unidecoder_data/x53.yml +257 -0
  80. data/stringex-2.8.6/lib/stringex/unidecoder_data/x54.yml +257 -0
  81. data/stringex-2.8.6/lib/stringex/unidecoder_data/x55.yml +257 -0
  82. data/stringex-2.8.6/lib/stringex/unidecoder_data/x56.yml +257 -0
  83. data/stringex-2.8.6/lib/stringex/unidecoder_data/x57.yml +257 -0
  84. data/stringex-2.8.6/lib/stringex/unidecoder_data/x58.yml +257 -0
  85. data/stringex-2.8.6/lib/stringex/unidecoder_data/x59.yml +257 -0
  86. data/stringex-2.8.6/lib/stringex/unidecoder_data/x5a.yml +257 -0
  87. data/stringex-2.8.6/lib/stringex/unidecoder_data/x5b.yml +257 -0
  88. data/stringex-2.8.6/lib/stringex/unidecoder_data/x5c.yml +257 -0
  89. data/stringex-2.8.6/lib/stringex/unidecoder_data/x5d.yml +257 -0
  90. data/stringex-2.8.6/lib/stringex/unidecoder_data/x5e.yml +257 -0
  91. data/stringex-2.8.6/lib/stringex/unidecoder_data/x5f.yml +257 -0
  92. data/stringex-2.8.6/lib/stringex/unidecoder_data/x60.yml +257 -0
  93. data/stringex-2.8.6/lib/stringex/unidecoder_data/x61.yml +257 -0
  94. data/stringex-2.8.6/lib/stringex/unidecoder_data/x62.yml +257 -0
  95. data/stringex-2.8.6/lib/stringex/unidecoder_data/x63.yml +257 -0
  96. data/stringex-2.8.6/lib/stringex/unidecoder_data/x64.yml +257 -0
  97. data/stringex-2.8.6/lib/stringex/unidecoder_data/x65.yml +257 -0
  98. data/stringex-2.8.6/lib/stringex/unidecoder_data/x66.yml +257 -0
  99. data/stringex-2.8.6/lib/stringex/unidecoder_data/x67.yml +257 -0
  100. data/stringex-2.8.6/lib/stringex/unidecoder_data/x68.yml +257 -0
  101. data/stringex-2.8.6/lib/stringex/unidecoder_data/x69.yml +257 -0
  102. data/stringex-2.8.6/lib/stringex/unidecoder_data/x6a.yml +257 -0
  103. data/stringex-2.8.6/lib/stringex/unidecoder_data/x6b.yml +257 -0
  104. data/stringex-2.8.6/lib/stringex/unidecoder_data/x6c.yml +257 -0
  105. data/stringex-2.8.6/lib/stringex/unidecoder_data/x6d.yml +257 -0
  106. data/stringex-2.8.6/lib/stringex/unidecoder_data/x6e.yml +257 -0
  107. data/stringex-2.8.6/lib/stringex/unidecoder_data/x6f.yml +257 -0
  108. data/stringex-2.8.6/lib/stringex/unidecoder_data/x70.yml +257 -0
  109. data/stringex-2.8.6/lib/stringex/unidecoder_data/x71.yml +257 -0
  110. data/stringex-2.8.6/lib/stringex/unidecoder_data/x72.yml +257 -0
  111. data/stringex-2.8.6/lib/stringex/unidecoder_data/x73.yml +257 -0
  112. data/stringex-2.8.6/lib/stringex/unidecoder_data/x74.yml +257 -0
  113. data/stringex-2.8.6/lib/stringex/unidecoder_data/x75.yml +257 -0
  114. data/stringex-2.8.6/lib/stringex/unidecoder_data/x76.yml +257 -0
  115. data/stringex-2.8.6/lib/stringex/unidecoder_data/x77.yml +257 -0
  116. data/stringex-2.8.6/lib/stringex/unidecoder_data/x78.yml +257 -0
  117. data/stringex-2.8.6/lib/stringex/unidecoder_data/x79.yml +257 -0
  118. data/stringex-2.8.6/lib/stringex/unidecoder_data/x7a.yml +257 -0
  119. data/stringex-2.8.6/lib/stringex/unidecoder_data/x7b.yml +257 -0
  120. data/stringex-2.8.6/lib/stringex/unidecoder_data/x7c.yml +257 -0
  121. data/stringex-2.8.6/lib/stringex/unidecoder_data/x7d.yml +257 -0
  122. data/stringex-2.8.6/lib/stringex/unidecoder_data/x7e.yml +257 -0
  123. data/stringex-2.8.6/lib/stringex/unidecoder_data/x7f.yml +257 -0
  124. data/stringex-2.8.6/lib/stringex/unidecoder_data/x80.yml +257 -0
  125. data/stringex-2.8.6/lib/stringex/unidecoder_data/x81.yml +257 -0
  126. data/stringex-2.8.6/lib/stringex/unidecoder_data/x82.yml +257 -0
  127. data/stringex-2.8.6/lib/stringex/unidecoder_data/x83.yml +257 -0
  128. data/stringex-2.8.6/lib/stringex/unidecoder_data/x84.yml +257 -0
  129. data/stringex-2.8.6/lib/stringex/unidecoder_data/x85.yml +257 -0
  130. data/stringex-2.8.6/lib/stringex/unidecoder_data/x86.yml +257 -0
  131. data/stringex-2.8.6/lib/stringex/unidecoder_data/x87.yml +257 -0
  132. data/stringex-2.8.6/lib/stringex/unidecoder_data/x88.yml +257 -0
  133. data/stringex-2.8.6/lib/stringex/unidecoder_data/x89.yml +257 -0
  134. data/stringex-2.8.6/lib/stringex/unidecoder_data/x8a.yml +257 -0
  135. data/stringex-2.8.6/lib/stringex/unidecoder_data/x8b.yml +257 -0
  136. data/stringex-2.8.6/lib/stringex/unidecoder_data/x8c.yml +257 -0
  137. data/stringex-2.8.6/lib/stringex/unidecoder_data/x8d.yml +257 -0
  138. data/stringex-2.8.6/lib/stringex/unidecoder_data/x8e.yml +257 -0
  139. data/stringex-2.8.6/lib/stringex/unidecoder_data/x8f.yml +257 -0
  140. data/stringex-2.8.6/lib/stringex/unidecoder_data/x90.yml +257 -0
  141. data/stringex-2.8.6/lib/stringex/unidecoder_data/x91.yml +257 -0
  142. data/stringex-2.8.6/lib/stringex/unidecoder_data/x92.yml +257 -0
  143. data/stringex-2.8.6/lib/stringex/unidecoder_data/x93.yml +257 -0
  144. data/stringex-2.8.6/lib/stringex/unidecoder_data/x94.yml +257 -0
  145. data/stringex-2.8.6/lib/stringex/unidecoder_data/x95.yml +257 -0
  146. data/stringex-2.8.6/lib/stringex/unidecoder_data/x96.yml +257 -0
  147. data/stringex-2.8.6/lib/stringex/unidecoder_data/x97.yml +257 -0
  148. data/stringex-2.8.6/lib/stringex/unidecoder_data/x98.yml +257 -0
  149. data/stringex-2.8.6/lib/stringex/unidecoder_data/x99.yml +257 -0
  150. data/stringex-2.8.6/lib/stringex/unidecoder_data/x9a.yml +257 -0
  151. data/stringex-2.8.6/lib/stringex/unidecoder_data/x9b.yml +257 -0
  152. data/stringex-2.8.6/lib/stringex/unidecoder_data/x9c.yml +257 -0
  153. data/stringex-2.8.6/lib/stringex/unidecoder_data/x9d.yml +257 -0
  154. data/stringex-2.8.6/lib/stringex/unidecoder_data/x9e.yml +257 -0
  155. data/stringex-2.8.6/lib/stringex/unidecoder_data/x9f.yml +256 -0
  156. data/stringex-2.8.6/lib/stringex/unidecoder_data/xa0.yml +257 -0
  157. data/stringex-2.8.6/lib/stringex/unidecoder_data/xa1.yml +257 -0
  158. data/stringex-2.8.6/lib/stringex/unidecoder_data/xa2.yml +257 -0
  159. data/stringex-2.8.6/lib/stringex/unidecoder_data/xa3.yml +257 -0
  160. data/stringex-2.8.6/lib/stringex/unidecoder_data/xa4.yml +256 -0
  161. data/stringex-2.8.6/lib/stringex/unidecoder_data/xac.yml +257 -0
  162. data/stringex-2.8.6/lib/stringex/unidecoder_data/xad.yml +257 -0
  163. data/stringex-2.8.6/lib/stringex/unidecoder_data/xae.yml +257 -0
  164. data/stringex-2.8.6/lib/stringex/unidecoder_data/xaf.yml +257 -0
  165. data/stringex-2.8.6/lib/stringex/unidecoder_data/xb0.yml +257 -0
  166. data/stringex-2.8.6/lib/stringex/unidecoder_data/xb1.yml +257 -0
  167. data/stringex-2.8.6/lib/stringex/unidecoder_data/xb2.yml +257 -0
  168. data/stringex-2.8.6/lib/stringex/unidecoder_data/xb3.yml +257 -0
  169. data/stringex-2.8.6/lib/stringex/unidecoder_data/xb4.yml +257 -0
  170. data/stringex-2.8.6/lib/stringex/unidecoder_data/xb5.yml +257 -0
  171. data/stringex-2.8.6/lib/stringex/unidecoder_data/xb6.yml +257 -0
  172. data/stringex-2.8.6/lib/stringex/unidecoder_data/xb7.yml +257 -0
  173. data/stringex-2.8.6/lib/stringex/unidecoder_data/xb8.yml +257 -0
  174. data/stringex-2.8.6/lib/stringex/unidecoder_data/xb9.yml +257 -0
  175. data/stringex-2.8.6/lib/stringex/unidecoder_data/xba.yml +257 -0
  176. data/stringex-2.8.6/lib/stringex/unidecoder_data/xbb.yml +257 -0
  177. data/stringex-2.8.6/lib/stringex/unidecoder_data/xbc.yml +257 -0
  178. data/stringex-2.8.6/lib/stringex/unidecoder_data/xbd.yml +257 -0
  179. data/stringex-2.8.6/lib/stringex/unidecoder_data/xbe.yml +257 -0
  180. data/stringex-2.8.6/lib/stringex/unidecoder_data/xbf.yml +257 -0
  181. data/stringex-2.8.6/lib/stringex/unidecoder_data/xc0.yml +257 -0
  182. data/stringex-2.8.6/lib/stringex/unidecoder_data/xc1.yml +257 -0
  183. data/stringex-2.8.6/lib/stringex/unidecoder_data/xc2.yml +257 -0
  184. data/stringex-2.8.6/lib/stringex/unidecoder_data/xc3.yml +257 -0
  185. data/stringex-2.8.6/lib/stringex/unidecoder_data/xc4.yml +257 -0
  186. data/stringex-2.8.6/lib/stringex/unidecoder_data/xc5.yml +257 -0
  187. data/stringex-2.8.6/lib/stringex/unidecoder_data/xc6.yml +257 -0
  188. data/stringex-2.8.6/lib/stringex/unidecoder_data/xc7.yml +257 -0
  189. data/stringex-2.8.6/lib/stringex/unidecoder_data/xc8.yml +257 -0
  190. data/stringex-2.8.6/lib/stringex/unidecoder_data/xc9.yml +257 -0
  191. data/stringex-2.8.6/lib/stringex/unidecoder_data/xca.yml +257 -0
  192. data/stringex-2.8.6/lib/stringex/unidecoder_data/xcb.yml +257 -0
  193. data/stringex-2.8.6/lib/stringex/unidecoder_data/xcc.yml +257 -0
  194. data/stringex-2.8.6/lib/stringex/unidecoder_data/xcd.yml +257 -0
  195. data/stringex-2.8.6/lib/stringex/unidecoder_data/xce.yml +257 -0
  196. data/stringex-2.8.6/lib/stringex/unidecoder_data/xcf.yml +257 -0
  197. data/stringex-2.8.6/lib/stringex/unidecoder_data/xd0.yml +257 -0
  198. data/stringex-2.8.6/lib/stringex/unidecoder_data/xd1.yml +257 -0
  199. data/stringex-2.8.6/lib/stringex/unidecoder_data/xd2.yml +257 -0
  200. data/stringex-2.8.6/lib/stringex/unidecoder_data/xd3.yml +257 -0
  201. data/stringex-2.8.6/lib/stringex/unidecoder_data/xd4.yml +257 -0
  202. data/stringex-2.8.6/lib/stringex/unidecoder_data/xd5.yml +257 -0
  203. data/stringex-2.8.6/lib/stringex/unidecoder_data/xd6.yml +257 -0
  204. data/stringex-2.8.6/lib/stringex/unidecoder_data/xd7.yml +256 -0
  205. data/stringex-2.8.6/lib/stringex/unidecoder_data/xf9.yml +257 -0
  206. data/stringex-2.8.6/lib/stringex/unidecoder_data/xfa.yml +256 -0
  207. data/stringex-2.8.6/lib/stringex/unidecoder_data/xfb.yml +257 -0
  208. data/stringex-2.8.6/lib/stringex/unidecoder_data/xfc.yml +257 -0
  209. data/stringex-2.8.6/lib/stringex/unidecoder_data/xfd.yml +256 -0
  210. data/stringex-2.8.6/lib/stringex/unidecoder_data/xfe.yml +257 -0
  211. data/stringex-2.8.6/lib/stringex/unidecoder_data/xff.yml +257 -0
  212. data/stringex-2.8.6/lib/stringex/version.rb +8 -0
  213. data/stringex-2.8.6/lib/stringex.rb +17 -0
  214. data/stringex-2.8.6/lib/stringex_lite.rb +15 -0
  215. data/stringex-2.8.6/locales/da.yml +76 -0
  216. data/stringex-2.8.6/locales/de.yml +77 -0
  217. data/stringex-2.8.6/locales/en.yml +69 -0
  218. data/stringex-2.8.6/locales/fr.yml +72 -0
  219. data/stringex-2.8.6/locales/nb.yml +76 -0
  220. data/stringex-2.8.6/locales/nl.yml +69 -0
  221. data/stringex-2.8.6/locales/no.yml +76 -0
  222. data/stringex-2.8.6/locales/pl.yml +88 -0
  223. data/stringex-2.8.6/locales/pt-BR.yml +69 -0
  224. data/stringex-2.8.6/locales/ru.yml +69 -0
  225. data/stringex-2.8.6/locales/sv.yml +76 -0
  226. data/stringex-2.8.6/stringex.gemspec +290 -0
  227. data/stringex-2.8.6/test/performance/localization_performance_test.rb +24 -0
  228. data/stringex-2.8.6/test/test_helper.rb +2 -0
  229. data/stringex-2.8.6/test/unit/acts_as_url/adapter/activerecord.rb +71 -0
  230. data/stringex-2.8.6/test/unit/acts_as_url/adapter/datamapper.rb +83 -0
  231. data/stringex-2.8.6/test/unit/acts_as_url/adapter/mongoid.rb +82 -0
  232. data/stringex-2.8.6/test/unit/acts_as_url_configuration_test.rb +51 -0
  233. data/stringex-2.8.6/test/unit/acts_as_url_integration_test.rb +425 -0
  234. data/stringex-2.8.6/test/unit/localization/da_test.rb +118 -0
  235. data/stringex-2.8.6/test/unit/localization/de_test.rb +118 -0
  236. data/stringex-2.8.6/test/unit/localization/default_test.rb +115 -0
  237. data/stringex-2.8.6/test/unit/localization/en_test.rb +118 -0
  238. data/stringex-2.8.6/test/unit/localization/fr_test.rb +118 -0
  239. data/stringex-2.8.6/test/unit/localization/nl_test.rb +118 -0
  240. data/stringex-2.8.6/test/unit/localization/pl_test.rb +118 -0
  241. data/stringex-2.8.6/test/unit/localization/pt_br_test.rb +118 -0
  242. data/stringex-2.8.6/test/unit/localization/ru_test.rb +130 -0
  243. data/stringex-2.8.6/test/unit/localization/sv_test.rb +118 -0
  244. data/stringex-2.8.6/test/unit/localization_18n_failure_test.rb +40 -0
  245. data/stringex-2.8.6/test/unit/localization_test.rb +162 -0
  246. data/stringex-2.8.6/test/unit/string_extensions_configuration_test.rb +17 -0
  247. data/stringex-2.8.6/test/unit/string_extensions_test.rb +321 -0
  248. data/stringex-2.8.6/test/unit/unicode_point_suite/basic_greek_test.rb +113 -0
  249. data/stringex-2.8.6/test/unit/unicode_point_suite/basic_latin_test.rb +144 -0
  250. data/stringex-2.8.6/test/unit/unicode_point_suite/codepoint_test_helper.rb +32 -0
  251. data/stringex-2.8.6/test/unit/unidecoder/bad_localization.yml +1 -0
  252. data/stringex-2.8.6/test/unit/unidecoder/localization.yml +4 -0
  253. data/stringex-2.8.6/test/unit/unidecoder_test.rb +104 -0
  254. data/stringex-2.8.6/test/unit/version_test.rb +12 -0
  255. metadata +294 -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,2 @@
1
+ require 'test/unit'
2
+ $: << File.join(File.expand_path(File.dirname(__FILE__)), '../lib')
@@ -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