facets 2.6.0 → 2.7.0

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 (321) hide show
  1. data/HISTORY.rdoc +331 -35
  2. data/MANIFEST +685 -826
  3. data/{doc/guide/notes.rd → NOTES} +0 -0
  4. data/README.rdoc +73 -25
  5. data/Rakefile +245 -2
  6. data/TODO +5 -0
  7. data/demo/hook.rd +47 -0
  8. data/demo/scenario_require.rd +9 -0
  9. data/doc/README.more +24 -6
  10. data/doc/manual/about.rb +47 -0
  11. data/doc/manual/annotations.rdoc +60 -0
  12. data/doc/manual/associations.rdoc +55 -0
  13. data/doc/manual/blockups.rdoc +101 -0
  14. data/doc/manual/capsule.rdoc +34 -0
  15. data/doc/manual/command.rdoc +177 -0
  16. data/doc/manual/core.rdoc +37 -0
  17. data/doc/manual/faq.rdoc +32 -0
  18. data/doc/manual/typecast.html +112 -0
  19. data/lib/core/facets.rb +359 -11
  20. data/lib/core/facets/array/combination.rb +3 -3
  21. data/lib/core/facets/array/index.rb +4 -1
  22. data/lib/core/facets/array/permutation.rb +2 -2
  23. data/lib/core/facets/array/product.rb +1 -1
  24. data/lib/core/facets/binding/eval.rb +1 -1
  25. data/lib/core/facets/denumerable.rb +76 -0
  26. data/lib/core/facets/duplicable.rb +34 -0
  27. data/lib/core/facets/enumerable/count.rb +10 -4
  28. data/lib/core/facets/enumerable/defer.rb +77 -0
  29. data/lib/core/facets/enumerable/each_by.rb +1 -1
  30. data/lib/core/facets/enumerable/every.rb +35 -0
  31. data/lib/{more/facets/elementwise.rb → core/facets/enumerable/ewise.rb} +0 -0
  32. data/lib/core/facets/enumerable/filter.rb +25 -0
  33. data/lib/core/facets/enumerable/group_by.rb +1 -1
  34. data/lib/core/facets/enumerable/none.rb +3 -2
  35. data/lib/core/facets/enumerable/one.rb +3 -2
  36. data/lib/core/facets/enumerable/per.rb +61 -0
  37. data/lib/core/facets/exception/raised.rb +14 -0
  38. data/lib/core/facets/integer/odd.rb +5 -1
  39. data/lib/core/facets/kernel/__dir__.rb +13 -3
  40. data/lib/core/facets/kernel/__here__.rb +14 -0
  41. data/lib/core/facets/kernel/__method__.rb +9 -3
  42. data/lib/core/facets/kernel/ask.rb +1 -0
  43. data/lib/core/facets/kernel/equate.rb +13 -0
  44. data/lib/core/facets/kernel/extension.rb +9 -0
  45. data/lib/core/facets/kernel/identical.rb +4 -0
  46. data/lib/core/facets/kernel/instance_exec.rb +2 -1
  47. data/lib/core/facets/kernel/method.rb +49 -0
  48. data/lib/core/facets/kernel/object_send.rb +2 -2
  49. data/lib/core/facets/kernel/{state.rb → object_state.rb} +23 -12
  50. data/lib/core/facets/kernel/require_all.rb +6 -1
  51. data/lib/core/facets/kernel/require_local.rb +8 -1
  52. data/lib/core/facets/kernel/require_relative.rb +52 -0
  53. data/lib/core/facets/kernel/source_location.rb +13 -0
  54. data/lib/core/facets/kernel/tap.rb +13 -6
  55. data/lib/core/facets/module/attr_setter.rb +57 -0
  56. data/lib/core/facets/module/instance_method.rb +24 -0
  57. data/lib/core/facets/module/module_load.rb +60 -44
  58. data/lib/core/facets/module/module_require.rb +1 -0
  59. data/lib/core/facets/nilclass/to_f.rb +1 -1
  60. data/lib/core/facets/objectspace/op_fetch.rb +3 -0
  61. data/lib/core/facets/proc/curry.rb +4 -3
  62. data/lib/core/facets/string/bytes.rb +10 -4
  63. data/lib/core/facets/string/camelcase.rb +6 -5
  64. data/lib/core/facets/string/chars.rb +5 -1
  65. data/lib/core/facets/string/each_char.rb +1 -1
  66. data/lib/core/facets/string/each_word.rb +1 -1
  67. data/lib/core/facets/string/lines.rb +11 -4
  68. data/lib/core/facets/string/start_with.rb +9 -2
  69. data/lib/core/facets/string/unfold.rb +27 -0
  70. data/lib/core/facets/symbol/succ.rb +3 -3
  71. data/lib/core/facets/symbol/thrown.rb +20 -0
  72. data/lib/core/facets/symbol/to_proc.rb +3 -2
  73. data/lib/core/facets/time/to_time.rb +1 -1
  74. data/lib/core/facets/to_hash.rb +41 -100
  75. data/lib/core/facets/unboundmethod/name.rb +20 -23
  76. data/lib/more/facets/ansicode.rb +1 -10
  77. data/lib/more/facets/autoarray.rb +3 -31
  78. data/lib/more/facets/basicobject.rb +73 -0
  79. data/lib/more/facets/blankslate.rb +2 -66
  80. data/lib/{lore → more}/facets/cgi.rb +0 -0
  81. data/lib/more/facets/class_extend.rb +1 -0
  82. data/lib/{lore → more}/facets/continuation.rb +0 -0
  83. data/lib/{lore → more}/facets/date.rb +3 -3
  84. data/lib/more/facets/enumargs.rb +192 -0
  85. data/lib/more/facets/enumerablepass.rb +2 -216
  86. data/lib/more/facets/enumerator.rb +62 -0
  87. data/lib/more/facets/{equatable.rb → equitable.rb} +11 -11
  88. data/lib/more/facets/expirable.rb +13 -41
  89. data/lib/{lore → more}/facets/fileutils.rb +0 -0
  90. data/lib/{lore → more}/facets/fileutils/head.rb +0 -0
  91. data/lib/{lore → more}/facets/fileutils/safe_ln.rb +0 -0
  92. data/lib/{lore → more}/facets/fileutils/slice.rb +0 -0
  93. data/lib/{lore → more}/facets/fileutils/tail.rb +0 -0
  94. data/lib/{lore → more}/facets/fileutils/wc.rb +0 -0
  95. data/lib/{lore → more}/facets/fileutils/whereis.rb +0 -0
  96. data/lib/{lore → more}/facets/fileutils/which.rb +0 -0
  97. data/lib/{lore → more}/facets/getoptlong.rb +0 -0
  98. data/lib/more/facets/hook.rb +2 -29
  99. data/lib/more/facets/inheritor.rb +2 -2
  100. data/lib/more/facets/instance_eval.rb +50 -0
  101. data/lib/more/facets/instance_function.rb +78 -0
  102. data/lib/more/facets/main.rb +20 -15
  103. data/lib/more/facets/memoize.rb +1 -113
  104. data/lib/more/facets/module/attr.rb +83 -0
  105. data/lib/more/facets/module/attr_tester.rb +44 -0
  106. data/lib/more/facets/module/attr_toggler.rb +59 -0
  107. data/lib/more/facets/module/attr_validator.rb +34 -0
  108. data/lib/more/facets/{class_extension.rb → module/class_extend.rb} +21 -13
  109. data/lib/more/facets/once.rb +59 -0
  110. data/lib/more/facets/openmodule.rb +1 -0
  111. data/lib/more/facets/orderedhash.rb +1 -33
  112. data/lib/{lore → more}/facets/ostruct.rb +0 -0
  113. data/lib/more/facets/ostructable.rb +1 -4
  114. data/lib/more/facets/partial.rb +18 -16
  115. data/lib/{lore → more}/facets/pathname.rb +0 -0
  116. data/lib/more/facets/preinitialize.rb +157 -0
  117. data/lib/{lore → more}/facets/rbconfig.rb +0 -0
  118. data/lib/more/facets/recorder.rb +1 -2
  119. data/lib/{lore → more}/facets/set.rb +0 -0
  120. data/lib/{lore → more}/facets/shellwords.rb +0 -0
  121. data/lib/{lore → more}/facets/uri.rb +0 -0
  122. data/lib/{lore → more}/facets/yaml.rb +0 -0
  123. data/lib/{lore → more}/facets/zlib.rb +0 -0
  124. data/meta/loadpath +0 -1
  125. data/meta/sitemap +4 -0
  126. data/meta/version +1 -1
  127. data/test/core/enumerable/test_count.rb +1 -1
  128. data/test/{more/test_filter.rb → core/enumerable/test_defer.rb} +24 -22
  129. data/test/{more/test_elementor.rb → core/enumerable/test_every.rb} +2 -15
  130. data/test/core/enumerable/test_ewise.rb +23 -0
  131. data/test/core/enumerable/test_per.rb +18 -0
  132. data/test/core/enumerable/test_take.rb +13 -0
  133. data/test/core/kernel/test_deepcopy.rb +1 -1
  134. data/test/{more/test_1stclassmethod.rb → core/kernel/test_method.rb} +2 -7
  135. data/test/core/kernel/test_tap.rb +1 -1
  136. data/test/core/proc/test_curry.rb +11 -0
  137. data/test/core/string/test_bytes.rb +1 -1
  138. data/test/core/string/test_camelcase.rb +23 -6
  139. data/test/core/string/test_lines.rb +1 -1
  140. data/test/core/string/test_unfold.rb +14 -0
  141. data/test/{more → core}/test_blank.rb +0 -0
  142. data/test/{more → core}/test_boolean.rb +0 -0
  143. data/test/{more → core}/test_functor.rb +0 -0
  144. data/test/{lore → more}/test_basicobject.rb +0 -0
  145. data/test/more/{test_class_extension.rb → test_class_extend.rb} +6 -6
  146. data/test/{lore → more}/test_continuation.rb +0 -0
  147. data/test/{lore → more}/test_date.rb +0 -0
  148. data/test/more/{test_enumerablepass.rb → test_enumargs.rb} +2 -4
  149. data/test/more/{test_equatable.rb → test_equitable.rb} +2 -2
  150. data/test/more/{test_instantise.rb → test_instance_function.rb} +3 -2
  151. data/test/more/test_memoize.rb +1 -1
  152. data/test/{lore → more}/test_ostruct.rb +0 -0
  153. metadata +865 -1016
  154. data/RELEASE +0 -38
  155. data/doc/README.lore +0 -51
  156. data/doc/log/basic_stats/index.html +0 -39
  157. data/doc/log/changelog.html +0 -648
  158. data/doc/log/changelog.txt +0 -217
  159. data/doc/log/stats/index.html +0 -39
  160. data/doc/log/testlog.txt +0 -278
  161. data/doc/notes/CHANGES +0 -2529
  162. data/doc/rdoc/lore/classes/Array.html +0 -176
  163. data/doc/rdoc/lore/classes/CGI.html +0 -191
  164. data/doc/rdoc/lore/classes/Config.html +0 -135
  165. data/doc/rdoc/lore/classes/Continuation.html +0 -113
  166. data/doc/rdoc/lore/classes/Date.html +0 -631
  167. data/doc/rdoc/lore/classes/DateTime.html +0 -583
  168. data/doc/rdoc/lore/classes/Enumerable.html +0 -89
  169. data/doc/rdoc/lore/classes/Enumerable/Enumerator.html +0 -147
  170. data/doc/rdoc/lore/classes/File.html +0 -128
  171. data/doc/rdoc/lore/classes/FileUtils.html +0 -434
  172. data/doc/rdoc/lore/classes/GetoptLong.html +0 -118
  173. data/doc/rdoc/lore/classes/GetoptLong/DSL.html +0 -208
  174. data/doc/rdoc/lore/classes/Kernel.html +0 -135
  175. data/doc/rdoc/lore/classes/Logger.html +0 -229
  176. data/doc/rdoc/lore/classes/Logger/Ansicolor.html +0 -277
  177. data/doc/rdoc/lore/classes/Logger/LogDevice.html +0 -121
  178. data/doc/rdoc/lore/classes/NilClass.html +0 -119
  179. data/doc/rdoc/lore/classes/OpenStruct.html +0 -432
  180. data/doc/rdoc/lore/classes/Pathname.html +0 -353
  181. data/doc/rdoc/lore/classes/Set.html +0 -117
  182. data/doc/rdoc/lore/classes/Shellwords.html +0 -111
  183. data/doc/rdoc/lore/classes/String.html +0 -140
  184. data/doc/rdoc/lore/classes/Time.html +0 -154
  185. data/doc/rdoc/lore/classes/URI.html +0 -454
  186. data/doc/rdoc/lore/classes/URI/Hash.html +0 -105
  187. data/doc/rdoc/lore/classes/URI/Kernel.html +0 -122
  188. data/doc/rdoc/lore/classes/Zlib.html +0 -188
  189. data/doc/rdoc/lore/created.rid +0 -1
  190. data/doc/rdoc/lore/files/README.html +0 -286
  191. data/doc/rdoc/lore/files/doc/README_lore.html +0 -155
  192. data/doc/rdoc/lore/files/lib/lore/facets/basicobject_rb.html +0 -118
  193. data/doc/rdoc/lore/files/lib/lore/facets/cgi_rb.html +0 -111
  194. data/doc/rdoc/lore/files/lib/lore/facets/continuation_rb.html +0 -147
  195. data/doc/rdoc/lore/files/lib/lore/facets/date_rb.html +0 -97
  196. data/doc/rdoc/lore/files/lib/lore/facets/enumerator_rb.html +0 -111
  197. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/head_rb.html +0 -96
  198. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/safe_ln_rb.html +0 -96
  199. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/slice_rb.html +0 -96
  200. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/tail_rb.html +0 -96
  201. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/wc_rb.html +0 -96
  202. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/whereis_rb.html +0 -96
  203. data/doc/rdoc/lore/files/lib/lore/facets/fileutils/which_rb.html +0 -96
  204. data/doc/rdoc/lore/files/lib/lore/facets/fileutils_rb.html +0 -131
  205. data/doc/rdoc/lore/files/lib/lore/facets/getoptlong_rb.html +0 -135
  206. data/doc/rdoc/lore/files/lib/lore/facets/logger_rb.html +0 -142
  207. data/doc/rdoc/lore/files/lib/lore/facets/ostruct_rb.html +0 -135
  208. data/doc/rdoc/lore/files/lib/lore/facets/pathname_rb.html +0 -145
  209. data/doc/rdoc/lore/files/lib/lore/facets/rbconfig_rb.html +0 -124
  210. data/doc/rdoc/lore/files/lib/lore/facets/set_rb.html +0 -96
  211. data/doc/rdoc/lore/files/lib/lore/facets/shellwords_rb.html +0 -124
  212. data/doc/rdoc/lore/files/lib/lore/facets/uri_rb.html +0 -125
  213. data/doc/rdoc/lore/files/lib/lore/facets/yaml_rb.html +0 -146
  214. data/doc/rdoc/lore/files/lib/lore/facets/zlib_rb.html +0 -97
  215. data/doc/rdoc/lore/fr_class_index.html +0 -73
  216. data/doc/rdoc/lore/fr_file_index.html +0 -71
  217. data/doc/rdoc/lore/fr_method_index.html +0 -177
  218. data/doc/rdoc/lore/index.html +0 -26
  219. data/doc/rdoc/lore/rdoc-style.css +0 -177
  220. data/doc/release-notes/RELEASE-2.0.5 +0 -8
  221. data/doc/release-notes/RELEASE-2.1.0 +0 -9
  222. data/doc/release-notes/RELEASE-2.1.1 +0 -5
  223. data/doc/release-notes/RELEASE-2.1.2 +0 -6
  224. data/doc/release-notes/RELEASE-2.1.3 +0 -5
  225. data/doc/release-notes/RELEASE-2.2.0 +0 -14
  226. data/doc/release-notes/RELEASE-2.2.1 +0 -4
  227. data/doc/release-notes/RELEASE-2.3.0 +0 -6
  228. data/doc/release-notes/RELEASE-2.4.0 +0 -70
  229. data/doc/release-notes/RELEASE-2.4.1 +0 -8
  230. data/doc/release-notes/RELEASE-2.4.2 +0 -4
  231. data/doc/release-notes/RELEASE-2.4.3 +0 -78
  232. data/doc/release-notes/RELEASE-2.4.4 +0 -38
  233. data/doc/release-notes/RELEASE-2.4.5 +0 -37
  234. data/doc/release-notes/RELEASE-2.5.0 +0 -83
  235. data/lib/core/facets/kernel/instance.rb +0 -19
  236. data/lib/lore/facets/basicobject.rb +0 -14
  237. data/lib/lore/facets/enumerator.rb +0 -67
  238. data/lib/lore/facets/logger.rb +0 -291
  239. data/lib/more/facets/1stclassmethod.rb +0 -140
  240. data/lib/more/facets/advisable.rb +0 -162
  241. data/lib/more/facets/association.rb +0 -210
  242. data/lib/more/facets/attr.rb +0 -209
  243. data/lib/more/facets/basex.rb +0 -37
  244. data/lib/more/facets/bbcode.rb +0 -397
  245. data/lib/more/facets/bicrypt.rb +0 -265
  246. data/lib/more/facets/binreadable.rb +0 -221
  247. data/lib/more/facets/censor.rb +0 -97
  248. data/lib/more/facets/classmethods.rb +0 -199
  249. data/lib/more/facets/consoleutils.rb +0 -99
  250. data/lib/more/facets/crypt.rb +0 -166
  251. data/lib/more/facets/dependency.rb +0 -151
  252. data/lib/more/facets/downloader.rb +0 -281
  253. data/lib/more/facets/duplicable.rb +0 -43
  254. data/lib/more/facets/elementor.rb +0 -133
  255. data/lib/more/facets/filter.rb +0 -121
  256. data/lib/more/facets/heap.rb +0 -22
  257. data/lib/more/facets/infinity.rb +0 -193
  258. data/lib/more/facets/ini.rb +0 -264
  259. data/lib/more/facets/instantise.rb +0 -1
  260. data/lib/more/facets/instantize.rb +0 -95
  261. data/lib/more/facets/interval.rb +0 -282
  262. data/lib/more/facets/iteration.rb +0 -65
  263. data/lib/more/facets/linkedlist.rb +0 -222
  264. data/lib/more/facets/lrucache.rb +0 -157
  265. data/lib/more/facets/matcher.rb +0 -140
  266. data/lib/more/facets/memoizer.rb +0 -74
  267. data/lib/more/facets/minitar.rb +0 -1063
  268. data/lib/more/facets/nackclass.rb +0 -41
  269. data/lib/more/facets/net/smtp_tls.rb +0 -131
  270. data/lib/more/facets/nilstatus.rb +0 -48
  271. data/lib/more/facets/overload.rb +0 -94
  272. data/lib/more/facets/paramix.rb +0 -202
  273. data/lib/more/facets/pool.rb +0 -91
  274. data/lib/more/facets/pqueue.rb +0 -449
  275. data/lib/more/facets/pry.rb +0 -32
  276. data/lib/more/facets/reflection.rb +0 -145
  277. data/lib/more/facets/semaphore.rb +0 -92
  278. data/lib/more/facets/settings.rb +0 -248
  279. data/lib/more/facets/snapshot.rb +0 -209
  280. data/lib/more/facets/sparse_array.rb +0 -809
  281. data/lib/more/facets/string/mask.rb +0 -278
  282. data/lib/more/facets/string/obfuscate.rb +0 -65
  283. data/lib/more/facets/string/stylize.rb +0 -169
  284. data/lib/more/facets/string/words.rb +0 -167
  285. data/lib/more/facets/syncarray.rb +0 -114
  286. data/lib/more/facets/synchash.rb +0 -157
  287. data/lib/more/facets/typecast.rb +0 -261
  288. data/lib/more/facets/uninheritable.rb +0 -50
  289. data/lib/more/facets/xmlhash.rb +0 -112
  290. data/lib/more/facets/xoxo.rb +0 -259
  291. data/lib/more/facets/ziputils.rb +0 -490
  292. data/task/conflicts +0 -63
  293. data/task/coverage.rake +0 -37
  294. data/task/methods +0 -49
  295. data/task/rdoc.rake +0 -17
  296. data/task/setup.rake +0 -38
  297. data/task/test.rake +0 -145
  298. data/test/more/test_advisable.rb +0 -71
  299. data/test/more/test_association.rb +0 -38
  300. data/test/more/test_bbcode.rb +0 -21
  301. data/test/more/test_binreadable.rb +0 -50
  302. data/test/more/test_buildable.rb +0 -73
  303. data/test/more/test_classmethods.rb +0 -56
  304. data/test/more/test_crypt.rb +0 -32
  305. data/test/more/test_dependency.rb +0 -69
  306. data/test/more/test_elementwise.rb +0 -25
  307. data/test/more/test_infinity.rb +0 -40
  308. data/test/more/test_interval.rb +0 -151
  309. data/test/more/test_linkedlist.rb +0 -41
  310. data/test/more/test_lrucache.rb +0 -14
  311. data/test/more/test_overload.rb +0 -160
  312. data/test/more/test_paramix.rb +0 -170
  313. data/test/more/test_prototype.rb +0 -35
  314. data/test/more/test_snapshot.rb +0 -21
  315. data/test/more/test_sparsearray.rb +0 -279
  316. data/test/more/test_syncarray.rb +0 -15
  317. data/test/more/test_synchash.rb +0 -16
  318. data/test/more/test_typecast.rb +0 -54
  319. data/test/more/test_uninheritable.rb +0 -31
  320. data/test/more/test_xoxo.rb +0 -274
  321. data/test/test_facets.rb +0 -9
@@ -1,111 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
- <html>
6
- <head>
7
- <title>Module: Shellwords</title>
8
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
10
-
11
- <script language="JavaScript" type="text/javascript">
12
- // <![CDATA[
13
-
14
- function toggleSource( id )
15
- {
16
- var elem
17
- var link
18
-
19
- if( document.getElementById )
20
- {
21
- elem = document.getElementById( id )
22
- link = document.getElementById( "l_" + id )
23
- }
24
- else if ( document.all )
25
- {
26
- elem = eval( "document.all." + id )
27
- link = eval( "document.all.l_" + id )
28
- }
29
- else
30
- return false;
31
-
32
- if( elem.style.display == "block" )
33
- {
34
- elem.style.display = "none"
35
- link.innerHTML = "+"
36
- }
37
- else
38
- {
39
- elem.style.display = "block"
40
- link.innerHTML = "-"
41
- }
42
- }
43
-
44
- function openCode( url )
45
- {
46
- window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
47
- }
48
- // ]]>
49
- </script>
50
- </head>
51
-
52
- <body>
53
- <table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
54
- <td class="file-title"><span class="file-title-prefix">Module</span><br />Shellwords</td>
55
- <td align="right">
56
- <table cellspacing="0" cellpadding="2">
57
- <tr valign="top">
58
- <td>In:</td>
59
- <td>
60
- <a href="../files/lib/lore/facets/shellwords_rb.html">lib/lore/facets/shellwords.rb</a>
61
- </td>
62
- </tr>
63
- </table>
64
- </td>
65
- </tr>
66
- </table>
67
- <!-- banner header -->
68
-
69
- <div id="bodyContent">
70
- <div id="content">
71
-
72
-
73
-
74
-
75
- <div class="sectiontitle">Methods</div>
76
- <span style="padding-right: 5px;"><a href="#M000124">escape</a></span>
77
-
78
-
79
-
80
-
81
-
82
-
83
- <div class="sectiontitle">Public Instance methods</div>
84
- <div class="method">
85
- <div class="title">
86
- <a name="M000124"></a><b>escape</b>(cmdline)
87
- </div>
88
- <div class="description">
89
- <p>
90
- Escape special characters used in most unix shells to use it, eg. with
91
- system().
92
- </p>
93
- </div>
94
- <div class="sourcecode">
95
- <p class="source-link">[ <a href="javascript:toggleSource('M000124_source')" id="l_M000124_source">+</a> ]</p>
96
- <div id="M000124_source" class="dyn-source">
97
- <pre>
98
- <span class="ruby-comment cmt"># File lib/lore/facets/shellwords.rb, line 31</span>
99
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">escape</span>(<span class="ruby-identifier">cmdline</span>)
100
- <span class="ruby-identifier">cmdline</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([\\\t\| &amp;`&lt;&gt;)('&quot;])/</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-value str">'\\'</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span> }
101
- <span class="ruby-keyword kw">end</span>
102
- </pre>
103
- </div>
104
- </div>
105
- </div>
106
- </div>
107
-
108
- </div>
109
-
110
- </body>
111
- </html>
@@ -1,140 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
- <html>
6
- <head>
7
- <title>Class: String</title>
8
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
10
-
11
- <script language="JavaScript" type="text/javascript">
12
- // <![CDATA[
13
-
14
- function toggleSource( id )
15
- {
16
- var elem
17
- var link
18
-
19
- if( document.getElementById )
20
- {
21
- elem = document.getElementById( id )
22
- link = document.getElementById( "l_" + id )
23
- }
24
- else if ( document.all )
25
- {
26
- elem = eval( "document.all." + id )
27
- link = eval( "document.all.l_" + id )
28
- }
29
- else
30
- return false;
31
-
32
- if( elem.style.display == "block" )
33
- {
34
- elem.style.display = "none"
35
- link.innerHTML = "+"
36
- }
37
- else
38
- {
39
- elem.style.display = "block"
40
- link.innerHTML = "-"
41
- }
42
- }
43
-
44
- function openCode( url )
45
- {
46
- window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
47
- }
48
- // ]]>
49
- </script>
50
- </head>
51
-
52
- <body>
53
- <table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
54
- <td class="file-title"><span class="file-title-prefix">Class</span><br />String</td>
55
- <td align="right">
56
- <table cellspacing="0" cellpadding="2">
57
- <tr valign="top">
58
- <td>In:</td>
59
- <td>
60
- <a href="../files/lib/lore/facets/date_rb.html">lib/lore/facets/date.rb</a>
61
- </td>
62
- </tr>
63
- <tr>
64
- <td>Parent:</td>
65
- <td>
66
- Object
67
- </td>
68
- </tr>
69
- </table>
70
- </td>
71
- </tr>
72
- </table>
73
- <!-- banner header -->
74
-
75
- <div id="bodyContent">
76
- <div id="content">
77
-
78
-
79
-
80
-
81
- <div class="sectiontitle">Methods</div>
82
- <span style="padding-right: 5px;"><a href="#M000099">to_date</a></span>
83
- <span style="padding-right: 5px;"><a href="#M000098">to_datetime</a></span>
84
-
85
-
86
-
87
-
88
-
89
-
90
- <div class="sectiontitle">Public Instance methods</div>
91
- <div class="method">
92
- <div class="title">
93
- <a name="M000099"></a><b>to_date</b>()
94
- </div>
95
- <div class="description">
96
- <p>
97
- Parse data from string.
98
- </p>
99
- </div>
100
- <div class="sourcecode">
101
- <p class="source-link">[ <a href="javascript:toggleSource('M000099_source')" id="l_M000099_source">+</a> ]</p>
102
- <div id="M000099_source" class="dyn-source">
103
- <pre>
104
- <span class="ruby-comment cmt"># File lib/lore/facets/date.rb, line 390</span>
105
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_date</span>
106
- <span class="ruby-comment cmt">#::Date::civil(*ParseDate.parsedate(self)[0..2])</span>
107
- <span class="ruby-operator">::</span><span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-operator">::</span><span class="ruby-constant">Date</span>.<span class="ruby-identifier">_parse</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-keyword kw">false</span>).<span class="ruby-identifier">values_at</span>(<span class="ruby-identifier">:year</span>, <span class="ruby-identifier">:mon</span>, <span class="ruby-identifier">:mday</span>))
108
- <span class="ruby-keyword kw">end</span>
109
- </pre>
110
- </div>
111
- </div>
112
- </div>
113
- <div class="method">
114
- <div class="title">
115
- <a name="M000098"></a><b>to_datetime</b>()
116
- </div>
117
- <div class="description">
118
- <p>
119
- Convert string to <a href="DateTime.html">DateTime</a>.
120
- </p>
121
- </div>
122
- <div class="sourcecode">
123
- <p class="source-link">[ <a href="javascript:toggleSource('M000098_source')" id="l_M000098_source">+</a> ]</p>
124
- <div id="M000098_source" class="dyn-source">
125
- <pre>
126
- <span class="ruby-comment cmt"># File lib/lore/facets/date.rb, line 384</span>
127
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_datetime</span>
128
- <span class="ruby-identifier">date</span> = <span class="ruby-operator">::</span><span class="ruby-constant">Date</span>.<span class="ruby-identifier">_parse</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-keyword kw">false</span>).<span class="ruby-identifier">values_at</span>(<span class="ruby-identifier">:year</span>, <span class="ruby-identifier">:mon</span>, <span class="ruby-identifier">:mday</span>, <span class="ruby-identifier">:hour</span>, <span class="ruby-identifier">:min</span>, <span class="ruby-identifier">:sec</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span> <span class="ruby-identifier">arg</span> <span class="ruby-operator">||</span> <span class="ruby-value">0</span> }
129
- <span class="ruby-operator">::</span><span class="ruby-constant">DateTime</span>.<span class="ruby-identifier">civil</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">date</span>)
130
- <span class="ruby-keyword kw">end</span>
131
- </pre>
132
- </div>
133
- </div>
134
- </div>
135
- </div>
136
-
137
- </div>
138
-
139
- </body>
140
- </html>
@@ -1,154 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
- <html>
6
- <head>
7
- <title>Class: Time</title>
8
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
10
-
11
- <script language="JavaScript" type="text/javascript">
12
- // <![CDATA[
13
-
14
- function toggleSource( id )
15
- {
16
- var elem
17
- var link
18
-
19
- if( document.getElementById )
20
- {
21
- elem = document.getElementById( id )
22
- link = document.getElementById( "l_" + id )
23
- }
24
- else if ( document.all )
25
- {
26
- elem = eval( "document.all." + id )
27
- link = eval( "document.all.l_" + id )
28
- }
29
- else
30
- return false;
31
-
32
- if( elem.style.display == "block" )
33
- {
34
- elem.style.display = "none"
35
- link.innerHTML = "+"
36
- }
37
- else
38
- {
39
- elem.style.display = "block"
40
- link.innerHTML = "-"
41
- }
42
- }
43
-
44
- function openCode( url )
45
- {
46
- window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
47
- }
48
- // ]]>
49
- </script>
50
- </head>
51
-
52
- <body>
53
- <table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
54
- <td class="file-title"><span class="file-title-prefix">Class</span><br />Time</td>
55
- <td align="right">
56
- <table cellspacing="0" cellpadding="2">
57
- <tr valign="top">
58
- <td>In:</td>
59
- <td>
60
- <a href="../files/lib/lore/facets/date_rb.html">lib/lore/facets/date.rb</a>
61
- </td>
62
- </tr>
63
- <tr>
64
- <td>Parent:</td>
65
- <td>
66
- Object
67
- </td>
68
- </tr>
69
- </table>
70
- </td>
71
- </tr>
72
- </table>
73
- <!-- banner header -->
74
-
75
- <div id="bodyContent">
76
- <div id="content">
77
-
78
-
79
-
80
-
81
- <div class="sectiontitle">Methods</div>
82
- <span style="padding-right: 5px;"><a href="#M000002">to_date</a></span>
83
- <span style="padding-right: 5px;"><a href="#M000003">to_datetime</a></span>
84
-
85
-
86
-
87
-
88
-
89
-
90
- <div class="sectiontitle">Public Instance methods</div>
91
- <div class="method">
92
- <div class="title">
93
- <a name="M000002"></a><b>to_date</b>()
94
- </div>
95
- <div class="description">
96
- <p>
97
- Converts a <a href="Time.html">Time</a> object to a <a
98
- href="Date.html">Date</a>, dropping hour, minute, and second precision.
99
- </p>
100
- <pre>
101
- my_time = Time.now # =&gt; Mon Nov 12 22:59:51 -0500 2007
102
- my_time.to_date # =&gt; Mon, 12 Nov 2007
103
-
104
- your_time = Time.parse(&quot;1/13/2009 1:13:03 P.M.&quot;) # =&gt; Tue Jan 13 13:13:03 -0500 2009
105
- your_time.to_date # =&gt; Tue, 13 Jan 2009
106
- </pre>
107
- </div>
108
- <div class="sourcecode">
109
- <p class="source-link">[ <a href="javascript:toggleSource('M000002_source')" id="l_M000002_source">+</a> ]</p>
110
- <div id="M000002_source" class="dyn-source">
111
- <pre>
112
- <span class="ruby-comment cmt"># File lib/lore/facets/date.rb, line 353</span>
113
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_date</span>
114
- <span class="ruby-operator">::</span><span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>)
115
- <span class="ruby-keyword kw">end</span>
116
- </pre>
117
- </div>
118
- </div>
119
- </div>
120
- <div class="method">
121
- <div class="title">
122
- <a name="M000003"></a><b>to_datetime</b>()
123
- </div>
124
- <div class="description">
125
- <p>
126
- Converts a <a href="Time.html">Time</a> instance to a Ruby <a
127
- href="DateTime.html">DateTime</a> instance, preserving UTC offset.
128
- </p>
129
- <pre>
130
- my_time = Time.now # =&gt; Mon Nov 12 23:04:21 -0500 2007
131
- my_time.to_datetime # =&gt; Mon, 12 Nov 2007 23:04:21 -0500
132
-
133
- your_time = Time.parse(&quot;1/13/2009 1:13:03 P.M.&quot;) # =&gt; Tue Jan 13 13:13:03 -0500 2009
134
- your_time.to_datetime # =&gt; Tue, 13 Jan 2009 13:13:03 -0500
135
- </pre>
136
- </div>
137
- <div class="sourcecode">
138
- <p class="source-link">[ <a href="javascript:toggleSource('M000003_source')" id="l_M000003_source">+</a> ]</p>
139
- <div id="M000003_source" class="dyn-source">
140
- <pre>
141
- <span class="ruby-comment cmt"># File lib/lore/facets/date.rb, line 374</span>
142
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_datetime</span>
143
- <span class="ruby-operator">::</span><span class="ruby-constant">DateTime</span>.<span class="ruby-identifier">civil</span>(<span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>, <span class="ruby-identifier">day</span>, <span class="ruby-identifier">hour</span>, <span class="ruby-identifier">min</span>, <span class="ruby-identifier">sec</span>, <span class="ruby-constant">Rational</span>(<span class="ruby-identifier">utc_offset</span>, <span class="ruby-value">86400</span>))
144
- <span class="ruby-keyword kw">end</span>
145
- </pre>
146
- </div>
147
- </div>
148
- </div>
149
- </div>
150
-
151
- </div>
152
-
153
- </body>
154
- </html>
@@ -1,454 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
- <html>
6
- <head>
7
- <title>Module: URI</title>
8
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
10
-
11
- <script language="JavaScript" type="text/javascript">
12
- // <![CDATA[
13
-
14
- function toggleSource( id )
15
- {
16
- var elem
17
- var link
18
-
19
- if( document.getElementById )
20
- {
21
- elem = document.getElementById( id )
22
- link = document.getElementById( "l_" + id )
23
- }
24
- else if ( document.all )
25
- {
26
- elem = eval( "document.all." + id )
27
- link = eval( "document.all.l_" + id )
28
- }
29
- else
30
- return false;
31
-
32
- if( elem.style.display == "block" )
33
- {
34
- elem.style.display = "none"
35
- link.innerHTML = "+"
36
- }
37
- else
38
- {
39
- elem.style.display = "block"
40
- link.innerHTML = "-"
41
- }
42
- }
43
-
44
- function openCode( url )
45
- {
46
- window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
47
- }
48
- // ]]>
49
- </script>
50
- </head>
51
-
52
- <body>
53
- <table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
54
- <td class="file-title"><span class="file-title-prefix">Module</span><br />URI</td>
55
- <td align="right">
56
- <table cellspacing="0" cellpadding="2">
57
- <tr valign="top">
58
- <td>In:</td>
59
- <td>
60
- <a href="../files/lib/lore/facets/uri_rb.html">lib/lore/facets/uri.rb</a>
61
- </td>
62
- </tr>
63
- </table>
64
- </td>
65
- </tr>
66
- </table>
67
- <!-- banner header -->
68
-
69
- <div id="bodyContent">
70
- <div id="content">
71
-
72
-
73
-
74
-
75
- <div class="sectiontitle">Methods</div>
76
- <span style="padding-right: 5px;"><a href="#M000105">cgi_escape</a></span>
77
- <span style="padding-right: 5px;"><a href="#M000107">cgi_parse</a></span>
78
- <span style="padding-right: 5px;"><a href="#M000106">cgi_unescape</a></span>
79
- <span style="padding-right: 5px;"><a href="#M000109">chomp_query_string</a></span>
80
- <span style="padding-right: 5px;"><a href="#M000100">decode</a></span>
81
- <span style="padding-right: 5px;"><a href="#M000108">get_query_string</a></span>
82
- <span style="padding-right: 5px;"><a href="#M000103">hash_to_query</a></span>
83
- <span style="padding-right: 5px;"><a href="#M000104">hash_to_query_string</a></span>
84
- <span style="padding-right: 5px;"><a href="#M000102">query_string_to_hash</a></span>
85
- <span style="padding-right: 5px;"><a href="#M000101">query_to_hash</a></span>
86
- <span style="padding-right: 5px;"><a href="#M000110">update_query_string</a></span>
87
- <span style="padding-right: 5px;"><a href="#M000111">update_request_uri</a></span>
88
-
89
-
90
-
91
- <div class="sectiontitle">Classes and Modules</div>
92
- Module <a href="URI/Hash.html" class="link">URI::Hash</a><br />
93
- Module <a href="URI/Kernel.html" class="link">URI::Kernel</a><br />
94
-
95
-
96
-
97
-
98
- <div class="sectiontitle">Public Instance methods</div>
99
- <div class="method">
100
- <div class="title">
101
- <a name="M000105"></a><b>cgi_escape</b>(string)
102
- </div>
103
- <div class="description">
104
- <p>
105
- TODO: How does this compare to URI.escape?
106
- </p>
107
- </div>
108
- <div class="sourcecode">
109
- <p class="source-link">[ <a href="javascript:toggleSource('M000105_source')" id="l_M000105_source">+</a> ]</p>
110
- <div id="M000105_source" class="dyn-source">
111
- <pre>
112
- <span class="ruby-comment cmt"># File lib/lore/facets/uri.rb, line 109</span>
113
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cgi_escape</span>(<span class="ruby-identifier">string</span>)
114
- <span class="ruby-identifier">string</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/([^ a-zA-Z0-9_.-]+)/n</span>) <span class="ruby-keyword kw">do</span>
115
- <span class="ruby-value str">'%'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">'H2'</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">size</span>).<span class="ruby-identifier">join</span>(<span class="ruby-value str">'%'</span>).<span class="ruby-identifier">upcase</span>
116
- <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">tr</span>(<span class="ruby-value str">' '</span>, <span class="ruby-value str">'+'</span>)
117
- <span class="ruby-keyword kw">end</span>
118
- </pre>
119
- </div>
120
- </div>
121
- </div>
122
- <div class="method">
123
- <div class="title">
124
- <a name="M000107"></a><b>cgi_parse</b>(query)
125
- </div>
126
- <div class="sourcecode">
127
- <p class="source-link">[ <a href="javascript:toggleSource('M000107_source')" id="l_M000107_source">+</a> ]</p>
128
- <div id="M000107_source" class="dyn-source">
129
- <pre>
130
- <span class="ruby-comment cmt"># File lib/lore/facets/uri.rb, line 125</span>
131
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cgi_parse</span>(<span class="ruby-identifier">query</span>)
132
- <span class="ruby-identifier">params</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>([].<span class="ruby-identifier">freeze</span>)
133
-
134
- <span class="ruby-identifier">query</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/[&amp;;]/n</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pairs</span><span class="ruby-operator">|</span>
135
- <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span> = <span class="ruby-identifier">pairs</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'='</span>,<span class="ruby-value">2</span>).<span class="ruby-identifier">collect</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">cgi_unescape</span>(<span class="ruby-identifier">v</span>) }
136
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">params</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">key</span>)
137
- <span class="ruby-identifier">params</span>[<span class="ruby-identifier">key</span>].<span class="ruby-identifier">push</span>(<span class="ruby-identifier">value</span>)
138
- <span class="ruby-keyword kw">else</span>
139
- <span class="ruby-identifier">params</span>[<span class="ruby-identifier">key</span>] = [<span class="ruby-identifier">value</span>]
140
- <span class="ruby-keyword kw">end</span>
141
- <span class="ruby-keyword kw">end</span>
142
-
143
- <span class="ruby-identifier">params</span>
144
- <span class="ruby-keyword kw">end</span>
145
- </pre>
146
- </div>
147
- </div>
148
- </div>
149
- <div class="method">
150
- <div class="title">
151
- <a name="M000106"></a><b>cgi_unescape</b>(string)
152
- </div>
153
- <div class="sourcecode">
154
- <p class="source-link">[ <a href="javascript:toggleSource('M000106_source')" id="l_M000106_source">+</a> ]</p>
155
- <div id="M000106_source" class="dyn-source">
156
- <pre>
157
- <span class="ruby-comment cmt"># File lib/lore/facets/uri.rb, line 117</span>
158
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cgi_unescape</span>(<span class="ruby-identifier">string</span>)
159
- <span class="ruby-identifier">string</span>.<span class="ruby-identifier">tr</span>(<span class="ruby-value str">'+'</span>, <span class="ruby-value str">' '</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/((?:%[0-9a-fA-F]{2})+)/n</span>) <span class="ruby-keyword kw">do</span>
160
- [<span class="ruby-identifier">$1</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'%'</span>)].<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'H*'</span>)
161
- <span class="ruby-keyword kw">end</span>
162
- <span class="ruby-keyword kw">end</span>
163
- </pre>
164
- </div>
165
- </div>
166
- </div>
167
- <div class="method">
168
- <div class="title">
169
- <a name="M000109"></a><b>chomp_query_string</b>(uri)
170
- </div>
171
- <div class="description">
172
- <p>
173
- Removes the query string from a uri
174
- </p>
175
- <p>
176
- Input: the uri
177
- </p>
178
- <p>
179
- Output: the chomped uri.
180
- </p>
181
- </div>
182
- <div class="sourcecode">
183
- <p class="source-link">[ <a href="javascript:toggleSource('M000109_source')" id="l_M000109_source">+</a> ]</p>
184
- <div id="M000109_source" class="dyn-source">
185
- <pre>
186
- <span class="ruby-comment cmt"># File lib/lore/facets/uri.rb, line 169</span>
187
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">chomp_query_string</span>(<span class="ruby-identifier">uri</span>)
188
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">uri</span>
189
- <span class="ruby-identifier">query_string</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">get_query_string</span>(<span class="ruby-identifier">uri</span>)
190
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-node">&quot;?#{query_string}&quot;</span>)
191
- <span class="ruby-keyword kw">end</span>
192
- </pre>
193
- </div>
194
- </div>
195
- </div>
196
- <div class="method">
197
- <div class="title">
198
- <a name="M000100"></a><b>decode</b>(uri)
199
- </div>
200
- <div class="description">
201
- <p>
202
- Decode the uri components.
203
- </p>
204
- </div>
205
- <div class="sourcecode">
206
- <p class="source-link">[ <a href="javascript:toggleSource('M000100_source')" id="l_M000100_source">+</a> ]</p>
207
- <div id="M000100_source" class="dyn-source">
208
- <pre>
209
- <span class="ruby-comment cmt"># File lib/lore/facets/uri.rb, line 33</span>
210
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">decode</span>(<span class="ruby-identifier">uri</span>)
211
- <span class="ruby-comment cmt"># gmosx: hmm is this needed?</span>
212
- <span class="ruby-comment cmt"># guard against invalid filenames for example pictures with</span>
213
- <span class="ruby-comment cmt"># spaces uploaded by users</span>
214
- <span class="ruby-identifier">escaped_uri</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/ /</span>, <span class="ruby-value str">&quot;+&quot;</span>)
215
-
216
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">md</span> = <span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">REGEXP</span><span class="ruby-operator">::</span><span class="ruby-constant">REL_URI</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">escaped_uri</span>)
217
-
218
- <span class="ruby-identifier">path</span> = <span class="ruby-node">&quot;#{md[5]}#{md[6]}&quot;</span>
219
- <span class="ruby-identifier">type</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">extname</span>(<span class="ruby-identifier">path</span>)
220
- <span class="ruby-identifier">query_string</span> = <span class="ruby-identifier">md</span>[<span class="ruby-value">7</span>]
221
-
222
- <span class="ruby-comment cmt"># real_path = &quot;#{$root_dir}/#{path}&quot;</span>
223
-
224
- <span class="ruby-identifier">parameters</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">query_to_hash</span>(<span class="ruby-identifier">query_string</span>)
225
- <span class="ruby-identifier">path</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\+/</span>, <span class="ruby-value str">&quot; &quot;</span>)
226
-
227
- <span class="ruby-keyword kw">return</span> [<span class="ruby-identifier">path</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">parameters</span>, <span class="ruby-identifier">query_string</span>]
228
-
229
- <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># match</span>
230
-
231
- <span class="ruby-comment cmt"># this is usefull for uncovering bugs!</span>
232
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;the parameter '#{uri}' is not a valid uri&quot;</span>)
233
- <span class="ruby-keyword kw">end</span>
234
- </pre>
235
- </div>
236
- </div>
237
- </div>
238
- <div class="method">
239
- <div class="title">
240
- <a name="M000108"></a><b>get_query_string</b>(uri)
241
- </div>
242
- <div class="description">
243
- <p>
244
- This method returns the query string of a uri
245
- </p>
246
- <p>
247
- Input: the uri
248
- </p>
249
- <p>
250
- Output: the query string. returns nil if no query string
251
- </p>
252
- </div>
253
- <div class="sourcecode">
254
- <p class="source-link">[ <a href="javascript:toggleSource('M000108_source')" id="l_M000108_source">+</a> ]</p>
255
- <div id="M000108_source" class="dyn-source">
256
- <pre>
257
- <span class="ruby-comment cmt"># File lib/lore/facets/uri.rb, line 149</span>
258
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_query_string</span>(<span class="ruby-identifier">uri</span>)
259
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">uri</span>
260
- <span class="ruby-comment cmt"># gmosx: INVESTIGATE ruby's URI seems to differently handle</span>
261
- <span class="ruby-comment cmt"># abs and rel uris.</span>
262
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">md</span> = <span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">REGEXP</span><span class="ruby-operator">::</span><span class="ruby-constant">ABS_URI</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">uri</span>)
263
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">md</span>[<span class="ruby-value">8</span>]
264
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">md</span> = <span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">REGEXP</span><span class="ruby-operator">::</span><span class="ruby-constant">REL_URI</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">uri</span>)
265
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">md</span>[<span class="ruby-value">7</span>]
266
- <span class="ruby-keyword kw">end</span>
267
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
268
- <span class="ruby-keyword kw">end</span>
269
- </pre>
270
- </div>
271
- </div>
272
- </div>
273
- <div class="method">
274
- <div class="title">
275
- <a name="M000103"></a><b>hash_to_query</b>(parameters)
276
- </div>
277
- <div class="description">
278
- <p>
279
- Given a hash with parameter/value pairs construct a standard query string.
280
- </p>
281
- <pre>
282
- URI.hash_to_query(:a =&gt; 1, :b =&gt; 2)
283
- =&gt; &quot;a=1&amp;b=2&quot;
284
- </pre>
285
- </div>
286
- <div class="aka">
287
- This method is also aliased as
288
- <a href="URI.html#M000104">hash_to_query_string</a>
289
- </div>
290
- <div class="sourcecode">
291
- <p class="source-link">[ <a href="javascript:toggleSource('M000103_source')" id="l_M000103_source">+</a> ]</p>
292
- <div id="M000103_source" class="dyn-source">
293
- <pre>
294
- <span class="ruby-comment cmt"># File lib/lore/facets/uri.rb, line 94</span>
295
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hash_to_query</span>(<span class="ruby-identifier">parameters</span>)
296
- <span class="ruby-keyword kw">return</span> <span class="ruby-value str">''</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">parameters</span>
297
- <span class="ruby-identifier">pairs</span> = []
298
- <span class="ruby-identifier">parameters</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">param</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
299
- <span class="ruby-identifier">pairs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{param}=#{cgi_escape(value.to_s)}&quot;</span>
300
- <span class="ruby-keyword kw">end</span>
301
- <span class="ruby-comment cmt">#return pairs.join('&amp;')</span>
302
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">pairs</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;;&quot;</span>)
303
- <span class="ruby-keyword kw">end</span>
304
- </pre>
305
- </div>
306
- </div>
307
- </div>
308
- <div class="method">
309
- <div class="title">
310
- <a name="M000104"></a><b>hash_to_query_string</b>(parameters)
311
- </div>
312
- <div class="description">
313
- <p>
314
- Alias for <a href="URI.html#M000103">hash_to_query</a>
315
- </p>
316
- </div>
317
- </div>
318
- <div class="method">
319
- <div class="title">
320
- <a name="M000102"></a><b>query_string_to_hash</b>(query_string)
321
- </div>
322
- <div class="description">
323
- <p>
324
- Alias for <a href="URI.html#M000101">query_to_hash</a>
325
- </p>
326
- </div>
327
- </div>
328
- <div class="method">
329
- <div class="title">
330
- <a name="M000101"></a><b>query_to_hash</b>(query_string)
331
- </div>
332
- <div class="description">
333
- <p>
334
- Extend the basic query string parser provided by the cgi module. converts
335
- single valued params (the most common case) to objects instead of arrays
336
- </p>
337
- <p>
338
- Input: the query string
339
- </p>
340
- <p>
341
- Output: hash of parameters, contains arrays for multivalued parameters
342
- (multiselect, checkboxes , etc) If no query string is provided (nil or
343
- &quot;&quot;) returns an empty hash.
344
- </p>
345
- </div>
346
- <div class="aka">
347
- This method is also aliased as
348
- <a href="URI.html#M000102">query_string_to_hash</a>
349
- </div>
350
- <div class="sourcecode">
351
- <p class="source-link">[ <a href="javascript:toggleSource('M000101_source')" id="l_M000101_source">+</a> ]</p>
352
- <div id="M000101_source" class="dyn-source">
353
- <pre>
354
- <span class="ruby-comment cmt"># File lib/lore/facets/uri.rb, line 70</span>
355
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_to_hash</span>(<span class="ruby-identifier">query_string</span>)
356
- <span class="ruby-keyword kw">return</span> {} <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">query_string</span>
357
-
358
- <span class="ruby-identifier">query_parameters</span> = <span class="ruby-identifier">cgi_parse</span>(<span class="ruby-identifier">query_string</span>)
359
-
360
- <span class="ruby-identifier">query_parameters</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
361
- <span class="ruby-comment cmt"># replace the array with an object</span>
362
- <span class="ruby-identifier">query_parameters</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">val</span>[<span class="ruby-value">0</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-value">1</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">length</span>
363
- }
364
-
365
- <span class="ruby-comment cmt"># set default value to nil! cgi sets this to []</span>
366
- <span class="ruby-identifier">query_parameters</span>.<span class="ruby-identifier">default</span> = <span class="ruby-keyword kw">nil</span>
367
-
368
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">query_parameters</span>
369
- <span class="ruby-keyword kw">end</span>
370
- </pre>
371
- </div>
372
- </div>
373
- </div>
374
- <div class="method">
375
- <div class="title">
376
- <a name="M000110"></a><b>update_query_string</b>(uri, parameters)
377
- </div>
378
- <div class="description">
379
- <p>
380
- Get a uri and a hash of parameters. Inject the hash values as parameters in
381
- the query sting path. Returns the full uri.
382
- </p>
383
- <p>
384
- Input: the uri to filter (<a href="String.html">String</a>) hash of
385
- parameters to update
386
- </p>
387
- <p>
388
- Output: the full updated query string
389
- </p>
390
- <p>
391
- TODO: optimize
392
- </p>
393
- </div>
394
- <div class="sourcecode">
395
- <p class="source-link">[ <a href="javascript:toggleSource('M000110_source')" id="l_M000110_source">+</a> ]</p>
396
- <div id="M000110_source" class="dyn-source">
397
- <pre>
398
- <span class="ruby-comment cmt"># File lib/lore/facets/uri.rb, line 188</span>
399
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_query_string</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">parameters</span>)
400
- <span class="ruby-identifier">query_string</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">get_query_string</span>(<span class="ruby-identifier">uri</span>)
401
- <span class="ruby-identifier">rest</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-node">/\?#{query_string}/</span>, <span class="ruby-value str">&quot;&quot;</span>)
402
-
403
- <span class="ruby-identifier">hash</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query_string_to_hash</span>(<span class="ruby-identifier">query_string</span>)
404
- <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">parameters</span>)
405
- <span class="ruby-identifier">query_string</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">hash_to_query_string</span>(<span class="ruby-identifier">hash</span>)
406
-
407
- <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">query_string</span>.<span class="ruby-identifier">blank?</span>
408
- <span class="ruby-keyword kw">return</span> <span class="ruby-node">&quot;#{rest}?#{query_string}&quot;</span>
409
- <span class="ruby-keyword kw">else</span>
410
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">rest</span>
411
- <span class="ruby-keyword kw">end</span>
412
- <span class="ruby-keyword kw">end</span>
413
- </pre>
414
- </div>
415
- </div>
416
- </div>
417
- <div class="method">
418
- <div class="title">
419
- <a name="M000111"></a><b>update_request_uri</b>(request, parameters)
420
- </div>
421
- <div class="description">
422
- <p>
423
- TODO: find a better name. Gets the request uri, injects extra parameters in
424
- the query string and returns a new uri. The request object is not modified.
425
- There is always a qs string so an extra test is skipped.
426
- </p>
427
- </div>
428
- <div class="sourcecode">
429
- <p class="source-link">[ <a href="javascript:toggleSource('M000111_source')" id="l_M000111_source">+</a> ]</p>
430
- <div id="M000111_source" class="dyn-source">
431
- <pre>
432
- <span class="ruby-comment cmt"># File lib/lore/facets/uri.rb, line 208</span>
433
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_request_uri</span>(<span class="ruby-identifier">request</span>, <span class="ruby-identifier">parameters</span>)
434
- <span class="ruby-identifier">hash</span> = <span class="ruby-identifier">request</span>.<span class="ruby-identifier">parameters</span>.<span class="ruby-identifier">dup</span>()
435
- <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">parameters</span>)
436
-
437
- <span class="ruby-comment cmt"># use this in hash_to_querystring.</span>
438
- <span class="ruby-identifier">query_string</span> = <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
439
- <span class="ruby-node">&quot;#{k}=#{v}&quot;</span>
440
- }.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;;&quot;</span>)
441
-
442
- <span class="ruby-comment cmt">#return &quot;#{request.translated_uri}?#{query_string}&quot;</span>
443
- <span class="ruby-keyword kw">return</span> <span class="ruby-node">&quot;#{request.path}?#{query_string}&quot;</span>
444
- <span class="ruby-keyword kw">end</span>
445
- </pre>
446
- </div>
447
- </div>
448
- </div>
449
- </div>
450
-
451
- </div>
452
-
453
- </body>
454
- </html>