kinetic_sdk 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (245) hide show
  1. checksums.yaml +7 -0
  2. data/GettingStarted.md +64 -0
  3. data/README.md +383 -0
  4. data/bin/console +12 -0
  5. data/bin/setup +8 -0
  6. data/gems/kontena-websocket-client-0.1.1/Gemfile +4 -0
  7. data/gems/kontena-websocket-client-0.1.1/LICENSE +190 -0
  8. data/gems/kontena-websocket-client-0.1.1/README.md +138 -0
  9. data/gems/kontena-websocket-client-0.1.1/Rakefile +6 -0
  10. data/gems/kontena-websocket-client-0.1.1/benchmark/benchmark-client.rb +45 -0
  11. data/gems/kontena-websocket-client-0.1.1/benchmark/benchmark-em.rb +66 -0
  12. data/gems/kontena-websocket-client-0.1.1/benchmark/benchmark.rb +161 -0
  13. data/gems/kontena-websocket-client-0.1.1/benchmark/benchmark.sh +17 -0
  14. data/gems/kontena-websocket-client-0.1.1/benchmark/websocket-echo-server.go +207 -0
  15. data/gems/kontena-websocket-client-0.1.1/examples/websocket-echo-client.rb +80 -0
  16. data/gems/kontena-websocket-client-0.1.1/kontena-websocket-client.gemspec +24 -0
  17. data/gems/kontena-websocket-client-0.1.1/lib/kontena/websocket/client/connection.rb +119 -0
  18. data/gems/kontena-websocket-client-0.1.1/lib/kontena/websocket/client/version.rb +13 -0
  19. data/gems/kontena-websocket-client-0.1.1/lib/kontena/websocket/client.rb +848 -0
  20. data/gems/kontena-websocket-client-0.1.1/lib/kontena/websocket/error.rb +81 -0
  21. data/gems/kontena-websocket-client-0.1.1/lib/kontena/websocket/logging.rb +55 -0
  22. data/gems/kontena-websocket-client-0.1.1/lib/kontena/websocket/openssl_patch.rb +10 -0
  23. data/gems/kontena-websocket-client-0.1.1/lib/kontena-websocket-client.rb +15 -0
  24. data/gems/mime-types-3.1/Code-of-Conduct.rdoc +74 -0
  25. data/gems/mime-types-3.1/Contributing.rdoc +130 -0
  26. data/gems/mime-types-3.1/History.rdoc +658 -0
  27. data/gems/mime-types-3.1/Licence.rdoc +25 -0
  28. data/gems/mime-types-3.1/Manifest.txt +31 -0
  29. data/gems/mime-types-3.1/README.rdoc +202 -0
  30. data/gems/mime-types-3.1/Rakefile +254 -0
  31. data/gems/mime-types-3.1/lib/mime/type/columnar.rb +55 -0
  32. data/gems/mime-types-3.1/lib/mime/type.rb +573 -0
  33. data/gems/mime-types-3.1/lib/mime/types/_columnar.rb +135 -0
  34. data/gems/mime-types-3.1/lib/mime/types/cache.rb +56 -0
  35. data/gems/mime-types-3.1/lib/mime/types/columnar.rb +1 -0
  36. data/gems/mime-types-3.1/lib/mime/types/container.rb +30 -0
  37. data/gems/mime-types-3.1/lib/mime/types/deprecations.rb +32 -0
  38. data/gems/mime-types-3.1/lib/mime/types/full.rb +17 -0
  39. data/gems/mime-types-3.1/lib/mime/types/loader.rb +148 -0
  40. data/gems/mime-types-3.1/lib/mime/types/logger.rb +37 -0
  41. data/gems/mime-types-3.1/lib/mime/types/registry.rb +81 -0
  42. data/gems/mime-types-3.1/lib/mime/types.rb +228 -0
  43. data/gems/mime-types-3.1/lib/mime-types.rb +1 -0
  44. data/gems/mime-types-3.1/test/bad-fixtures/malformed +9 -0
  45. data/gems/mime-types-3.1/test/fixture/json.json +1 -0
  46. data/gems/mime-types-3.1/test/fixture/old-data +9 -0
  47. data/gems/mime-types-3.1/test/fixture/yaml.yaml +55 -0
  48. data/gems/mime-types-3.1/test/minitest_helper.rb +13 -0
  49. data/gems/mime-types-3.1/test/test_mime_type.rb +603 -0
  50. data/gems/mime-types-3.1/test/test_mime_types.rb +161 -0
  51. data/gems/mime-types-3.1/test/test_mime_types_cache.rb +109 -0
  52. data/gems/mime-types-3.1/test/test_mime_types_class.rb +155 -0
  53. data/gems/mime-types-3.1/test/test_mime_types_lazy.rb +43 -0
  54. data/gems/mime-types-3.1/test/test_mime_types_loader.rb +32 -0
  55. data/gems/mime-types-data-3.2016.0521/Code-of-Conduct.md +75 -0
  56. data/gems/mime-types-data-3.2016.0521/Contributing.md +157 -0
  57. data/gems/mime-types-data-3.2016.0521/History.md +351 -0
  58. data/gems/mime-types-data-3.2016.0521/Licence.md +25 -0
  59. data/gems/mime-types-data-3.2016.0521/Manifest.txt +18 -0
  60. data/gems/mime-types-data-3.2016.0521/README.md +61 -0
  61. data/gems/mime-types-data-3.2016.0521/Rakefile +80 -0
  62. data/gems/mime-types-data-3.2016.0521/data/mime-types.json +1 -0
  63. data/gems/mime-types-data-3.2016.0521/data/mime.content_type.column +1964 -0
  64. data/gems/mime-types-data-3.2016.0521/data/mime.docs.column +1964 -0
  65. data/gems/mime-types-data-3.2016.0521/data/mime.encoding.column +1964 -0
  66. data/gems/mime-types-data-3.2016.0521/data/mime.flags.column +1964 -0
  67. data/gems/mime-types-data-3.2016.0521/data/mime.friendly.column +1964 -0
  68. data/gems/mime-types-data-3.2016.0521/data/mime.pext.column +1964 -0
  69. data/gems/mime-types-data-3.2016.0521/data/mime.use_instead.column +1964 -0
  70. data/gems/mime-types-data-3.2016.0521/data/mime.xrefs.column +1964 -0
  71. data/gems/mime-types-data-3.2016.0521/lib/mime/types/data.rb +21 -0
  72. data/gems/mime-types-data-3.2016.0521/lib/mime-types-data.rb +3 -0
  73. data/gems/multipart-post-2.0.0/Gemfile +14 -0
  74. data/gems/multipart-post-2.0.0/History.txt +60 -0
  75. data/gems/multipart-post-2.0.0/Manifest.txt +9 -0
  76. data/gems/multipart-post-2.0.0/README.md +77 -0
  77. data/gems/multipart-post-2.0.0/Rakefile +9 -0
  78. data/gems/multipart-post-2.0.0/lib/composite_io.rb +108 -0
  79. data/gems/multipart-post-2.0.0/lib/multipart_post.rb +9 -0
  80. data/gems/multipart-post-2.0.0/lib/multipartable.rb +29 -0
  81. data/gems/multipart-post-2.0.0/lib/net/http/post/multipart.rb +27 -0
  82. data/gems/multipart-post-2.0.0/lib/parts.rb +96 -0
  83. data/gems/multipart-post-2.0.0/multipart-post.gemspec +22 -0
  84. data/gems/multipart-post-2.0.0/test/multibyte.txt +1 -0
  85. data/gems/multipart-post-2.0.0/test/net/http/post/test_multipart.rb +110 -0
  86. data/gems/multipart-post-2.0.0/test/test_composite_io.rb +115 -0
  87. data/gems/multipart-post-2.0.0/test/test_parts.rb +86 -0
  88. data/gems/parallel-1.12.1/MIT-LICENSE.txt +20 -0
  89. data/gems/parallel-1.12.1/lib/parallel/processor_count.rb +93 -0
  90. data/gems/parallel-1.12.1/lib/parallel/version.rb +3 -0
  91. data/gems/parallel-1.12.1/lib/parallel.rb +500 -0
  92. data/gems/ruby-progressbar-1.9.0/LICENSE.txt +19 -0
  93. data/gems/ruby-progressbar-1.9.0/README.md +38 -0
  94. data/gems/ruby-progressbar-1.9.0/Rakefile +2 -0
  95. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/base.rb +183 -0
  96. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/calculators/length.rb +99 -0
  97. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/calculators/running_average.rb +9 -0
  98. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/bar.rb +96 -0
  99. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/percentage.rb +29 -0
  100. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/rate.rb +43 -0
  101. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/time.rb +107 -0
  102. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components/title.rb +13 -0
  103. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/components.rb +5 -0
  104. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/errors/invalid_progress_error.rb +4 -0
  105. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/format/formatter.rb +27 -0
  106. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/format/molecule.rb +59 -0
  107. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/format/string.rb +36 -0
  108. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/format.rb +3 -0
  109. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/output.rb +68 -0
  110. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/outputs/non_tty.rb +47 -0
  111. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/outputs/null.rb +33 -0
  112. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/outputs/tty.rb +32 -0
  113. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/progress.rb +118 -0
  114. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/refinements/enumerator.rb +25 -0
  115. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/refinements.rb +1 -0
  116. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/throttle.rb +25 -0
  117. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/time.rb +30 -0
  118. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/timer.rb +72 -0
  119. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/version.rb +3 -0
  120. data/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar.rb +18 -0
  121. data/gems/slugify-1.0.7/README +18 -0
  122. data/gems/slugify-1.0.7/lib/slugify.rb +1012 -0
  123. data/gems/slugify-1.0.7/lib/slugify_string.rb +11 -0
  124. data/gems/slugify-1.0.7/tests/slugify_test.rb +116 -0
  125. data/gems/slugify-1.0.7/tests/string_slugify_test.rb +23 -0
  126. data/gems/websocket-driver-0.6.5/CHANGELOG.md +123 -0
  127. data/gems/websocket-driver-0.6.5/LICENSE.md +22 -0
  128. data/gems/websocket-driver-0.6.5/README.md +369 -0
  129. data/gems/websocket-driver-0.6.5/examples/tcp_server.rb +28 -0
  130. data/gems/websocket-driver-0.6.5/ext/websocket-driver/Makefile +264 -0
  131. data/gems/websocket-driver-0.6.5/ext/websocket-driver/WebsocketMaskService.java +55 -0
  132. data/gems/websocket-driver-0.6.5/ext/websocket-driver/extconf.rb +4 -0
  133. data/gems/websocket-driver-0.6.5/ext/websocket-driver/websocket_mask.bundle +0 -0
  134. data/gems/websocket-driver-0.6.5/ext/websocket-driver/websocket_mask.c +41 -0
  135. data/gems/websocket-driver-0.6.5/ext/websocket-driver/websocket_mask.o +0 -0
  136. data/gems/websocket-driver-0.6.5/lib/websocket/driver/client.rb +140 -0
  137. data/gems/websocket-driver-0.6.5/lib/websocket/driver/draft75.rb +102 -0
  138. data/gems/websocket-driver-0.6.5/lib/websocket/driver/draft76.rb +96 -0
  139. data/gems/websocket-driver-0.6.5/lib/websocket/driver/event_emitter.rb +54 -0
  140. data/gems/websocket-driver-0.6.5/lib/websocket/driver/headers.rb +45 -0
  141. data/gems/websocket-driver-0.6.5/lib/websocket/driver/hybi/frame.rb +20 -0
  142. data/gems/websocket-driver-0.6.5/lib/websocket/driver/hybi/message.rb +31 -0
  143. data/gems/websocket-driver-0.6.5/lib/websocket/driver/hybi.rb +406 -0
  144. data/gems/websocket-driver-0.6.5/lib/websocket/driver/proxy.rb +68 -0
  145. data/gems/websocket-driver-0.6.5/lib/websocket/driver/server.rb +80 -0
  146. data/gems/websocket-driver-0.6.5/lib/websocket/driver/stream_reader.rb +55 -0
  147. data/gems/websocket-driver-0.6.5/lib/websocket/driver.rb +199 -0
  148. data/gems/websocket-driver-0.6.5/lib/websocket/http/headers.rb +112 -0
  149. data/gems/websocket-driver-0.6.5/lib/websocket/http/request.rb +45 -0
  150. data/gems/websocket-driver-0.6.5/lib/websocket/http/response.rb +29 -0
  151. data/gems/websocket-driver-0.6.5/lib/websocket/http.rb +15 -0
  152. data/gems/websocket-driver-0.6.5/lib/websocket/mask.rb +14 -0
  153. data/gems/websocket-driver-0.6.5/lib/websocket/websocket_mask.rb +2 -0
  154. data/gems/websocket-driver-0.6.5/lib/websocket_mask.bundle +0 -0
  155. data/gems/websocket-driver-0.6.5-java/CHANGELOG.md +123 -0
  156. data/gems/websocket-driver-0.6.5-java/LICENSE.md +22 -0
  157. data/gems/websocket-driver-0.6.5-java/README.md +369 -0
  158. data/gems/websocket-driver-0.6.5-java/examples/tcp_server.rb +28 -0
  159. data/gems/websocket-driver-0.6.5-java/ext/websocket-driver/WebsocketMaskService.java +55 -0
  160. data/gems/websocket-driver-0.6.5-java/ext/websocket-driver/extconf.rb +4 -0
  161. data/gems/websocket-driver-0.6.5-java/ext/websocket-driver/websocket_mask.c +41 -0
  162. data/gems/websocket-driver-0.6.5-java/lib/websocket/driver/client.rb +140 -0
  163. data/gems/websocket-driver-0.6.5-java/lib/websocket/driver/draft75.rb +102 -0
  164. data/gems/websocket-driver-0.6.5-java/lib/websocket/driver/draft76.rb +96 -0
  165. data/gems/websocket-driver-0.6.5-java/lib/websocket/driver/event_emitter.rb +54 -0
  166. data/gems/websocket-driver-0.6.5-java/lib/websocket/driver/headers.rb +45 -0
  167. data/gems/websocket-driver-0.6.5-java/lib/websocket/driver/hybi/frame.rb +20 -0
  168. data/gems/websocket-driver-0.6.5-java/lib/websocket/driver/hybi/message.rb +31 -0
  169. data/gems/websocket-driver-0.6.5-java/lib/websocket/driver/hybi.rb +406 -0
  170. data/gems/websocket-driver-0.6.5-java/lib/websocket/driver/proxy.rb +68 -0
  171. data/gems/websocket-driver-0.6.5-java/lib/websocket/driver/server.rb +80 -0
  172. data/gems/websocket-driver-0.6.5-java/lib/websocket/driver/stream_reader.rb +55 -0
  173. data/gems/websocket-driver-0.6.5-java/lib/websocket/driver.rb +199 -0
  174. data/gems/websocket-driver-0.6.5-java/lib/websocket/http/headers.rb +112 -0
  175. data/gems/websocket-driver-0.6.5-java/lib/websocket/http/request.rb +45 -0
  176. data/gems/websocket-driver-0.6.5-java/lib/websocket/http/response.rb +29 -0
  177. data/gems/websocket-driver-0.6.5-java/lib/websocket/http.rb +15 -0
  178. data/gems/websocket-driver-0.6.5-java/lib/websocket/mask.rb +14 -0
  179. data/gems/websocket-driver-0.6.5-java/lib/websocket/websocket_mask.rb +2 -0
  180. data/gems/websocket-driver-0.6.5-java/lib/websocket_mask.jar +0 -0
  181. data/gems/websocket-extensions-0.1.3/CHANGELOG.md +15 -0
  182. data/gems/websocket-extensions-0.1.3/LICENSE.md +20 -0
  183. data/gems/websocket-extensions-0.1.3/README.md +313 -0
  184. data/gems/websocket-extensions-0.1.3/lib/websocket/extensions/parser.rb +111 -0
  185. data/gems/websocket-extensions-0.1.3/lib/websocket/extensions.rb +181 -0
  186. data/lib/kinetic-sdk.rb +1 -0
  187. data/lib/kinetic_sdk/bridgehub/bridgehub-sdk.rb +80 -0
  188. data/lib/kinetic_sdk/bridgehub/lib/access_keys.rb +67 -0
  189. data/lib/kinetic_sdk/bridgehub/lib/bridge.rb +69 -0
  190. data/lib/kinetic_sdk/discussions/discussions-sdk.rb +165 -0
  191. data/lib/kinetic_sdk/discussions/lib/discussions.rb +107 -0
  192. data/lib/kinetic_sdk/discussions/lib/invitations.rb +120 -0
  193. data/lib/kinetic_sdk/discussions/lib/messages.rb +190 -0
  194. data/lib/kinetic_sdk/discussions/lib/meta.rb +14 -0
  195. data/lib/kinetic_sdk/discussions/lib/participants.rb +64 -0
  196. data/lib/kinetic_sdk/discussions/lib/related_items.rb +54 -0
  197. data/lib/kinetic_sdk/discussions/lib/websockets.rb +96 -0
  198. data/lib/kinetic_sdk/filehub/filehub-sdk.rb +80 -0
  199. data/lib/kinetic_sdk/filehub/lib/access_keys.rb +67 -0
  200. data/lib/kinetic_sdk/filehub/lib/filestores.rb +67 -0
  201. data/lib/kinetic_sdk/request_ce/lib/attribute_definitions.rb +153 -0
  202. data/lib/kinetic_sdk/request_ce/lib/bridges.rb +66 -0
  203. data/lib/kinetic_sdk/request_ce/lib/categories.rb +34 -0
  204. data/lib/kinetic_sdk/request_ce/lib/datastore_form.rb +110 -0
  205. data/lib/kinetic_sdk/request_ce/lib/datastore_submissions.rb +157 -0
  206. data/lib/kinetic_sdk/request_ce/lib/form.rb +99 -0
  207. data/lib/kinetic_sdk/request_ce/lib/form_types.rb +51 -0
  208. data/lib/kinetic_sdk/request_ce/lib/jwt.rb +55 -0
  209. data/lib/kinetic_sdk/request_ce/lib/kapp.rb +93 -0
  210. data/lib/kinetic_sdk/request_ce/lib/meta.rb +14 -0
  211. data/lib/kinetic_sdk/request_ce/lib/oauth.rb +37 -0
  212. data/lib/kinetic_sdk/request_ce/lib/security_policy_definitions.rb +157 -0
  213. data/lib/kinetic_sdk/request_ce/lib/space.rb +89 -0
  214. data/lib/kinetic_sdk/request_ce/lib/submissions.rb +215 -0
  215. data/lib/kinetic_sdk/request_ce/lib/system_api.rb +69 -0
  216. data/lib/kinetic_sdk/request_ce/lib/teams.rb +113 -0
  217. data/lib/kinetic_sdk/request_ce/lib/users.rb +245 -0
  218. data/lib/kinetic_sdk/request_ce/lib/webhook_jobs.rb +142 -0
  219. data/lib/kinetic_sdk/request_ce/lib/webhooks.rb +192 -0
  220. data/lib/kinetic_sdk/request_ce/request-ce-sdk.rb +153 -0
  221. data/lib/kinetic_sdk/task/lib/access_keys.rb +94 -0
  222. data/lib/kinetic_sdk/task/lib/categories.rb +190 -0
  223. data/lib/kinetic_sdk/task/lib/config.rb +202 -0
  224. data/lib/kinetic_sdk/task/lib/engine.rb +42 -0
  225. data/lib/kinetic_sdk/task/lib/environment.rb +14 -0
  226. data/lib/kinetic_sdk/task/lib/errors.rb +165 -0
  227. data/lib/kinetic_sdk/task/lib/groups.rb +112 -0
  228. data/lib/kinetic_sdk/task/lib/handlers.rb +105 -0
  229. data/lib/kinetic_sdk/task/lib/health.rb +28 -0
  230. data/lib/kinetic_sdk/task/lib/license.rb +52 -0
  231. data/lib/kinetic_sdk/task/lib/policy_rules.rb +166 -0
  232. data/lib/kinetic_sdk/task/lib/setup.rb +56 -0
  233. data/lib/kinetic_sdk/task/lib/sources.rb +134 -0
  234. data/lib/kinetic_sdk/task/lib/tasks.rb +17 -0
  235. data/lib/kinetic_sdk/task/lib/trees.rb +274 -0
  236. data/lib/kinetic_sdk/task/lib/users.rb +75 -0
  237. data/lib/kinetic_sdk/task/task-sdk.rb +92 -0
  238. data/lib/kinetic_sdk/utils/kinetic-http-headers.rb +150 -0
  239. data/lib/kinetic_sdk/utils/kinetic-http-response.rb +75 -0
  240. data/lib/kinetic_sdk/utils/kinetic-http.rb +552 -0
  241. data/lib/kinetic_sdk/utils/logger.rb +70 -0
  242. data/lib/kinetic_sdk/utils/random.rb +30 -0
  243. data/lib/kinetic_sdk/version.rb +7 -0
  244. data/lib/kinetic_sdk.rb +57 -0
  245. metadata +414 -0
@@ -0,0 +1,1012 @@
1
+ # encoding: utf-8
2
+ if RUBY_VERSION < '1.9'
3
+ $KCODE='u'
4
+ end
5
+
6
+ # Loading string extensions
7
+ require File.dirname(__FILE__) + '/slugify_string'
8
+
9
+ class Slugify
10
+
11
+ SLUGGY_MAPPING = {
12
+ '0' => '0',
13
+ '1' => '1',
14
+ '2' => '2',
15
+ '3' => '3',
16
+ '4' => '4',
17
+ '5' => '5',
18
+ '6' => '6',
19
+ '7' => '7',
20
+ '8' => '8',
21
+ '9' => '9',
22
+ '²' => '2',
23
+ '³' => '3',
24
+ '&' => '-',
25
+ '(' => '-',
26
+ '{' => '-',
27
+ '}' => '-',
28
+ ')' => '-',
29
+ '-' => '-',
30
+ '_' => '-',
31
+ '[' => '-',
32
+ ']' => '-',
33
+ ',' => '-',
34
+ '.' => '-',
35
+ ';' => '-',
36
+ ':' => '-',
37
+ '=' => '-',
38
+ '+' => '-',
39
+ '<' => '-',
40
+ '>' => '-',
41
+ '~' => '-',
42
+ 'µ' => 'u',
43
+ 'A' => 'a',
44
+ 'B' => 'b',
45
+ 'C' => 'c',
46
+ 'D' => 'd',
47
+ 'E' => 'e',
48
+ 'F' => 'f',
49
+ 'G' => 'g',
50
+ 'H' => 'h',
51
+ 'I' => 'i',
52
+ 'J' => 'j',
53
+ 'K' => 'k',
54
+ 'L' => 'l',
55
+ 'M' => 'm',
56
+ 'N' => 'n',
57
+ 'O' => 'o',
58
+ 'P' => 'p',
59
+ 'Q' => 'q',
60
+ 'R' => 'r',
61
+ 'S' => 's',
62
+ 'T' => 't',
63
+ 'U' => 'u',
64
+ 'V' => 'v',
65
+ 'W' => 'w',
66
+ 'X' => 'x',
67
+ 'Y' => 'y',
68
+ 'Z' => 'z',
69
+ 'a' => 'a',
70
+ 'b' => 'b',
71
+ 'c' => 'c',
72
+ 'd' => 'd',
73
+ 'e' => 'e',
74
+ 'f' => 'f',
75
+ 'g' => 'g',
76
+ 'h' => 'h',
77
+ 'i' => 'i',
78
+ 'j' => 'j',
79
+ 'k' => 'k',
80
+ 'l' => 'l',
81
+ 'm' => 'm',
82
+ 'n' => 'n',
83
+ 'o' => 'o',
84
+ 'p' => 'p',
85
+ 'q' => 'q',
86
+ 'r' => 'r',
87
+ 's' => 's',
88
+ 't' => 't',
89
+ 'u' => 'u',
90
+ 'v' => 'v',
91
+ 'w' => 'w',
92
+ 'x' => 'x',
93
+ 'y' => 'y',
94
+ 'z' => 'z',
95
+ 'À' => 'a',
96
+ 'Á' => 'a',
97
+ 'Â' => 'a',
98
+ 'Ã' => 'a',
99
+ 'Ä' => 'a',
100
+ 'Å' => 'a',
101
+ 'Æ' => 'ae',
102
+ 'Ç' => 'c',
103
+ 'È' => 'e',
104
+ 'É' => 'e',
105
+ 'Ê' => 'e',
106
+ 'Ë' => 'e',
107
+ 'Ì' => 'i',
108
+ 'Í' => 'i',
109
+ 'Î' => 'i',
110
+ 'Ï' => 'i',
111
+ 'Ð' => 'd',
112
+ 'Ñ' => 'n',
113
+ 'Ò' => 'o',
114
+ 'Ó' => 'o',
115
+ 'Ô' => 'o',
116
+ 'Õ' => 'o',
117
+ 'Ö' => 'o',
118
+ '×' => 'x',
119
+ 'Ø' => 'o',
120
+ 'Ù' => 'u',
121
+ 'Ú' => 'u',
122
+ 'Û' => 'u',
123
+ 'Ü' => 'u',
124
+ 'Ý' => 'y',
125
+ 'Þ' => 'th',
126
+ 'ß' => 'b',
127
+ 'à' => 'a',
128
+ 'á' => 'a',
129
+ 'â' => 'a',
130
+ 'ã' => 'a',
131
+ 'ä' => 'a',
132
+ 'å' => 'a',
133
+ 'æ' => 'ae',
134
+ 'ç' => 'c',
135
+ 'è' => 'e',
136
+ 'é' => 'e',
137
+ 'ê' => 'e',
138
+ 'ë' => 'e',
139
+ 'ì' => 'i',
140
+ 'í' => 'i',
141
+ 'î' => 'i',
142
+ 'ï' => 'i',
143
+ 'ð' => 'o',
144
+ 'ñ' => 'n',
145
+ 'ò' => 'o',
146
+ 'ó' => 'o',
147
+ 'ô' => 'o',
148
+ 'õ' => 'o',
149
+ 'ö' => 'o',
150
+ 'ø' => 'o',
151
+ 'ù' => 'u',
152
+ 'ú' => 'u',
153
+ 'û' => 'u',
154
+ 'ü' => 'u',
155
+ 'ý' => 'y',
156
+ 'þ' => 'th',
157
+ 'ÿ' => 'y',
158
+ 'Ā' => 'a',
159
+ 'ā' => 'a',
160
+ 'Ă' => 'a',
161
+ 'ă' => 'a',
162
+ 'Ą' => 'a',
163
+ 'ą' => 'a',
164
+ 'Ć' => 'c',
165
+ 'ć' => 'c',
166
+ 'Ĉ' => 'c',
167
+ 'ĉ' => 'c',
168
+ 'Ċ' => 'c',
169
+ 'ċ' => 'c',
170
+ 'Č' => 'c',
171
+ 'č' => 'c',
172
+ 'Ď' => 'd',
173
+ 'ď' => 'd',
174
+ 'Đ' => 'd',
175
+ 'đ' => 'd',
176
+ 'Ē' => 'e',
177
+ 'ē' => 'e',
178
+ 'Ĕ' => 'e',
179
+ 'ĕ' => 'e',
180
+ 'Ė' => 'e',
181
+ 'ė' => 'e',
182
+ 'Ę' => 'e',
183
+ 'ę' => 'e',
184
+ 'Ě' => 'e',
185
+ 'ě' => 'e',
186
+ 'Ĝ' => 'g',
187
+ 'ĝ' => 'g',
188
+ 'Ğ' => 'g',
189
+ 'ğ' => 'g',
190
+ 'Ġ' => 'g',
191
+ 'ġ' => 'g',
192
+ 'Ģ' => 'g',
193
+ 'ģ' => 'g',
194
+ 'Ĥ' => 'h',
195
+ 'ĥ' => 'h',
196
+ 'Ħ' => 'h',
197
+ 'ħ' => 'h',
198
+ 'Ĩ' => 'i',
199
+ 'ĩ' => 'i',
200
+ 'Ī' => 'i',
201
+ 'ī' => 'i',
202
+ 'Ĭ' => 'i',
203
+ 'ĭ' => 'i',
204
+ 'Į' => 'i',
205
+ 'į' => 'i',
206
+ 'İ' => 'l',
207
+ 'ı' => 'l',
208
+ 'IJ' => 'ij',
209
+ 'ij' => 'ij',
210
+ 'Ĵ' => 'j',
211
+ 'ĵ' => 'j',
212
+ 'Ķ' => 'k',
213
+ 'ķ' => 'k',
214
+ 'ĸ' => 'k',
215
+ 'Ĺ' => 'l',
216
+ 'ĺ' => 'l',
217
+ 'Ļ' => 'l',
218
+ 'ļ' => 'l',
219
+ 'Ľ' => 'l',
220
+ 'ľ' => 'l',
221
+ 'Ŀ' => 'l',
222
+ 'ŀ' => 'l',
223
+ 'Ł' => 'l',
224
+ 'ł' => 'l',
225
+ 'Ń' => 'n',
226
+ 'ń' => 'n',
227
+ 'Ņ' => 'n',
228
+ 'ņ' => 'n',
229
+ 'Ň' => 'n',
230
+ 'ň' => 'n',
231
+ 'ʼn' => 'n',
232
+ 'Ŋ' => 'n',
233
+ 'ŋ' => 'n',
234
+ 'Ō' => 'o',
235
+ 'ō' => 'o',
236
+ 'Ŏ' => 'o',
237
+ 'ŏ' => 'o',
238
+ 'Ő' => 'o',
239
+ 'ő' => 'o',
240
+ 'Œ' => 'oe',
241
+ 'œ' => 'oe',
242
+ 'Ŕ' => 'r',
243
+ 'ŕ' => 'r',
244
+ 'Ŗ' => 'r',
245
+ 'ŗ' => 'r',
246
+ 'Ř' => 'r',
247
+ 'ř' => 'r',
248
+ 'Ś' => 's',
249
+ 'ś' => 's',
250
+ 'Ŝ' => 's',
251
+ 'ŝ' => 's',
252
+ 'Ş' => 's',
253
+ 'ş' => 's',
254
+ 'Š' => 's',
255
+ 'š' => 's',
256
+ 'Ţ' => 't',
257
+ 'ţ' => 't',
258
+ 'Ť' => 't',
259
+ 'ť' => 't',
260
+ 'Ŧ' => 't',
261
+ 'ŧ' => 't',
262
+ 'Ũ' => 'u',
263
+ 'ũ' => 'u',
264
+ 'Ū' => 'u',
265
+ 'ū' => 'u',
266
+ 'Ŭ' => 'u',
267
+ 'ŭ' => 'u',
268
+ 'Ů' => 'u',
269
+ 'ů' => 'u',
270
+ 'Ű' => 'u',
271
+ 'ű' => 'u',
272
+ 'Ų' => 'u',
273
+ 'ų' => 'u',
274
+ 'Ŵ' => 'w',
275
+ 'ŵ' => 'w',
276
+ 'Ŷ' => 'y',
277
+ 'ŷ' => 'y',
278
+ 'Ÿ' => 'y',
279
+ 'Ź' => 'z',
280
+ 'ź' => 'z',
281
+ 'Ż' => 'z',
282
+ 'ż' => 'z',
283
+ 'Ž' => 'z',
284
+ 'ž' => 'z',
285
+ 'ſ' => 's',
286
+ 'ƀ' => 'b',
287
+ 'Ɓ' => 'b',
288
+ 'Ƅ' => 'b',
289
+ 'ƅ' => 'b',
290
+ 'Ƈ' => 'c',
291
+ 'ƈ' => 'c',
292
+ 'Ɖ' => 'd',
293
+ 'Ɗ' => 'd',
294
+ 'Ƌ' => 'nd',
295
+ 'ƌ' => 'nd',
296
+ 'Ɛ' => 'e',
297
+ 'Ƒ' => 'f',
298
+ 'ƒ' => 'f',
299
+ 'Ɠ' => 'g',
300
+ 'Ɩ' => 'i',
301
+ 'Ɨ' => 'i',
302
+ 'Ƙ' => 'k',
303
+ 'ƙ' => 'k',
304
+ 'Ɯ' => 'w',
305
+ 'Ɲ' => 'n',
306
+ 'ƞ' => 'n',
307
+ 'Ɵ' => 'o',
308
+ 'Ơ' => 'o',
309
+ 'ơ' => 'o',
310
+ 'Ƥ' => 'p',
311
+ 'ƥ' => 'p',
312
+ 'Ʀ' => 'r',
313
+ 'Ƨ' => 's',
314
+ 'ƨ' => 's',
315
+ 'Ʃ' => 's',
316
+ 'ƪ' => 't',
317
+ 'ƫ' => 't',
318
+ 'Ƭ' => 't',
319
+ 'ƭ' => 't',
320
+ 'Ʈ' => 't',
321
+ 'Ư' => 'u',
322
+ 'ư' => 'u',
323
+ 'Ʊ' => 'u',
324
+ 'Ʋ' => 'u',
325
+ 'Ƶ' => 'z',
326
+ 'ƶ' => 'z',
327
+ 'Ʒ' => 'z',
328
+ 'Ƽ' => 'q',
329
+ 'ƽ' => 'q',
330
+ 'DŽ' => 'dz',
331
+ 'Dž' => 'dz',
332
+ 'dž' => 'dz',
333
+ 'LJ' => 'lj',
334
+ 'Lj' => 'lj',
335
+ 'lj' => 'lj',
336
+ 'NJ' => 'nj',
337
+ 'Nj' => 'nj',
338
+ 'nj' => 'nj',
339
+ 'Ǎ' => 'a',
340
+ 'ǎ' => 'a',
341
+ 'Ǐ' => 'i',
342
+ 'ǐ' => 'i',
343
+ 'Ǒ' => 'o',
344
+ 'ǒ' => 'o',
345
+ 'Ǔ' => 'u',
346
+ 'ǔ' => 'u',
347
+ 'Ǖ' => 'u',
348
+ 'ǖ' => 'u',
349
+ 'Ǘ' => 'u',
350
+ 'ǘ' => 'u',
351
+ 'Ǚ' => 'u',
352
+ 'ǚ' => 'u',
353
+ 'Ǜ' => 'u',
354
+ 'ǜ' => 'u',
355
+ 'ǝ' => 'e',
356
+ 'Ǟ' => 'a',
357
+ 'ǟ' => 'a',
358
+ 'Ǡ' => 'a',
359
+ 'ǡ' => 'a',
360
+ 'Ǣ' => 'ae',
361
+ 'ǣ' => 'ae',
362
+ 'Ǥ' => 'g',
363
+ 'ǥ' => 'g',
364
+ 'Ǧ' => 'g',
365
+ 'ǧ' => 'g',
366
+ 'Ǩ' => 'k',
367
+ 'ǩ' => 'k',
368
+ 'Ǫ' => 'o',
369
+ 'ǫ' => 'o',
370
+ 'Ǭ' => 'o',
371
+ 'ǭ' => 'o',
372
+ 'ǰ' => 'j',
373
+ 'DZ' => 'dz',
374
+ 'Dz' => 'dz',
375
+ 'dz' => 'dz',
376
+ 'Ǵ' => 'g',
377
+ 'ǵ' => 'g',
378
+ 'Ǹ' => 'n',
379
+ 'ǹ' => 'n',
380
+ 'Ǻ' => 'a',
381
+ 'ǻ' => 'a',
382
+ 'Ǽ' => 'ae',
383
+ 'ǽ' => 'ae',
384
+ 'Ǿ' => 'o',
385
+ 'ǿ' => 'o',
386
+ 'Ȁ' => 'a',
387
+ 'ȁ' => 'a',
388
+ 'Ȃ' => 'a',
389
+ 'ȃ' => 'a',
390
+ 'Ȅ' => 'e',
391
+ 'ȅ' => 'e',
392
+ 'Ȇ' => 'e',
393
+ 'ȇ' => 'e',
394
+ 'Ȉ' => 'i',
395
+ 'ȉ' => 'i',
396
+ 'Ȋ' => 'i',
397
+ 'ȋ' => 'i',
398
+ 'Ȍ' => 'o',
399
+ 'ȍ' => 'o',
400
+ 'Ȏ' => 'o',
401
+ 'ȏ' => 'o',
402
+ 'Ȑ' => 'r',
403
+ 'ȑ' => 'r',
404
+ 'Ȓ' => 'r',
405
+ 'ȓ' => 'r',
406
+ 'Ȕ' => 'u',
407
+ 'ȕ' => 'u',
408
+ 'Ȗ' => 'u',
409
+ 'ȗ' => 'u',
410
+ 'Ș' => 's',
411
+ 'ș' => 's',
412
+ 'Ț' => 't',
413
+ 'ț' => 't',
414
+ 'Ȟ' => 'h',
415
+ 'ȟ' => 'h',
416
+ 'Ƞ' => 'n',
417
+ 'Ȥ' => 'z',
418
+ 'ȥ' => 'z',
419
+ 'Ȧ' => 'a',
420
+ 'ȧ' => 'a',
421
+ 'Ȩ' => 'e',
422
+ 'ȩ' => 'e',
423
+ 'Ȫ' => 'o',
424
+ 'ȫ' => 'o',
425
+ 'Ȭ' => 'o',
426
+ 'ȭ' => 'o',
427
+ 'Ȯ' => 'o',
428
+ 'ȯ' => 'o',
429
+ 'Ȱ' => 'o',
430
+ 'ȱ' => 'o',
431
+ 'Ȳ' => 'y',
432
+ 'ȳ' => 'y',
433
+ 'ȷ' => 'j',
434
+ 'ȸ' => 'db',
435
+ 'ȹ' => 'qp',
436
+ 'Ⱥ' => 'a',
437
+ 'Ȼ' => 'c',
438
+ 'ȼ' => 'c',
439
+ 'Ƚ' => 'l',
440
+ 'Ⱦ' => 'l',
441
+ 'ȿ' => 's',
442
+ 'ɀ' => 'z',
443
+ 'Ƀ' => 'b',
444
+ 'Ʉ' => 'u',
445
+ 'Ʌ' => 'v',
446
+ 'Ɇ' => 'e',
447
+ 'ɇ' => 'e',
448
+ 'Ɉ' => 'j',
449
+ 'ɉ' => 'j',
450
+ 'Ɋ' => 'q',
451
+ 'ɋ' => 'q',
452
+ 'Ɍ' => 'r',
453
+ 'ɍ' => 'r',
454
+ 'Ɏ' => 'y',
455
+ 'ɏ' => 'y',
456
+ 'ɑ' => 'a',
457
+ 'ɗ' => 'd',
458
+ 'ɠ' => 'g',
459
+ 'ɡ' => 'g',
460
+ 'ɢ' => 'g',
461
+ 'ɯ' => 'w',
462
+ 'ɱ' => 'm',
463
+ 'ɵ' => 'o',
464
+ 'ɶ' => 'oe',
465
+ 'ᴀ' => 'a',
466
+ 'ᴁ' => 'ae',
467
+ 'ᴂ' => 'ae',
468
+ 'ᴃ' => 'b',
469
+ 'ᴄ' => 'c',
470
+ 'ᴅ' => 'd',
471
+ 'ᴆ' => 'd',
472
+ 'ᴇ' => 'e',
473
+ 'ᴊ' => 'j',
474
+ 'ᴋ' => 'k',
475
+ 'ᴌ' => 'l',
476
+ 'ᴍ' => 'm',
477
+ 'ᴎ' => 'n',
478
+ 'ᴏ' => 'o',
479
+ 'Ḁ' => 'a',
480
+ 'ḁ' => 'a',
481
+ 'Ḃ' => 'b',
482
+ 'ḃ' => 'b',
483
+ 'Ḅ' => 'b',
484
+ 'ḅ' => 'b',
485
+ 'Ḇ' => 'b',
486
+ 'ḇ' => 'b',
487
+ 'Ḉ' => 'c',
488
+ 'ḉ' => 'c',
489
+ 'Ḋ' => 'd',
490
+ 'ḋ' => 'd',
491
+ 'Ḍ' => 'd',
492
+ 'ḍ' => 'd',
493
+ 'Ḏ' => 'd',
494
+ 'ḏ' => 'd',
495
+ 'Ḑ' => 'd',
496
+ 'ḑ' => 'd',
497
+ 'Ḓ' => 'd',
498
+ 'ḓ' => 'd',
499
+ 'Ḕ' => 'e',
500
+ 'ḕ' => 'e',
501
+ 'Ḗ' => 'e',
502
+ 'ḗ' => 'e',
503
+ 'Ḙ' => 'e',
504
+ 'ḙ' => 'e',
505
+ 'Ḛ' => 'e',
506
+ 'ḛ' => 'e',
507
+ 'Ḝ' => 'e',
508
+ 'ḝ' => 'e',
509
+ 'Ḟ' => 'f',
510
+ 'ḟ' => 'f',
511
+ 'Ḡ' => 'g',
512
+ 'ḡ' => 'g',
513
+ 'Ḣ' => 'h',
514
+ 'ḣ' => 'h',
515
+ 'Ḥ' => 'h',
516
+ 'ḥ' => 'h',
517
+ 'Ḧ' => 'h',
518
+ 'ḧ' => 'h',
519
+ 'Ḩ' => 'h',
520
+ 'ḩ' => 'h',
521
+ 'Ḫ' => 'h',
522
+ 'ḫ' => 'h',
523
+ 'Ḭ' => 'i',
524
+ 'ḭ' => 'i',
525
+ 'Ḯ' => 'i',
526
+ 'ḯ' => 'i',
527
+ 'Ḱ' => 'k',
528
+ 'ḱ' => 'k',
529
+ 'Ḳ' => 'k',
530
+ 'ḳ' => 'k',
531
+ 'Ḵ' => 'k',
532
+ 'ḵ' => 'k',
533
+ 'Ḷ' => 'l',
534
+ 'ḷ' => 'l',
535
+ 'Ḹ' => 'l',
536
+ 'ḹ' => 'l',
537
+ 'Ḻ' => 'l',
538
+ 'ḻ' => 'l',
539
+ 'Ḽ' => 'l',
540
+ 'ḽ' => 'l',
541
+ 'Ḿ' => 'm',
542
+ 'ḿ' => 'm',
543
+ 'Ṁ' => 'm',
544
+ 'ṁ' => 'm',
545
+ 'Ṃ' => 'm',
546
+ 'ṃ' => 'm',
547
+ 'Ṅ' => 'n',
548
+ 'ṅ' => 'n',
549
+ 'Ṇ' => 'n',
550
+ 'ṇ' => 'n',
551
+ 'Ṉ' => 'n',
552
+ 'ṉ' => 'n',
553
+ 'Ṋ' => 'n',
554
+ 'ṋ' => 'n',
555
+ 'Ṍ' => 'o',
556
+ 'ṍ' => 'o',
557
+ 'Ṏ' => 'o',
558
+ 'ṏ' => 'o',
559
+ 'Ṑ' => 'o',
560
+ 'ṑ' => 'o',
561
+ 'Ṓ' => 'o',
562
+ 'ṓ' => 'o',
563
+ 'Ṕ' => 'p',
564
+ 'ṕ' => 'p',
565
+ 'Ṗ' => 'p',
566
+ 'ṗ' => 'p',
567
+ 'Ṙ' => 'r',
568
+ 'ṙ' => 'r',
569
+ 'Ṛ' => 'r',
570
+ 'ṛ' => 'r',
571
+ 'Ṝ' => 'r',
572
+ 'ṝ' => 'r',
573
+ 'Ṟ' => 'r',
574
+ 'ṟ' => 'r',
575
+ 'Ṡ' => 's',
576
+ 'ṡ' => 's',
577
+ 'Ṣ' => 's',
578
+ 'ṣ' => 's',
579
+ 'Ṥ' => 's',
580
+ 'ṥ' => 's',
581
+ 'Ṧ' => 's',
582
+ 'ṧ' => 's',
583
+ 'Ṩ' => 's',
584
+ 'ṩ' => 's',
585
+ 'Ṫ' => 't',
586
+ 'ṫ' => 't',
587
+ 'Ṭ' => 't',
588
+ 'ṭ' => 't',
589
+ 'Ṯ' => 't',
590
+ 'ṯ' => 't',
591
+ 'Ṱ' => 't',
592
+ 'ṱ' => 't',
593
+ 'Ṳ' => 'u',
594
+ 'ṳ' => 'u',
595
+ 'Ṵ' => 'u',
596
+ 'ṵ' => 'u',
597
+ 'Ṷ' => 'u',
598
+ 'ṷ' => 'u',
599
+ 'Ṹ' => 'u',
600
+ 'ṹ' => 'u',
601
+ 'Ṻ' => 'u',
602
+ 'ṻ' => 'u',
603
+ 'Ṽ' => 'v',
604
+ 'ṽ' => 'v',
605
+ 'Ṿ' => 'v',
606
+ 'ṿ' => 'v',
607
+ 'Ẁ' => 'w',
608
+ 'ẁ' => 'w',
609
+ 'Ẃ' => 'w',
610
+ 'ẃ' => 'w',
611
+ 'Ẅ' => 'w',
612
+ 'ẅ' => 'w',
613
+ 'Ẇ' => 'w',
614
+ 'ẇ' => 'w',
615
+ 'Ẉ' => 'w',
616
+ 'ẉ' => 'w',
617
+ 'Ẋ' => 'x',
618
+ 'ẋ' => 'x',
619
+ 'Ẍ' => 'x',
620
+ 'ẍ' => 'x',
621
+ 'Ẏ' => 'y',
622
+ 'ẏ' => 'y',
623
+ 'Ẑ' => 'z',
624
+ 'ẑ' => 'z',
625
+ 'Ẓ' => 'z',
626
+ 'ẓ' => 'z',
627
+ 'Ẕ' => 'z',
628
+ 'ẕ' => 'z',
629
+ 'ẖ' => 'h',
630
+ 'ẗ' => 't',
631
+ 'ẘ' => 'w',
632
+ 'ẙ' => 'y',
633
+ 'ẚ' => 'a',
634
+ 'Ạ' => 'a',
635
+ 'ạ' => 'a',
636
+ 'Ả' => 'a',
637
+ 'ả' => 'a',
638
+ 'Ấ' => 'a',
639
+ 'ấ' => 'a',
640
+ 'Ầ' => 'a',
641
+ 'ầ' => 'a',
642
+ 'Ẩ' => 'a',
643
+ 'ẩ' => 'a',
644
+ 'Ẫ' => 'a',
645
+ 'ẫ' => 'a',
646
+ 'Ậ' => 'a',
647
+ 'ậ' => 'a',
648
+ 'Ắ' => 'a',
649
+ 'ắ' => 'a',
650
+ 'Ằ' => 'a',
651
+ 'ằ' => 'a',
652
+ 'Ẳ' => 'a',
653
+ 'ẳ' => 'a',
654
+ 'Ẵ' => 'a',
655
+ 'ẵ' => 'a',
656
+ 'Ặ' => 'a',
657
+ 'ặ' => 'a',
658
+ 'Ẹ' => 'e',
659
+ 'ẹ' => 'e',
660
+ 'Ẻ' => 'e',
661
+ 'ẻ' => 'e',
662
+ 'Ẽ' => 'e',
663
+ 'ẽ' => 'e',
664
+ 'Ế' => 'e',
665
+ 'ế' => 'e',
666
+ 'Ề' => 'e',
667
+ 'ề' => 'e',
668
+ 'Ể' => 'e',
669
+ 'ể' => 'e',
670
+ 'Ễ' => 'e',
671
+ 'ễ' => 'e',
672
+ 'Ệ' => 'e',
673
+ 'ệ' => 'e',
674
+ 'Ọ' => 'o',
675
+ 'ọ' => 'o',
676
+ 'Ỏ' => 'o',
677
+ 'ỏ' => 'o',
678
+ 'Ố' => 'o',
679
+ 'ố' => 'o',
680
+ 'Ồ' => 'o',
681
+ 'ồ' => 'o',
682
+ 'Ổ' => 'o',
683
+ 'ổ' => 'o',
684
+ 'Ỗ' => 'o',
685
+ 'ỗ' => 'o',
686
+ 'Ộ' => 'o',
687
+ 'ộ' => 'o',
688
+ 'Ớ' => 'o',
689
+ 'ớ' => 'o',
690
+ 'Ờ' => 'o',
691
+ 'ờ' => 'o',
692
+ 'Ở' => 'o',
693
+ 'ở' => 'o',
694
+ 'Ỡ' => 'o',
695
+ 'ỡ' => 'o',
696
+ 'Ợ' => 'o',
697
+ 'ợ' => 'o',
698
+ 'Ụ' => 'u',
699
+ 'ụ' => 'u',
700
+ 'Ủ' => 'u',
701
+ 'ủ' => 'u',
702
+ 'Ứ' => 'u',
703
+ 'ứ' => 'u',
704
+ 'Ừ' => 'u',
705
+ 'ừ' => 'u',
706
+ 'Ử' => 'u',
707
+ 'ử' => 'u',
708
+ 'Ữ' => 'u',
709
+ 'ữ' => 'u',
710
+ 'Ự' => 'u',
711
+ 'ự' => 'u',
712
+ 'Ỳ' => 'y',
713
+ 'ỳ' => 'y',
714
+ 'Ỵ' => 'y',
715
+ 'ỵ' => 'y',
716
+ 'Ỷ' => 'y',
717
+ 'ỷ' => 'y',
718
+ 'Ỹ' => 'y',
719
+ 'ỹ' => 'y',
720
+ 'ₐ' => 'a',
721
+ 'ₑ' => 'e',
722
+ 'ₒ' => 'o',
723
+ 'ₓ' => 'x',
724
+ '℀' => 'ac',
725
+ '℁' => 'as',
726
+ 'ℂ' => 'c',
727
+ '℃' => 'c',
728
+ '℄' => 'c',
729
+ '℅' => 'co',
730
+ '℆' => 'cu',
731
+ '℉' => 'f',
732
+ 'ℊ' => 'g',
733
+ 'ℋ' => 'h',
734
+ 'ℌ' => 'h',
735
+ 'ℍ' => 'h',
736
+ 'ℎ' => 'h',
737
+ 'ℏ' => 'h',
738
+ 'ℕ' => 'n',
739
+ '℗' => 'p',
740
+ 'ℙ' => 'p',
741
+ 'ℚ' => 'q',
742
+ 'ℛ' => 'r',
743
+ 'ℜ' => 'r',
744
+ 'ℝ' => 'r',
745
+ '℞' => 'px',
746
+ '℟' => 'r',
747
+ '℠' => 'sm',
748
+ '℡' => 'tel',
749
+ '™' => 'tm',
750
+ 'ℤ' => 'z',
751
+ 'K' => 'k',
752
+ 'Å' => 'a',
753
+ 'ℬ' => 'b',
754
+ '℮' => 'e',
755
+ 'ℯ' => 'e',
756
+ '⒐' => '9',
757
+ '⒑' => '10',
758
+ '⒒' => '11',
759
+ '⒓' => '12',
760
+ '⒔' => '13',
761
+ '⒕' => '14',
762
+ '⒖' => '15',
763
+ '⒗' => '16',
764
+ '⒘' => '17',
765
+ '⒙' => '18',
766
+ '⒚' => '19',
767
+ '⒛' => '20',
768
+ '⒜' => 'a',
769
+ '⒝' => 'b',
770
+ '⒞' => 'c',
771
+ '⒟' => 'd',
772
+ '⒠' => 'e',
773
+ '⒡' => 'f',
774
+ '⒢' => 'g',
775
+ '⒣' => 'h',
776
+ '⒤' => 'i',
777
+ '⒥' => 'j',
778
+ '⒦' => 'k',
779
+ '⒧' => 'l',
780
+ '⒨' => 'm',
781
+ '⒩' => 'n',
782
+ '⒪' => 'o',
783
+ '⒫' => 'p',
784
+ '⒬' => 'q',
785
+ '⒭' => 'r',
786
+ '⒮' => 's',
787
+ '⒯' => 't',
788
+ '⒰' => 'u',
789
+ '⒱' => 'v',
790
+ '⒲' => 'w',
791
+ '⒳' => 'x',
792
+ '⒴' => 'y',
793
+ '⒵' => 'z',
794
+ 'Ⓐ' => 'a',
795
+ 'Ⓑ' => 'b',
796
+ 'Ⓒ' => 'c',
797
+ 'Ⓓ' => 'd',
798
+ 'Ⓔ' => 'e',
799
+ 'Ⓕ' => 'f',
800
+ 'Ⓖ' => 'g',
801
+ 'Ⓗ' => 'h',
802
+ 'Ⓘ' => 'i',
803
+ 'Ⓙ' => 'j',
804
+ 'Ⓚ' => 'k',
805
+ 'Ⓛ' => 'l',
806
+ 'Ⓜ' => 'm',
807
+ 'Ⓝ' => 'n',
808
+ 'Ⓞ' => 'o',
809
+ 'Ⓟ' => 'p',
810
+ 'Ⓠ' => 'q',
811
+ 'Ⓡ' => 'r',
812
+ 'Ⓢ' => 's',
813
+ 'Ⓣ' => 't',
814
+ 'Ⓤ' => 'u',
815
+ 'Ⓥ' => 'v',
816
+ 'Ⓦ' => 'w',
817
+ 'Ⓧ' => 'x',
818
+ 'Ⓨ' => 'y',
819
+ 'Ⓩ' => 'z',
820
+ 'ⓐ' => 'a',
821
+ 'ⓑ' => 'b',
822
+ 'ⓒ' => 'c',
823
+ 'ⓓ' => 'd',
824
+ 'ⓔ' => 'e',
825
+ 'ⓕ' => 'f',
826
+ 'ⓖ' => 'g',
827
+ 'ⓗ' => 'h',
828
+ 'ⓘ' => 'i',
829
+ 'ⓙ' => 'j',
830
+ 'ⓚ' => 'k',
831
+ 'ⓛ' => 'l',
832
+ 'ⓜ' => 'm',
833
+ 'ⓝ' => 'n',
834
+ 'ⓞ' => 'o',
835
+ 'ⓟ' => 'p',
836
+ 'ⓠ' => 'q',
837
+ 'ⓡ' => 'r',
838
+ 'ⓢ' => 's',
839
+ 'ⓣ' => 't',
840
+ 'ⓤ' => 'u',
841
+ 'ⓥ' => 'v',
842
+ 'ⓦ' => 'w',
843
+ 'ⓧ' => 'x',
844
+ 'ⓨ' => 'y',
845
+ 'ⓩ' => 'z',
846
+ '⓪' => '0',
847
+ 'ꜰ' => 'f',
848
+ 'ꜱ' => 's',
849
+ 'Ꜳ' => 'aa',
850
+ 'ꜳ' => 'aa',
851
+ 'Ꜵ' => 'ao',
852
+ 'ꜵ' => 'ao',
853
+ 'Ꜷ' => 'aj',
854
+ 'ꜷ' => 'aj',
855
+ 'Ꜹ' => 'av',
856
+ 'ꜹ' => 'av',
857
+ 'Ꜻ' => 'af',
858
+ 'ꜻ' => 'af',
859
+ 'Ꜽ' => 'af',
860
+ 'ꜽ' => 'af',
861
+ 'А' => 'a',
862
+ 'Б' => 'b',
863
+ 'В' => 'v',
864
+ 'Г' => 'g',
865
+ 'Д' => 'd',
866
+ 'Е' => 'ye',
867
+ 'Ё' => 'yo',
868
+ 'Ж' => 'zh',
869
+ 'З' => 'z',
870
+ 'И' => 'i',
871
+ 'Й' => 'j',
872
+ 'К' => 'k',
873
+ 'Л' => 'l',
874
+ 'М' => 'm',
875
+ 'Н' => 'n',
876
+ 'О' => 'o',
877
+ 'П' => 'p',
878
+ 'Р' => 'r',
879
+ 'С' => 's',
880
+ 'Т' => 't',
881
+ 'У' => 'u',
882
+ 'Ф' => 'f',
883
+ 'Х' => 'h',
884
+ 'Ц' => 'c',
885
+ 'Ч' => 'ch',
886
+ 'Ш' => 'sh',
887
+ 'Щ' => 'shch',
888
+ 'Ъ' => '',
889
+ 'Ы' => 'y',
890
+ 'Ь' => '',
891
+ 'Э' => 'e',
892
+ 'Ю' => 'yu',
893
+ 'Я' => 'ya',
894
+ 'а' => 'a',
895
+ 'б' => 'b',
896
+ 'в' => 'v',
897
+ 'г' => 'g',
898
+ 'д' => 'd',
899
+ 'е' => 'ye',
900
+ 'ё' => 'yo',
901
+ 'ж' => 'zh',
902
+ 'з' => 'z',
903
+ 'и' => 'i',
904
+ 'й' => 'j',
905
+ 'к' => 'k',
906
+ 'л' => 'l',
907
+ 'м' => 'm',
908
+ 'н' => 'n',
909
+ 'о' => 'o',
910
+ 'п' => 'p',
911
+ 'р' => 'r',
912
+ 'с' => 's',
913
+ 'т' => 't',
914
+ 'у' => 'u',
915
+ 'ф' => 'f',
916
+ 'х' => 'h',
917
+ 'ц' => 'c',
918
+ 'ч' => 'ch',
919
+ 'ш' => 'sh',
920
+ 'щ' => 'shch',
921
+ 'ъ' => '',
922
+ 'ы' => 'y',
923
+ 'ь' => '',
924
+ 'э' => 'e',
925
+ 'ю' => 'yu',
926
+ 'я' => 'ya',
927
+ 'A' => 'a',
928
+ 'B' => 'b',
929
+ 'C' => 'c',
930
+ 'D' => 'd',
931
+ 'E' => 'e',
932
+ 'F' => 'f',
933
+ 'G' => 'g',
934
+ 'H' => 'h',
935
+ 'I' => 'i',
936
+ 'J' => 'j',
937
+ 'K' => 'k',
938
+ 'L' => 'l',
939
+ 'M' => 'm',
940
+ 'N' => 'n',
941
+ 'O' => 'o',
942
+ 'P' => 'p',
943
+ 'Q' => 'q',
944
+ 'R' => 'r',
945
+ 'S' => 's',
946
+ 'T' => 't',
947
+ 'U' => 'u',
948
+ 'V' => 'v',
949
+ 'W' => 'w',
950
+ 'X' => 'x',
951
+ 'Y' => 'y',
952
+ 'Z' => 'z',
953
+ '_' => '-',
954
+ 'a' => 'a',
955
+ 'b' => 'b',
956
+ 'c' => 'c',
957
+ 'd' => 'd',
958
+ 'e' => 'e',
959
+ 'f' => 'f',
960
+ 'g' => 'g',
961
+ 'h' => 'h',
962
+ 'i' => 'i',
963
+ 'j' => 'j',
964
+ 'k' => 'k',
965
+ 'l' => 'l',
966
+ 'm' => 'm',
967
+ 'n' => 'n',
968
+ 'o' => 'o',
969
+ 'p' => 'p',
970
+ 'q' => 'q',
971
+ 'r' => 'r',
972
+ 's' => 's',
973
+ 't' => 't',
974
+ 'u' => 'u',
975
+ 'v' => 'v',
976
+ 'w' => 'w',
977
+ 'x' => 'x',
978
+ 'y' => 'y',
979
+ 'z' => 'z',
980
+ '~' => '-',
981
+
982
+ ' ' => '-'
983
+ }
984
+
985
+ def self.convert (str, trim = false)
986
+ result = ''
987
+
988
+ str.each_char do |kar|
989
+ if SLUGGY_MAPPING.include?(kar)
990
+ result << SLUGGY_MAPPING[kar]
991
+ end
992
+ end
993
+
994
+ if trim
995
+ tmp = result
996
+ result = ""
997
+ prefix = ""
998
+ tmp.each_char do |kar|
999
+ if kar == '-'
1000
+ prefix = "-"
1001
+ else
1002
+ prefix = '' if result == ""
1003
+ result << prefix + kar
1004
+ prefix = ''
1005
+ end
1006
+ end
1007
+ end
1008
+
1009
+ result
1010
+ end
1011
+
1012
+ end