shoesgem 0.1424.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 (808) hide show
  1. data/LICENSE +30 -0
  2. data/README.rdoc +31 -0
  3. data/lib/shoes.rb +4 -0
  4. data/shoes/CHANGELOG.txt +21 -0
  5. data/shoes/COPYING.txt +30 -0
  6. data/shoes/README.txt +117 -0
  7. data/shoes/VERSION.txt +1 -0
  8. data/shoes/fonts/Coolvetica.ttf +0 -0
  9. data/shoes/fonts/Lacuna.ttf +0 -0
  10. data/shoes/freetype6.dll +0 -0
  11. data/shoes/lib/shoes/cache.rb +54 -0
  12. data/shoes/lib/shoes/data.rb +39 -0
  13. data/shoes/lib/shoes/help.rb +421 -0
  14. data/shoes/lib/shoes/image.rb +25 -0
  15. data/shoes/lib/shoes/inspect.rb +128 -0
  16. data/shoes/lib/shoes/log.rb +48 -0
  17. data/shoes/lib/shoes/minitar.rb +986 -0
  18. data/shoes/lib/shoes/override.rb +38 -0
  19. data/shoes/lib/shoes/pack.rb +503 -0
  20. data/shoes/lib/shoes/search.rb +46 -0
  21. data/shoes/lib/shoes/setup.rb +329 -0
  22. data/shoes/lib/shoes/shy.rb +131 -0
  23. data/shoes/lib/shoes/shybuilder.rb +44 -0
  24. data/shoes/lib/shoes.rb +522 -0
  25. data/shoes/libcairo-2.dll +0 -0
  26. data/shoes/libeay32.dll +0 -0
  27. data/shoes/libexpat-1.dll +0 -0
  28. data/shoes/libfontconfig-1.dll +0 -0
  29. data/shoes/libgio-2.0-0.dll +0 -0
  30. data/shoes/libglib-2.0-0.dll +0 -0
  31. data/shoes/libgmodule-2.0-0.dll +0 -0
  32. data/shoes/libgobject-2.0-0.dll +0 -0
  33. data/shoes/libgthread-2.0-0.dll +0 -0
  34. data/shoes/libiconv2.dll +0 -0
  35. data/shoes/libjpeg-8.dll +0 -0
  36. data/shoes/libpango-1.0-0.dll +0 -0
  37. data/shoes/libpangocairo-1.0-0.dll +0 -0
  38. data/shoes/libpangoft2-1.0-0.dll +0 -0
  39. data/shoes/libpangowin32-1.0-0.dll +0 -0
  40. data/shoes/libpng14-14.dll +0 -0
  41. data/shoes/libportaudio-2.dll +0 -0
  42. data/shoes/libshoes.dll +0 -0
  43. data/shoes/libssl32.dll +0 -0
  44. data/shoes/libungif4.dll +0 -0
  45. data/shoes/msvcrt-ruby191.dll +0 -0
  46. data/shoes/readline5.dll +0 -0
  47. data/shoes/ruby/gems/1.9.1/gems/hpricot-0.8.1/lib/fast_xs.so +0 -0
  48. data/shoes/ruby/gems/1.9.1/gems/hpricot-0.8.1/lib/hpricot/blankslate.rb +63 -0
  49. data/shoes/ruby/gems/1.9.1/gems/hpricot-0.8.1/lib/hpricot/builder.rb +216 -0
  50. data/shoes/ruby/gems/1.9.1/gems/hpricot-0.8.1/lib/hpricot/elements.rb +510 -0
  51. data/shoes/ruby/gems/1.9.1/gems/hpricot-0.8.1/lib/hpricot/htmlinfo.rb +691 -0
  52. data/shoes/ruby/gems/1.9.1/gems/hpricot-0.8.1/lib/hpricot/inspect.rb +103 -0
  53. data/shoes/ruby/gems/1.9.1/gems/hpricot-0.8.1/lib/hpricot/modules.rb +40 -0
  54. data/shoes/ruby/gems/1.9.1/gems/hpricot-0.8.1/lib/hpricot/parse.rb +38 -0
  55. data/shoes/ruby/gems/1.9.1/gems/hpricot-0.8.1/lib/hpricot/tag.rb +202 -0
  56. data/shoes/ruby/gems/1.9.1/gems/hpricot-0.8.1/lib/hpricot/tags.rb +164 -0
  57. data/shoes/ruby/gems/1.9.1/gems/hpricot-0.8.1/lib/hpricot/traverse.rb +838 -0
  58. data/shoes/ruby/gems/1.9.1/gems/hpricot-0.8.1/lib/hpricot/xchar.rb +94 -0
  59. data/shoes/ruby/gems/1.9.1/gems/hpricot-0.8.1/lib/hpricot.rb +26 -0
  60. data/shoes/ruby/gems/1.9.1/gems/hpricot-0.8.1/lib/hpricot_scan.so +0 -0
  61. data/shoes/ruby/gems/1.9.1/gems/json-shoes-1.1.3/lib/json/add/core.rb +135 -0
  62. data/shoes/ruby/gems/1.9.1/gems/json-shoes-1.1.3/lib/json/add/rails.rb +58 -0
  63. data/shoes/ruby/gems/1.9.1/gems/json-shoes-1.1.3/lib/json/common.rb +354 -0
  64. data/shoes/ruby/gems/1.9.1/gems/json-shoes-1.1.3/lib/json/ext/generator.so +0 -0
  65. data/shoes/ruby/gems/1.9.1/gems/json-shoes-1.1.3/lib/json/ext/parser.so +0 -0
  66. data/shoes/ruby/gems/1.9.1/gems/json-shoes-1.1.3/lib/json/ext.rb +13 -0
  67. data/shoes/ruby/gems/1.9.1/gems/json-shoes-1.1.3/lib/json/version.rb +9 -0
  68. data/shoes/ruby/gems/1.9.1/gems/json-shoes-1.1.3/lib/json.rb +8 -0
  69. data/shoes/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/constants.rb +49 -0
  70. data/shoes/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/database.rb +721 -0
  71. data/shoes/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/driver/dl/api.rb +152 -0
  72. data/shoes/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/driver/dl/driver.rb +307 -0
  73. data/shoes/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/driver/native/driver.rb +219 -0
  74. data/shoes/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/errors.rb +68 -0
  75. data/shoes/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/pragmas.rb +271 -0
  76. data/shoes/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/resultset.rb +180 -0
  77. data/shoes/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/statement.rb +231 -0
  78. data/shoes/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/translator.rb +109 -0
  79. data/shoes/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/value.rb +57 -0
  80. data/shoes/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3/version.rb +16 -0
  81. data/shoes/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3.rb +1 -0
  82. data/shoes/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5-x86-mswin32/lib/sqlite3_api.so +0 -0
  83. data/shoes/ruby/gems/1.9.1/specifications/hpricot-0.8.1.gemspec +32 -0
  84. data/shoes/ruby/gems/1.9.1/specifications/json-shoes-1.1.3.gemspec +34 -0
  85. data/shoes/ruby/gems/1.9.1/specifications/sqlite3-ruby-1.2.5-x86-mswin32.gemspec +46 -0
  86. data/shoes/ruby/lib/English.rb +155 -0
  87. data/shoes/ruby/lib/Win32API.rb +28 -0
  88. data/shoes/ruby/lib/abbrev.rb +103 -0
  89. data/shoes/ruby/lib/base64.rb +91 -0
  90. data/shoes/ruby/lib/benchmark.rb +573 -0
  91. data/shoes/ruby/lib/bigdecimal/jacobian.rb +85 -0
  92. data/shoes/ruby/lib/bigdecimal/ludcmp.rb +86 -0
  93. data/shoes/ruby/lib/bigdecimal/math.rb +237 -0
  94. data/shoes/ruby/lib/bigdecimal/newton.rb +77 -0
  95. data/shoes/ruby/lib/bigdecimal/util.rb +53 -0
  96. data/shoes/ruby/lib/cgi/cookie.rb +144 -0
  97. data/shoes/ruby/lib/cgi/core.rb +786 -0
  98. data/shoes/ruby/lib/cgi/html.rb +1021 -0
  99. data/shoes/ruby/lib/cgi/session/pstore.rb +111 -0
  100. data/shoes/ruby/lib/cgi/session.rb +537 -0
  101. data/shoes/ruby/lib/cgi/util.rb +181 -0
  102. data/shoes/ruby/lib/cgi.rb +274 -0
  103. data/shoes/ruby/lib/cmath.rb +233 -0
  104. data/shoes/ruby/lib/complex.rb +24 -0
  105. data/shoes/ruby/lib/csv.rb +2320 -0
  106. data/shoes/ruby/lib/date/format.rb +1313 -0
  107. data/shoes/ruby/lib/date.rb +1834 -0
  108. data/shoes/ruby/lib/debug.rb +907 -0
  109. data/shoes/ruby/lib/delegate.rb +311 -0
  110. data/shoes/ruby/lib/digest/hmac.rb +274 -0
  111. data/shoes/ruby/lib/digest/sha2.rb +74 -0
  112. data/shoes/ruby/lib/digest.rb +50 -0
  113. data/shoes/ruby/lib/dl/callback.rb +69 -0
  114. data/shoes/ruby/lib/dl/cparser.rb +109 -0
  115. data/shoes/ruby/lib/dl/func.rb +153 -0
  116. data/shoes/ruby/lib/dl/import.rb +215 -0
  117. data/shoes/ruby/lib/dl/pack.rb +173 -0
  118. data/shoes/ruby/lib/dl/stack.rb +146 -0
  119. data/shoes/ruby/lib/dl/struct.rb +213 -0
  120. data/shoes/ruby/lib/dl/types.rb +40 -0
  121. data/shoes/ruby/lib/dl/value.rb +112 -0
  122. data/shoes/ruby/lib/drb/acl.rb +146 -0
  123. data/shoes/ruby/lib/drb/drb.rb +1778 -0
  124. data/shoes/ruby/lib/drb/eq.rb +16 -0
  125. data/shoes/ruby/lib/drb/extserv.rb +71 -0
  126. data/shoes/ruby/lib/drb/extservm.rb +85 -0
  127. data/shoes/ruby/lib/drb/gw.rb +122 -0
  128. data/shoes/ruby/lib/drb/invokemethod.rb +34 -0
  129. data/shoes/ruby/lib/drb/observer.rb +22 -0
  130. data/shoes/ruby/lib/drb/ssl.rb +190 -0
  131. data/shoes/ruby/lib/drb/timeridconv.rb +91 -0
  132. data/shoes/ruby/lib/drb/unix.rb +108 -0
  133. data/shoes/ruby/lib/drb.rb +2 -0
  134. data/shoes/ruby/lib/e2mmap.rb +172 -0
  135. data/shoes/ruby/lib/erb.rb +902 -0
  136. data/shoes/ruby/lib/fileutils.rb +1592 -0
  137. data/shoes/ruby/lib/find.rb +81 -0
  138. data/shoes/ruby/lib/forwardable.rb +270 -0
  139. data/shoes/ruby/lib/ftsearch/analysis/analyzer.rb +16 -0
  140. data/shoes/ruby/lib/ftsearch/analysis/simple_identifier_analyzer.rb +23 -0
  141. data/shoes/ruby/lib/ftsearch/analysis/whitespace_analyzer.rb +22 -0
  142. data/shoes/ruby/lib/ftsearch/document_map_reader.rb +106 -0
  143. data/shoes/ruby/lib/ftsearch/document_map_writer.rb +46 -0
  144. data/shoes/ruby/lib/ftsearch/field_infos.rb +46 -0
  145. data/shoes/ruby/lib/ftsearch/fragment_writer.rb +114 -0
  146. data/shoes/ruby/lib/ftsearch/fulltext_reader.rb +52 -0
  147. data/shoes/ruby/lib/ftsearch/fulltext_writer.rb +75 -0
  148. data/shoes/ruby/lib/ftsearch/suffix_array_reader.rb +275 -0
  149. data/shoes/ruby/lib/ftsearch/suffix_array_writer.rb +99 -0
  150. data/shoes/ruby/lib/ftsearch/util.rb +21 -0
  151. data/shoes/ruby/lib/getoptlong.rb +610 -0
  152. data/shoes/ruby/lib/gserver.rb +253 -0
  153. data/shoes/ruby/lib/i386-mingw32/bigdecimal.so +0 -0
  154. data/shoes/ruby/lib/i386-mingw32/binject.so +0 -0
  155. data/shoes/ruby/lib/i386-mingw32/bloops.so +0 -0
  156. data/shoes/ruby/lib/i386-mingw32/continuation.so +0 -0
  157. data/shoes/ruby/lib/i386-mingw32/coverage.so +0 -0
  158. data/shoes/ruby/lib/i386-mingw32/curses.so +0 -0
  159. data/shoes/ruby/lib/i386-mingw32/digest/bubblebabble.so +0 -0
  160. data/shoes/ruby/lib/i386-mingw32/digest/md5.so +0 -0
  161. data/shoes/ruby/lib/i386-mingw32/digest/rmd160.so +0 -0
  162. data/shoes/ruby/lib/i386-mingw32/digest/sha1.so +0 -0
  163. data/shoes/ruby/lib/i386-mingw32/digest/sha2.so +0 -0
  164. data/shoes/ruby/lib/i386-mingw32/digest.so +0 -0
  165. data/shoes/ruby/lib/i386-mingw32/dl.so +0 -0
  166. data/shoes/ruby/lib/i386-mingw32/enc/big5.so +0 -0
  167. data/shoes/ruby/lib/i386-mingw32/enc/cp949.so +0 -0
  168. data/shoes/ruby/lib/i386-mingw32/enc/emacs_mule.so +0 -0
  169. data/shoes/ruby/lib/i386-mingw32/enc/encdb.so +0 -0
  170. data/shoes/ruby/lib/i386-mingw32/enc/euc_jp.so +0 -0
  171. data/shoes/ruby/lib/i386-mingw32/enc/euc_kr.so +0 -0
  172. data/shoes/ruby/lib/i386-mingw32/enc/euc_tw.so +0 -0
  173. data/shoes/ruby/lib/i386-mingw32/enc/gb18030.so +0 -0
  174. data/shoes/ruby/lib/i386-mingw32/enc/gb2312.so +0 -0
  175. data/shoes/ruby/lib/i386-mingw32/enc/gbk.so +0 -0
  176. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_1.so +0 -0
  177. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_10.so +0 -0
  178. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_11.so +0 -0
  179. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_13.so +0 -0
  180. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_14.so +0 -0
  181. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_15.so +0 -0
  182. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_16.so +0 -0
  183. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_2.so +0 -0
  184. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_3.so +0 -0
  185. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_4.so +0 -0
  186. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_5.so +0 -0
  187. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_6.so +0 -0
  188. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_7.so +0 -0
  189. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_8.so +0 -0
  190. data/shoes/ruby/lib/i386-mingw32/enc/iso_8859_9.so +0 -0
  191. data/shoes/ruby/lib/i386-mingw32/enc/koi8_r.so +0 -0
  192. data/shoes/ruby/lib/i386-mingw32/enc/koi8_u.so +0 -0
  193. data/shoes/ruby/lib/i386-mingw32/enc/shift_jis.so +0 -0
  194. data/shoes/ruby/lib/i386-mingw32/enc/trans/big5.so +0 -0
  195. data/shoes/ruby/lib/i386-mingw32/enc/trans/chinese.so +0 -0
  196. data/shoes/ruby/lib/i386-mingw32/enc/trans/escape.so +0 -0
  197. data/shoes/ruby/lib/i386-mingw32/enc/trans/gb18030.so +0 -0
  198. data/shoes/ruby/lib/i386-mingw32/enc/trans/gbk.so +0 -0
  199. data/shoes/ruby/lib/i386-mingw32/enc/trans/iso2022.so +0 -0
  200. data/shoes/ruby/lib/i386-mingw32/enc/trans/japanese.so +0 -0
  201. data/shoes/ruby/lib/i386-mingw32/enc/trans/japanese_euc.so +0 -0
  202. data/shoes/ruby/lib/i386-mingw32/enc/trans/japanese_sjis.so +0 -0
  203. data/shoes/ruby/lib/i386-mingw32/enc/trans/korean.so +0 -0
  204. data/shoes/ruby/lib/i386-mingw32/enc/trans/single_byte.so +0 -0
  205. data/shoes/ruby/lib/i386-mingw32/enc/trans/transdb.so +0 -0
  206. data/shoes/ruby/lib/i386-mingw32/enc/trans/utf_16_32.so +0 -0
  207. data/shoes/ruby/lib/i386-mingw32/enc/utf_16be.so +0 -0
  208. data/shoes/ruby/lib/i386-mingw32/enc/utf_16le.so +0 -0
  209. data/shoes/ruby/lib/i386-mingw32/enc/utf_32be.so +0 -0
  210. data/shoes/ruby/lib/i386-mingw32/enc/utf_32le.so +0 -0
  211. data/shoes/ruby/lib/i386-mingw32/enc/windows_1251.so +0 -0
  212. data/shoes/ruby/lib/i386-mingw32/etc.so +0 -0
  213. data/shoes/ruby/lib/i386-mingw32/fcntl.so +0 -0
  214. data/shoes/ruby/lib/i386-mingw32/fiber.so +0 -0
  215. data/shoes/ruby/lib/i386-mingw32/ftsearchrt.so +0 -0
  216. data/shoes/ruby/lib/i386-mingw32/gdbm.so +0 -0
  217. data/shoes/ruby/lib/i386-mingw32/iconv.so +0 -0
  218. data/shoes/ruby/lib/i386-mingw32/io/wait.so +0 -0
  219. data/shoes/ruby/lib/i386-mingw32/json/ext/generator.so +0 -0
  220. data/shoes/ruby/lib/i386-mingw32/json/ext/parser.so +0 -0
  221. data/shoes/ruby/lib/i386-mingw32/mathn/complex.so +0 -0
  222. data/shoes/ruby/lib/i386-mingw32/mathn/rational.so +0 -0
  223. data/shoes/ruby/lib/i386-mingw32/nkf.so +0 -0
  224. data/shoes/ruby/lib/i386-mingw32/openssl.so +0 -0
  225. data/shoes/ruby/lib/i386-mingw32/racc/cparse.so +0 -0
  226. data/shoes/ruby/lib/i386-mingw32/rbconfig.rb +196 -0
  227. data/shoes/ruby/lib/i386-mingw32/readline.so +0 -0
  228. data/shoes/ruby/lib/i386-mingw32/ripper.so +0 -0
  229. data/shoes/ruby/lib/i386-mingw32/sdbm.so +0 -0
  230. data/shoes/ruby/lib/i386-mingw32/socket.so +0 -0
  231. data/shoes/ruby/lib/i386-mingw32/stringio.so +0 -0
  232. data/shoes/ruby/lib/i386-mingw32/strscan.so +0 -0
  233. data/shoes/ruby/lib/i386-mingw32/syck.so +0 -0
  234. data/shoes/ruby/lib/i386-mingw32/win32ole.so +0 -0
  235. data/shoes/ruby/lib/i386-mingw32/zlib.so +0 -0
  236. data/shoes/ruby/lib/io/nonblock.rb +23 -0
  237. data/shoes/ruby/lib/ipaddr.rb +813 -0
  238. data/shoes/ruby/lib/irb/cmd/chws.rb +32 -0
  239. data/shoes/ruby/lib/irb/cmd/fork.rb +38 -0
  240. data/shoes/ruby/lib/irb/cmd/help.rb +36 -0
  241. data/shoes/ruby/lib/irb/cmd/load.rb +66 -0
  242. data/shoes/ruby/lib/irb/cmd/nop.rb +38 -0
  243. data/shoes/ruby/lib/irb/cmd/pushws.rb +38 -0
  244. data/shoes/ruby/lib/irb/cmd/subirb.rb +42 -0
  245. data/shoes/ruby/lib/irb/completion.rb +207 -0
  246. data/shoes/ruby/lib/irb/context.rb +255 -0
  247. data/shoes/ruby/lib/irb/ext/change-ws.rb +61 -0
  248. data/shoes/ruby/lib/irb/ext/history.rb +109 -0
  249. data/shoes/ruby/lib/irb/ext/loader.rb +119 -0
  250. data/shoes/ruby/lib/irb/ext/math-mode.rb +36 -0
  251. data/shoes/ruby/lib/irb/ext/multi-irb.rb +240 -0
  252. data/shoes/ruby/lib/irb/ext/save-history.rb +100 -0
  253. data/shoes/ruby/lib/irb/ext/tracer.rb +60 -0
  254. data/shoes/ruby/lib/irb/ext/use-loader.rb +64 -0
  255. data/shoes/ruby/lib/irb/ext/workspaces.rb +55 -0
  256. data/shoes/ruby/lib/irb/extend-command.rb +272 -0
  257. data/shoes/ruby/lib/irb/frame.rb +66 -0
  258. data/shoes/ruby/lib/irb/help.rb +35 -0
  259. data/shoes/ruby/lib/irb/init.rb +288 -0
  260. data/shoes/ruby/lib/irb/input-method.rb +142 -0
  261. data/shoes/ruby/lib/irb/lc/error.rb +29 -0
  262. data/shoes/ruby/lib/irb/lc/help-message +38 -0
  263. data/shoes/ruby/lib/irb/lc/ja/encoding_aliases.rb +8 -0
  264. data/shoes/ruby/lib/irb/lc/ja/error.rb +27 -0
  265. data/shoes/ruby/lib/irb/lc/ja/help-message +39 -0
  266. data/shoes/ruby/lib/irb/locale.rb +195 -0
  267. data/shoes/ruby/lib/irb/magic-file.rb +36 -0
  268. data/shoes/ruby/lib/irb/notifier.rb +144 -0
  269. data/shoes/ruby/lib/irb/output-method.rb +69 -0
  270. data/shoes/ruby/lib/irb/ruby-lex.rb +1188 -0
  271. data/shoes/ruby/lib/irb/ruby-token.rb +270 -0
  272. data/shoes/ruby/lib/irb/slex.rb +282 -0
  273. data/shoes/ruby/lib/irb/src_encoding.rb +4 -0
  274. data/shoes/ruby/lib/irb/version.rb +15 -0
  275. data/shoes/ruby/lib/irb/workspace.rb +108 -0
  276. data/shoes/ruby/lib/irb/ws-for-case-2.rb +14 -0
  277. data/shoes/ruby/lib/irb/xmp.rb +97 -0
  278. data/shoes/ruby/lib/irb.rb +354 -0
  279. data/shoes/ruby/lib/json/add/core.rb +135 -0
  280. data/shoes/ruby/lib/json/add/rails.rb +58 -0
  281. data/shoes/ruby/lib/json/common.rb +354 -0
  282. data/shoes/ruby/lib/json/editor.rb +1371 -0
  283. data/shoes/ruby/lib/json/ext.rb +15 -0
  284. data/shoes/ruby/lib/json/version.rb +9 -0
  285. data/shoes/ruby/lib/json.rb +297 -0
  286. data/shoes/ruby/lib/kconv.rb +282 -0
  287. data/shoes/ruby/lib/logger.rb +732 -0
  288. data/shoes/ruby/lib/mathn.rb +206 -0
  289. data/shoes/ruby/lib/matrix.rb +1381 -0
  290. data/shoes/ruby/lib/minitest/autorun.rb +9 -0
  291. data/shoes/ruby/lib/minitest/mock.rb +37 -0
  292. data/shoes/ruby/lib/minitest/spec.rb +89 -0
  293. data/shoes/ruby/lib/minitest/unit.rb +497 -0
  294. data/shoes/ruby/lib/mkmf.rb +1958 -0
  295. data/shoes/ruby/lib/monitor.rb +265 -0
  296. data/shoes/ruby/lib/mutex_m.rb +91 -0
  297. data/shoes/ruby/lib/net/ftp.rb +981 -0
  298. data/shoes/ruby/lib/net/http.rb +2399 -0
  299. data/shoes/ruby/lib/net/https.rb +136 -0
  300. data/shoes/ruby/lib/net/imap.rb +3500 -0
  301. data/shoes/ruby/lib/net/pop.rb +1000 -0
  302. data/shoes/ruby/lib/net/protocol.rb +382 -0
  303. data/shoes/ruby/lib/net/smtp.rb +1014 -0
  304. data/shoes/ruby/lib/net/telnet.rb +759 -0
  305. data/shoes/ruby/lib/observer.rb +193 -0
  306. data/shoes/ruby/lib/open-uri.rb +832 -0
  307. data/shoes/ruby/lib/open3.rb +98 -0
  308. data/shoes/ruby/lib/openssl/bn.rb +35 -0
  309. data/shoes/ruby/lib/openssl/buffering.rb +242 -0
  310. data/shoes/ruby/lib/openssl/cipher.rb +65 -0
  311. data/shoes/ruby/lib/openssl/digest.rb +61 -0
  312. data/shoes/ruby/lib/openssl/ssl.rb +178 -0
  313. data/shoes/ruby/lib/openssl/x509.rb +155 -0
  314. data/shoes/ruby/lib/openssl.rb +24 -0
  315. data/shoes/ruby/lib/optparse/date.rb +17 -0
  316. data/shoes/ruby/lib/optparse/shellwords.rb +6 -0
  317. data/shoes/ruby/lib/optparse/time.rb +10 -0
  318. data/shoes/ruby/lib/optparse/uri.rb +6 -0
  319. data/shoes/ruby/lib/optparse/version.rb +70 -0
  320. data/shoes/ruby/lib/optparse.rb +1810 -0
  321. data/shoes/ruby/lib/ostruct.rb +145 -0
  322. data/shoes/ruby/lib/pathname.rb +1099 -0
  323. data/shoes/ruby/lib/pp.rb +532 -0
  324. data/shoes/ruby/lib/prettyprint.rb +896 -0
  325. data/shoes/ruby/lib/prime.rb +471 -0
  326. data/shoes/ruby/lib/profile.rb +10 -0
  327. data/shoes/ruby/lib/profiler.rb +59 -0
  328. data/shoes/ruby/lib/pstore.rb +543 -0
  329. data/shoes/ruby/lib/racc/parser.rb +441 -0
  330. data/shoes/ruby/lib/rake/classic_namespace.rb +8 -0
  331. data/shoes/ruby/lib/rake/clean.rb +33 -0
  332. data/shoes/ruby/lib/rake/gempackagetask.rb +97 -0
  333. data/shoes/ruby/lib/rake/loaders/makefile.rb +35 -0
  334. data/shoes/ruby/lib/rake/packagetask.rb +185 -0
  335. data/shoes/ruby/lib/rake/rake_test_loader.rb +5 -0
  336. data/shoes/ruby/lib/rake/rdoctask.rb +147 -0
  337. data/shoes/ruby/lib/rake/runtest.rb +23 -0
  338. data/shoes/ruby/lib/rake/tasklib.rb +23 -0
  339. data/shoes/ruby/lib/rake/testtask.rb +161 -0
  340. data/shoes/ruby/lib/rake/win32.rb +34 -0
  341. data/shoes/ruby/lib/rake.rb +2465 -0
  342. data/shoes/ruby/lib/rational.rb +19 -0
  343. data/shoes/ruby/lib/rbconfig/datadir.rb +24 -0
  344. data/shoes/ruby/lib/rdoc/code_objects.rb +1061 -0
  345. data/shoes/ruby/lib/rdoc/diagram.rb +340 -0
  346. data/shoes/ruby/lib/rdoc/dot.rb +249 -0
  347. data/shoes/ruby/lib/rdoc/generator/chm/chm.rb +100 -0
  348. data/shoes/ruby/lib/rdoc/generator/chm.rb +113 -0
  349. data/shoes/ruby/lib/rdoc/generator/html/common.rb +24 -0
  350. data/shoes/ruby/lib/rdoc/generator/html/frameless.rb +92 -0
  351. data/shoes/ruby/lib/rdoc/generator/html/hefss.rb +150 -0
  352. data/shoes/ruby/lib/rdoc/generator/html/html.rb +769 -0
  353. data/shoes/ruby/lib/rdoc/generator/html/kilmer.rb +151 -0
  354. data/shoes/ruby/lib/rdoc/generator/html/kilmerfactory.rb +427 -0
  355. data/shoes/ruby/lib/rdoc/generator/html/one_page_html.rb +122 -0
  356. data/shoes/ruby/lib/rdoc/generator/html.rb +445 -0
  357. data/shoes/ruby/lib/rdoc/generator/ri.rb +226 -0
  358. data/shoes/ruby/lib/rdoc/generator/texinfo/class.texinfo.erb +44 -0
  359. data/shoes/ruby/lib/rdoc/generator/texinfo/file.texinfo.erb +6 -0
  360. data/shoes/ruby/lib/rdoc/generator/texinfo/method.texinfo.erb +6 -0
  361. data/shoes/ruby/lib/rdoc/generator/texinfo/texinfo.erb +28 -0
  362. data/shoes/ruby/lib/rdoc/generator/texinfo.rb +81 -0
  363. data/shoes/ruby/lib/rdoc/generator/xml/rdf.rb +113 -0
  364. data/shoes/ruby/lib/rdoc/generator/xml/xml.rb +123 -0
  365. data/shoes/ruby/lib/rdoc/generator/xml.rb +117 -0
  366. data/shoes/ruby/lib/rdoc/generator.rb +1082 -0
  367. data/shoes/ruby/lib/rdoc/known_classes.rb +68 -0
  368. data/shoes/ruby/lib/rdoc/markup/attribute_manager.rb +265 -0
  369. data/shoes/ruby/lib/rdoc/markup/formatter.rb +14 -0
  370. data/shoes/ruby/lib/rdoc/markup/fragments.rb +337 -0
  371. data/shoes/ruby/lib/rdoc/markup/inline.rb +101 -0
  372. data/shoes/ruby/lib/rdoc/markup/lines.rb +152 -0
  373. data/shoes/ruby/lib/rdoc/markup/preprocess.rb +75 -0
  374. data/shoes/ruby/lib/rdoc/markup/to_flow.rb +185 -0
  375. data/shoes/ruby/lib/rdoc/markup/to_html.rb +403 -0
  376. data/shoes/ruby/lib/rdoc/markup/to_html_crossref.rb +148 -0
  377. data/shoes/ruby/lib/rdoc/markup/to_latex.rb +328 -0
  378. data/shoes/ruby/lib/rdoc/markup/to_test.rb +50 -0
  379. data/shoes/ruby/lib/rdoc/markup/to_texinfo.rb +69 -0
  380. data/shoes/ruby/lib/rdoc/markup.rb +378 -0
  381. data/shoes/ruby/lib/rdoc/options.rb +638 -0
  382. data/shoes/ruby/lib/rdoc/parser/c.rb +661 -0
  383. data/shoes/ruby/lib/rdoc/parser/f95.rb +1835 -0
  384. data/shoes/ruby/lib/rdoc/parser/perl.rb +165 -0
  385. data/shoes/ruby/lib/rdoc/parser/ruby.rb +2829 -0
  386. data/shoes/ruby/lib/rdoc/parser/simple.rb +38 -0
  387. data/shoes/ruby/lib/rdoc/parser.rb +142 -0
  388. data/shoes/ruby/lib/rdoc/rdoc.rb +293 -0
  389. data/shoes/ruby/lib/rdoc/ri/cache.rb +187 -0
  390. data/shoes/ruby/lib/rdoc/ri/descriptions.rb +156 -0
  391. data/shoes/ruby/lib/rdoc/ri/display.rb +392 -0
  392. data/shoes/ruby/lib/rdoc/ri/driver.rb +669 -0
  393. data/shoes/ruby/lib/rdoc/ri/formatter.rb +616 -0
  394. data/shoes/ruby/lib/rdoc/ri/paths.rb +99 -0
  395. data/shoes/ruby/lib/rdoc/ri/reader.rb +106 -0
  396. data/shoes/ruby/lib/rdoc/ri/util.rb +79 -0
  397. data/shoes/ruby/lib/rdoc/ri/writer.rb +68 -0
  398. data/shoes/ruby/lib/rdoc/ri.rb +8 -0
  399. data/shoes/ruby/lib/rdoc/stats.rb +115 -0
  400. data/shoes/ruby/lib/rdoc/template.rb +64 -0
  401. data/shoes/ruby/lib/rdoc/tokenstream.rb +33 -0
  402. data/shoes/ruby/lib/rdoc.rb +395 -0
  403. data/shoes/ruby/lib/resolv-replace.rb +63 -0
  404. data/shoes/ruby/lib/resolv.rb +2262 -0
  405. data/shoes/ruby/lib/rexml/attlistdecl.rb +62 -0
  406. data/shoes/ruby/lib/rexml/attribute.rb +188 -0
  407. data/shoes/ruby/lib/rexml/cdata.rb +67 -0
  408. data/shoes/ruby/lib/rexml/child.rb +96 -0
  409. data/shoes/ruby/lib/rexml/comment.rb +80 -0
  410. data/shoes/ruby/lib/rexml/doctype.rb +270 -0
  411. data/shoes/ruby/lib/rexml/document.rb +231 -0
  412. data/shoes/ruby/lib/rexml/dtd/attlistdecl.rb +10 -0
  413. data/shoes/ruby/lib/rexml/dtd/dtd.rb +51 -0
  414. data/shoes/ruby/lib/rexml/dtd/elementdecl.rb +17 -0
  415. data/shoes/ruby/lib/rexml/dtd/entitydecl.rb +56 -0
  416. data/shoes/ruby/lib/rexml/dtd/notationdecl.rb +39 -0
  417. data/shoes/ruby/lib/rexml/element.rb +1246 -0
  418. data/shoes/ruby/lib/rexml/encoding.rb +71 -0
  419. data/shoes/ruby/lib/rexml/encodings/CP-1252.rb +103 -0
  420. data/shoes/ruby/lib/rexml/encodings/EUC-JP.rb +35 -0
  421. data/shoes/ruby/lib/rexml/encodings/ICONV.rb +22 -0
  422. data/shoes/ruby/lib/rexml/encodings/ISO-8859-1.rb +7 -0
  423. data/shoes/ruby/lib/rexml/encodings/ISO-8859-15.rb +72 -0
  424. data/shoes/ruby/lib/rexml/encodings/SHIFT-JIS.rb +37 -0
  425. data/shoes/ruby/lib/rexml/encodings/SHIFT_JIS.rb +1 -0
  426. data/shoes/ruby/lib/rexml/encodings/UNILE.rb +34 -0
  427. data/shoes/ruby/lib/rexml/encodings/US-ASCII.rb +30 -0
  428. data/shoes/ruby/lib/rexml/encodings/UTF-16.rb +35 -0
  429. data/shoes/ruby/lib/rexml/encodings/UTF-8.rb +18 -0
  430. data/shoes/ruby/lib/rexml/entity.rb +166 -0
  431. data/shoes/ruby/lib/rexml/formatters/default.rb +109 -0
  432. data/shoes/ruby/lib/rexml/formatters/pretty.rb +139 -0
  433. data/shoes/ruby/lib/rexml/formatters/transitive.rb +58 -0
  434. data/shoes/ruby/lib/rexml/functions.rb +388 -0
  435. data/shoes/ruby/lib/rexml/instruction.rb +70 -0
  436. data/shoes/ruby/lib/rexml/light/node.rb +196 -0
  437. data/shoes/ruby/lib/rexml/namespace.rb +47 -0
  438. data/shoes/ruby/lib/rexml/node.rb +75 -0
  439. data/shoes/ruby/lib/rexml/output.rb +24 -0
  440. data/shoes/ruby/lib/rexml/parent.rb +166 -0
  441. data/shoes/ruby/lib/rexml/parseexception.rb +51 -0
  442. data/shoes/ruby/lib/rexml/parsers/baseparser.rb +530 -0
  443. data/shoes/ruby/lib/rexml/parsers/lightparser.rb +58 -0
  444. data/shoes/ruby/lib/rexml/parsers/pullparser.rb +196 -0
  445. data/shoes/ruby/lib/rexml/parsers/sax2parser.rb +247 -0
  446. data/shoes/ruby/lib/rexml/parsers/streamparser.rb +46 -0
  447. data/shoes/ruby/lib/rexml/parsers/treeparser.rb +100 -0
  448. data/shoes/ruby/lib/rexml/parsers/ultralightparser.rb +56 -0
  449. data/shoes/ruby/lib/rexml/parsers/xpathparser.rb +698 -0
  450. data/shoes/ruby/lib/rexml/quickpath.rb +263 -0
  451. data/shoes/ruby/lib/rexml/rexml.rb +31 -0
  452. data/shoes/ruby/lib/rexml/sax2listener.rb +97 -0
  453. data/shoes/ruby/lib/rexml/source.rb +258 -0
  454. data/shoes/ruby/lib/rexml/streamlistener.rb +92 -0
  455. data/shoes/ruby/lib/rexml/syncenumerator.rb +32 -0
  456. data/shoes/ruby/lib/rexml/text.rb +404 -0
  457. data/shoes/ruby/lib/rexml/undefinednamespaceexception.rb +8 -0
  458. data/shoes/ruby/lib/rexml/validation/relaxng.rb +559 -0
  459. data/shoes/ruby/lib/rexml/validation/validation.rb +155 -0
  460. data/shoes/ruby/lib/rexml/validation/validationexception.rb +9 -0
  461. data/shoes/ruby/lib/rexml/xmldecl.rb +119 -0
  462. data/shoes/ruby/lib/rexml/xmltokens.rb +18 -0
  463. data/shoes/ruby/lib/rexml/xpath.rb +77 -0
  464. data/shoes/ruby/lib/rexml/xpath_parser.rb +792 -0
  465. data/shoes/ruby/lib/rinda/rinda.rb +283 -0
  466. data/shoes/ruby/lib/rinda/ring.rb +271 -0
  467. data/shoes/ruby/lib/rinda/tuplespace.rb +642 -0
  468. data/shoes/ruby/lib/ripper/core.rb +70 -0
  469. data/shoes/ruby/lib/ripper/filter.rb +70 -0
  470. data/shoes/ruby/lib/ripper/lexer.rb +179 -0
  471. data/shoes/ruby/lib/ripper/sexp.rb +99 -0
  472. data/shoes/ruby/lib/ripper.rb +4 -0
  473. data/shoes/ruby/lib/rss/0.9.rb +427 -0
  474. data/shoes/ruby/lib/rss/1.0.rb +452 -0
  475. data/shoes/ruby/lib/rss/2.0.rb +111 -0
  476. data/shoes/ruby/lib/rss/atom.rb +748 -0
  477. data/shoes/ruby/lib/rss/content/1.0.rb +10 -0
  478. data/shoes/ruby/lib/rss/content/2.0.rb +12 -0
  479. data/shoes/ruby/lib/rss/content.rb +31 -0
  480. data/shoes/ruby/lib/rss/converter.rb +170 -0
  481. data/shoes/ruby/lib/rss/dublincore/1.0.rb +13 -0
  482. data/shoes/ruby/lib/rss/dublincore/2.0.rb +13 -0
  483. data/shoes/ruby/lib/rss/dublincore/atom.rb +17 -0
  484. data/shoes/ruby/lib/rss/dublincore.rb +161 -0
  485. data/shoes/ruby/lib/rss/image.rb +193 -0
  486. data/shoes/ruby/lib/rss/itunes.rb +410 -0
  487. data/shoes/ruby/lib/rss/maker/0.9.rb +467 -0
  488. data/shoes/ruby/lib/rss/maker/1.0.rb +434 -0
  489. data/shoes/ruby/lib/rss/maker/2.0.rb +223 -0
  490. data/shoes/ruby/lib/rss/maker/atom.rb +172 -0
  491. data/shoes/ruby/lib/rss/maker/base.rb +880 -0
  492. data/shoes/ruby/lib/rss/maker/content.rb +21 -0
  493. data/shoes/ruby/lib/rss/maker/dublincore.rb +124 -0
  494. data/shoes/ruby/lib/rss/maker/entry.rb +163 -0
  495. data/shoes/ruby/lib/rss/maker/feed.rb +430 -0
  496. data/shoes/ruby/lib/rss/maker/image.rb +111 -0
  497. data/shoes/ruby/lib/rss/maker/itunes.rb +242 -0
  498. data/shoes/ruby/lib/rss/maker/slash.rb +33 -0
  499. data/shoes/ruby/lib/rss/maker/syndication.rb +18 -0
  500. data/shoes/ruby/lib/rss/maker/taxonomy.rb +118 -0
  501. data/shoes/ruby/lib/rss/maker/trackback.rb +61 -0
  502. data/shoes/ruby/lib/rss/maker.rb +44 -0
  503. data/shoes/ruby/lib/rss/parser.rb +568 -0
  504. data/shoes/ruby/lib/rss/rexmlparser.rb +54 -0
  505. data/shoes/ruby/lib/rss/rss.rb +1313 -0
  506. data/shoes/ruby/lib/rss/slash.rb +49 -0
  507. data/shoes/ruby/lib/rss/syndication.rb +67 -0
  508. data/shoes/ruby/lib/rss/taxonomy.rb +145 -0
  509. data/shoes/ruby/lib/rss/trackback.rb +288 -0
  510. data/shoes/ruby/lib/rss/utils.rb +111 -0
  511. data/shoes/ruby/lib/rss/xml-stylesheet.rb +105 -0
  512. data/shoes/ruby/lib/rss/xml.rb +71 -0
  513. data/shoes/ruby/lib/rss/xmlparser.rb +93 -0
  514. data/shoes/ruby/lib/rss/xmlscanner.rb +121 -0
  515. data/shoes/ruby/lib/rss.rb +19 -0
  516. data/shoes/ruby/lib/rubygems/builder.rb +88 -0
  517. data/shoes/ruby/lib/rubygems/command.rb +406 -0
  518. data/shoes/ruby/lib/rubygems/command_manager.rb +146 -0
  519. data/shoes/ruby/lib/rubygems/commands/build_command.rb +53 -0
  520. data/shoes/ruby/lib/rubygems/commands/cert_command.rb +86 -0
  521. data/shoes/ruby/lib/rubygems/commands/check_command.rb +75 -0
  522. data/shoes/ruby/lib/rubygems/commands/cleanup_command.rb +91 -0
  523. data/shoes/ruby/lib/rubygems/commands/contents_command.rb +74 -0
  524. data/shoes/ruby/lib/rubygems/commands/dependency_command.rb +188 -0
  525. data/shoes/ruby/lib/rubygems/commands/environment_command.rb +128 -0
  526. data/shoes/ruby/lib/rubygems/commands/fetch_command.rb +62 -0
  527. data/shoes/ruby/lib/rubygems/commands/generate_index_command.rb +57 -0
  528. data/shoes/ruby/lib/rubygems/commands/help_command.rb +172 -0
  529. data/shoes/ruby/lib/rubygems/commands/install_command.rb +148 -0
  530. data/shoes/ruby/lib/rubygems/commands/list_command.rb +35 -0
  531. data/shoes/ruby/lib/rubygems/commands/lock_command.rb +110 -0
  532. data/shoes/ruby/lib/rubygems/commands/mirror_command.rb +111 -0
  533. data/shoes/ruby/lib/rubygems/commands/outdated_command.rb +33 -0
  534. data/shoes/ruby/lib/rubygems/commands/pristine_command.rb +93 -0
  535. data/shoes/ruby/lib/rubygems/commands/query_command.rb +233 -0
  536. data/shoes/ruby/lib/rubygems/commands/rdoc_command.rb +82 -0
  537. data/shoes/ruby/lib/rubygems/commands/search_command.rb +37 -0
  538. data/shoes/ruby/lib/rubygems/commands/server_command.rb +48 -0
  539. data/shoes/ruby/lib/rubygems/commands/sources_command.rb +152 -0
  540. data/shoes/ruby/lib/rubygems/commands/specification_command.rb +77 -0
  541. data/shoes/ruby/lib/rubygems/commands/stale_command.rb +27 -0
  542. data/shoes/ruby/lib/rubygems/commands/uninstall_command.rb +73 -0
  543. data/shoes/ruby/lib/rubygems/commands/unpack_command.rb +95 -0
  544. data/shoes/ruby/lib/rubygems/commands/update_command.rb +181 -0
  545. data/shoes/ruby/lib/rubygems/commands/which_command.rb +87 -0
  546. data/shoes/ruby/lib/rubygems/config_file.rb +266 -0
  547. data/shoes/ruby/lib/rubygems/custom_require.rb +46 -0
  548. data/shoes/ruby/lib/rubygems/defaults.rb +89 -0
  549. data/shoes/ruby/lib/rubygems/dependency.rb +119 -0
  550. data/shoes/ruby/lib/rubygems/dependency_installer.rb +258 -0
  551. data/shoes/ruby/lib/rubygems/dependency_list.rb +165 -0
  552. data/shoes/ruby/lib/rubygems/digest/digest_adapter.rb +40 -0
  553. data/shoes/ruby/lib/rubygems/digest/md5.rb +23 -0
  554. data/shoes/ruby/lib/rubygems/digest/sha1.rb +17 -0
  555. data/shoes/ruby/lib/rubygems/digest/sha2.rb +17 -0
  556. data/shoes/ruby/lib/rubygems/doc_manager.rb +214 -0
  557. data/shoes/ruby/lib/rubygems/exceptions.rb +84 -0
  558. data/shoes/ruby/lib/rubygems/ext/builder.rb +56 -0
  559. data/shoes/ruby/lib/rubygems/ext/configure_builder.rb +24 -0
  560. data/shoes/ruby/lib/rubygems/ext/ext_conf_builder.rb +23 -0
  561. data/shoes/ruby/lib/rubygems/ext/rake_builder.rb +27 -0
  562. data/shoes/ruby/lib/rubygems/ext.rb +18 -0
  563. data/shoes/ruby/lib/rubygems/format.rb +87 -0
  564. data/shoes/ruby/lib/rubygems/gem_openssl.rb +83 -0
  565. data/shoes/ruby/lib/rubygems/gem_path_searcher.rb +100 -0
  566. data/shoes/ruby/lib/rubygems/gem_runner.rb +58 -0
  567. data/shoes/ruby/lib/rubygems/indexer/abstract_index_builder.rb +88 -0
  568. data/shoes/ruby/lib/rubygems/indexer/latest_index_builder.rb +35 -0
  569. data/shoes/ruby/lib/rubygems/indexer/marshal_index_builder.rb +17 -0
  570. data/shoes/ruby/lib/rubygems/indexer/master_index_builder.rb +54 -0
  571. data/shoes/ruby/lib/rubygems/indexer/quick_index_builder.rb +50 -0
  572. data/shoes/ruby/lib/rubygems/indexer.rb +370 -0
  573. data/shoes/ruby/lib/rubygems/install_update_options.rb +113 -0
  574. data/shoes/ruby/lib/rubygems/installer.rb +578 -0
  575. data/shoes/ruby/lib/rubygems/local_remote_options.rb +134 -0
  576. data/shoes/ruby/lib/rubygems/old_format.rb +148 -0
  577. data/shoes/ruby/lib/rubygems/package/f_sync_dir.rb +24 -0
  578. data/shoes/ruby/lib/rubygems/package/tar_header.rb +245 -0
  579. data/shoes/ruby/lib/rubygems/package/tar_input.rb +219 -0
  580. data/shoes/ruby/lib/rubygems/package/tar_output.rb +143 -0
  581. data/shoes/ruby/lib/rubygems/package/tar_reader/entry.rb +99 -0
  582. data/shoes/ruby/lib/rubygems/package/tar_reader.rb +86 -0
  583. data/shoes/ruby/lib/rubygems/package/tar_writer.rb +180 -0
  584. data/shoes/ruby/lib/rubygems/package.rb +95 -0
  585. data/shoes/ruby/lib/rubygems/platform.rb +178 -0
  586. data/shoes/ruby/lib/rubygems/remote_fetcher.rb +344 -0
  587. data/shoes/ruby/lib/rubygems/require_paths_builder.rb +15 -0
  588. data/shoes/ruby/lib/rubygems/requirement.rb +163 -0
  589. data/shoes/ruby/lib/rubygems/rubygems_version.rb +6 -0
  590. data/shoes/ruby/lib/rubygems/security.rb +786 -0
  591. data/shoes/ruby/lib/rubygems/server.rb +629 -0
  592. data/shoes/ruby/lib/rubygems/source_index.rb +559 -0
  593. data/shoes/ruby/lib/rubygems/source_info_cache.rb +393 -0
  594. data/shoes/ruby/lib/rubygems/source_info_cache_entry.rb +56 -0
  595. data/shoes/ruby/lib/rubygems/spec_fetcher.rb +249 -0
  596. data/shoes/ruby/lib/rubygems/specification.rb +1262 -0
  597. data/shoes/ruby/lib/rubygems/test_utilities.rb +131 -0
  598. data/shoes/ruby/lib/rubygems/timer.rb +25 -0
  599. data/shoes/ruby/lib/rubygems/uninstaller.rb +242 -0
  600. data/shoes/ruby/lib/rubygems/user_interaction.rb +360 -0
  601. data/shoes/ruby/lib/rubygems/validator.rb +208 -0
  602. data/shoes/ruby/lib/rubygems/version.rb +167 -0
  603. data/shoes/ruby/lib/rubygems/version_option.rb +48 -0
  604. data/shoes/ruby/lib/rubygems.rb +888 -0
  605. data/shoes/ruby/lib/scanf.rb +703 -0
  606. data/shoes/ruby/lib/securerandom.rb +182 -0
  607. data/shoes/ruby/lib/set.rb +1274 -0
  608. data/shoes/ruby/lib/shell/builtin-command.rb +160 -0
  609. data/shoes/ruby/lib/shell/command-processor.rb +593 -0
  610. data/shoes/ruby/lib/shell/error.rb +25 -0
  611. data/shoes/ruby/lib/shell/filter.rb +109 -0
  612. data/shoes/ruby/lib/shell/process-controller.rb +319 -0
  613. data/shoes/ruby/lib/shell/system-command.rb +159 -0
  614. data/shoes/ruby/lib/shell/version.rb +15 -0
  615. data/shoes/ruby/lib/shell.rb +300 -0
  616. data/shoes/ruby/lib/shellwords.rb +156 -0
  617. data/shoes/ruby/lib/singleton.rb +313 -0
  618. data/shoes/ruby/lib/sync.rb +307 -0
  619. data/shoes/ruby/lib/tempfile.rb +218 -0
  620. data/shoes/ruby/lib/test/unit/assertions.rb +122 -0
  621. data/shoes/ruby/lib/test/unit/testcase.rb +12 -0
  622. data/shoes/ruby/lib/test/unit.rb +66 -0
  623. data/shoes/ruby/lib/thread.rb +367 -0
  624. data/shoes/ruby/lib/thwait.rb +168 -0
  625. data/shoes/ruby/lib/time.rb +869 -0
  626. data/shoes/ruby/lib/timeout.rb +108 -0
  627. data/shoes/ruby/lib/tmpdir.rb +138 -0
  628. data/shoes/ruby/lib/tracer.rb +166 -0
  629. data/shoes/ruby/lib/tsort.rb +290 -0
  630. data/shoes/ruby/lib/ubygems.rb +10 -0
  631. data/shoes/ruby/lib/un.rb +304 -0
  632. data/shoes/ruby/lib/uri/common.rb +727 -0
  633. data/shoes/ruby/lib/uri/ftp.rb +198 -0
  634. data/shoes/ruby/lib/uri/generic.rb +1128 -0
  635. data/shoes/ruby/lib/uri/http.rb +100 -0
  636. data/shoes/ruby/lib/uri/https.rb +20 -0
  637. data/shoes/ruby/lib/uri/ldap.rb +190 -0
  638. data/shoes/ruby/lib/uri/ldaps.rb +12 -0
  639. data/shoes/ruby/lib/uri/mailto.rb +266 -0
  640. data/shoes/ruby/lib/uri.rb +29 -0
  641. data/shoes/ruby/lib/weakref.rb +80 -0
  642. data/shoes/ruby/lib/webrick/accesslog.rb +75 -0
  643. data/shoes/ruby/lib/webrick/cgi.rb +260 -0
  644. data/shoes/ruby/lib/webrick/compat.rb +15 -0
  645. data/shoes/ruby/lib/webrick/config.rb +100 -0
  646. data/shoes/ruby/lib/webrick/cookie.rb +110 -0
  647. data/shoes/ruby/lib/webrick/htmlutils.rb +25 -0
  648. data/shoes/ruby/lib/webrick/httpauth/authenticator.rb +79 -0
  649. data/shoes/ruby/lib/webrick/httpauth/basicauth.rb +65 -0
  650. data/shoes/ruby/lib/webrick/httpauth/digestauth.rb +344 -0
  651. data/shoes/ruby/lib/webrick/httpauth/htdigest.rb +91 -0
  652. data/shoes/ruby/lib/webrick/httpauth/htgroup.rb +61 -0
  653. data/shoes/ruby/lib/webrick/httpauth/htpasswd.rb +83 -0
  654. data/shoes/ruby/lib/webrick/httpauth/userdb.rb +29 -0
  655. data/shoes/ruby/lib/webrick/httpauth.rb +45 -0
  656. data/shoes/ruby/lib/webrick/httpproxy.rb +288 -0
  657. data/shoes/ruby/lib/webrick/httprequest.rb +402 -0
  658. data/shoes/ruby/lib/webrick/httpresponse.rb +326 -0
  659. data/shoes/ruby/lib/webrick/https.rb +63 -0
  660. data/shoes/ruby/lib/webrick/httpserver.rb +217 -0
  661. data/shoes/ruby/lib/webrick/httpservlet/abstract.rb +70 -0
  662. data/shoes/ruby/lib/webrick/httpservlet/cgi_runner.rb +47 -0
  663. data/shoes/ruby/lib/webrick/httpservlet/cgihandler.rb +110 -0
  664. data/shoes/ruby/lib/webrick/httpservlet/erbhandler.rb +54 -0
  665. data/shoes/ruby/lib/webrick/httpservlet/filehandler.rb +435 -0
  666. data/shoes/ruby/lib/webrick/httpservlet/prochandler.rb +33 -0
  667. data/shoes/ruby/lib/webrick/httpservlet.rb +22 -0
  668. data/shoes/ruby/lib/webrick/httpstatus.rb +132 -0
  669. data/shoes/ruby/lib/webrick/httputils.rb +392 -0
  670. data/shoes/ruby/lib/webrick/httpversion.rb +49 -0
  671. data/shoes/ruby/lib/webrick/log.rb +88 -0
  672. data/shoes/ruby/lib/webrick/server.rb +210 -0
  673. data/shoes/ruby/lib/webrick/ssl.rb +126 -0
  674. data/shoes/ruby/lib/webrick/utils.rb +175 -0
  675. data/shoes/ruby/lib/webrick/version.rb +13 -0
  676. data/shoes/ruby/lib/webrick.rb +29 -0
  677. data/shoes/ruby/lib/win32/registry.rb +832 -0
  678. data/shoes/ruby/lib/win32/resolv.rb +370 -0
  679. data/shoes/ruby/lib/win32/sspi.rb +330 -0
  680. data/shoes/ruby/lib/win32ole/property.rb +16 -0
  681. data/shoes/ruby/lib/xmlrpc/base64.rb +81 -0
  682. data/shoes/ruby/lib/xmlrpc/client.rb +625 -0
  683. data/shoes/ruby/lib/xmlrpc/config.rb +40 -0
  684. data/shoes/ruby/lib/xmlrpc/create.rb +290 -0
  685. data/shoes/ruby/lib/xmlrpc/datetime.rb +142 -0
  686. data/shoes/ruby/lib/xmlrpc/httpserver.rb +178 -0
  687. data/shoes/ruby/lib/xmlrpc/marshal.rb +76 -0
  688. data/shoes/ruby/lib/xmlrpc/parser.rb +813 -0
  689. data/shoes/ruby/lib/xmlrpc/server.rb +778 -0
  690. data/shoes/ruby/lib/xmlrpc/utils.rb +165 -0
  691. data/shoes/ruby/lib/yaml/baseemitter.rb +242 -0
  692. data/shoes/ruby/lib/yaml/basenode.rb +216 -0
  693. data/shoes/ruby/lib/yaml/constants.rb +45 -0
  694. data/shoes/ruby/lib/yaml/dbm.rb +111 -0
  695. data/shoes/ruby/lib/yaml/encoding.rb +33 -0
  696. data/shoes/ruby/lib/yaml/error.rb +34 -0
  697. data/shoes/ruby/lib/yaml/loader.rb +14 -0
  698. data/shoes/ruby/lib/yaml/rubytypes.rb +446 -0
  699. data/shoes/ruby/lib/yaml/store.rb +43 -0
  700. data/shoes/ruby/lib/yaml/stream.rb +40 -0
  701. data/shoes/ruby/lib/yaml/stringio.rb +83 -0
  702. data/shoes/ruby/lib/yaml/syck.rb +19 -0
  703. data/shoes/ruby/lib/yaml/tag.rb +91 -0
  704. data/shoes/ruby/lib/yaml/types.rb +192 -0
  705. data/shoes/ruby/lib/yaml/yamlnode.rb +54 -0
  706. data/shoes/ruby/lib/yaml/ypath.rb +52 -0
  707. data/shoes/ruby/lib/yaml.rb +440 -0
  708. data/shoes/samples/class-book.rb +43 -0
  709. data/shoes/samples/class-book.yaml +387 -0
  710. data/shoes/samples/expert-definr.rb +23 -0
  711. data/shoes/samples/expert-funnies.rb +51 -0
  712. data/shoes/samples/expert-irb.rb +112 -0
  713. data/shoes/samples/expert-minesweeper.rb +267 -0
  714. data/shoes/samples/expert-othello.rb +319 -0
  715. data/shoes/samples/expert-pong.rb +62 -0
  716. data/shoes/samples/expert-tankspank.rb +385 -0
  717. data/shoes/samples/good-arc.rb +37 -0
  718. data/shoes/samples/good-clock.rb +51 -0
  719. data/shoes/samples/good-follow.rb +26 -0
  720. data/shoes/samples/good-reminder.rb +174 -0
  721. data/shoes/samples/good-vjot.rb +56 -0
  722. data/shoes/samples/simple-accordion.rb +75 -0
  723. data/shoes/samples/simple-anim-shapes.rb +17 -0
  724. data/shoes/samples/simple-anim-text.rb +13 -0
  725. data/shoes/samples/simple-arc.rb +23 -0
  726. data/shoes/samples/simple-bounce.rb +24 -0
  727. data/shoes/samples/simple-calc.rb +70 -0
  728. data/shoes/samples/simple-control-sizes.rb +24 -0
  729. data/shoes/samples/simple-curve.rb +26 -0
  730. data/shoes/samples/simple-dialogs.rb +29 -0
  731. data/shoes/samples/simple-downloader.rb +27 -0
  732. data/shoes/samples/simple-draw.rb +13 -0
  733. data/shoes/samples/simple-editor.rb +28 -0
  734. data/shoes/samples/simple-form.rb +28 -0
  735. data/shoes/samples/simple-form.shy +0 -0
  736. data/shoes/samples/simple-mask.rb +21 -0
  737. data/shoes/samples/simple-menu.rb +31 -0
  738. data/shoes/samples/simple-menu1.rb +35 -0
  739. data/shoes/samples/simple-rubygems.rb +29 -0
  740. data/shoes/samples/simple-slide.rb +45 -0
  741. data/shoes/samples/simple-sphere.rb +28 -0
  742. data/shoes/samples/simple-timer.rb +13 -0
  743. data/shoes/samples/simple-video.rb +13 -0
  744. data/shoes/shoes +21 -0
  745. data/shoes/shoes.exe +0 -0
  746. data/shoes/shoes.exe.manifest +17 -0
  747. data/shoes/sqlite3.dll +0 -0
  748. data/shoes/static/Shoes.icns +0 -0
  749. data/shoes/static/Thumbs.db +0 -0
  750. data/shoes/static/app-icon.png +0 -0
  751. data/shoes/static/avatar.png +0 -0
  752. data/shoes/static/code_highlighter.js +188 -0
  753. data/shoes/static/code_highlighter_ruby.js +26 -0
  754. data/shoes/static/icon-debug.png +0 -0
  755. data/shoes/static/icon-error.png +0 -0
  756. data/shoes/static/icon-info.png +0 -0
  757. data/shoes/static/icon-warn.png +0 -0
  758. data/shoes/static/listbox_button1.png +0 -0
  759. data/shoes/static/listbox_button2.png +0 -0
  760. data/shoes/static/man-app.png +0 -0
  761. data/shoes/static/man-builds.png +0 -0
  762. data/shoes/static/man-editor-notepad.png +0 -0
  763. data/shoes/static/man-editor-osx.png +0 -0
  764. data/shoes/static/man-ele-background.png +0 -0
  765. data/shoes/static/man-ele-border.png +0 -0
  766. data/shoes/static/man-ele-button.png +0 -0
  767. data/shoes/static/man-ele-check.png +0 -0
  768. data/shoes/static/man-ele-editbox.png +0 -0
  769. data/shoes/static/man-ele-editline.png +0 -0
  770. data/shoes/static/man-ele-image.png +0 -0
  771. data/shoes/static/man-ele-listbox.png +0 -0
  772. data/shoes/static/man-ele-progress.png +0 -0
  773. data/shoes/static/man-ele-radio.png +0 -0
  774. data/shoes/static/man-ele-shape.png +0 -0
  775. data/shoes/static/man-ele-textblock.png +0 -0
  776. data/shoes/static/man-ele-video.png +0 -0
  777. data/shoes/static/man-intro-dmg.png +0 -0
  778. data/shoes/static/man-intro-exe.png +0 -0
  779. data/shoes/static/man-look-tiger.png +0 -0
  780. data/shoes/static/man-look-ubuntu.png +0 -0
  781. data/shoes/static/man-look-vista.png +0 -0
  782. data/shoes/static/man-run-osx.png +0 -0
  783. data/shoes/static/man-run-vista.png +0 -0
  784. data/shoes/static/man-run-xp.png +0 -0
  785. data/shoes/static/man-shot1.png +0 -0
  786. data/shoes/static/manual-en.txt +2783 -0
  787. data/shoes/static/manual-ja.txt +2780 -0
  788. data/shoes/static/manual.css +167 -0
  789. data/shoes/static/menu-corner1.png +0 -0
  790. data/shoes/static/menu-corner2.png +0 -0
  791. data/shoes/static/menu-gray.png +0 -0
  792. data/shoes/static/menu-left.png +0 -0
  793. data/shoes/static/menu-right.png +0 -0
  794. data/shoes/static/menu-top.png +0 -0
  795. data/shoes/static/shoes-dmg.jpg +0 -0
  796. data/shoes/static/shoes-icon-blue.png +0 -0
  797. data/shoes/static/shoes-icon.png +0 -0
  798. data/shoes/static/shoes-manual-apps.gif +0 -0
  799. data/shoes/static/stripe.png +0 -0
  800. data/shoes/static/stubs/blank.exe +0 -0
  801. data/shoes/static/stubs/blank.hfz +0 -0
  802. data/shoes/static/stubs/blank.run +375 -0
  803. data/shoes/static/stubs/cocoa-install +0 -0
  804. data/shoes/static/stubs/sh-install +48 -0
  805. data/shoes/static/tutor-back.png +0 -0
  806. data/shoes/zlib.dll +0 -0
  807. data/shoes/zlib1.dll +0 -0
  808. metadata +887 -0
@@ -0,0 +1,786 @@
1
+ class CGI
2
+
3
+ $CGI_ENV = ENV # for FCGI support
4
+
5
+ # String for carriage return
6
+ CR = "\015"
7
+
8
+ # String for linefeed
9
+ LF = "\012"
10
+
11
+ # Standard internet newline sequence
12
+ EOL = CR + LF
13
+
14
+ REVISION = '$Id: core.rb 23760 2009-06-20 09:06:49Z yugui $' #:nodoc:
15
+
16
+ NEEDS_BINMODE = true if /WIN/i.match(RUBY_PLATFORM)
17
+
18
+ # Path separators in different environments.
19
+ PATH_SEPARATOR = {'UNIX'=>'/', 'WINDOWS'=>'\\', 'MACINTOSH'=>':'}
20
+
21
+ # HTTP status codes.
22
+ HTTP_STATUS = {
23
+ "OK" => "200 OK",
24
+ "PARTIAL_CONTENT" => "206 Partial Content",
25
+ "MULTIPLE_CHOICES" => "300 Multiple Choices",
26
+ "MOVED" => "301 Moved Permanently",
27
+ "REDIRECT" => "302 Found",
28
+ "NOT_MODIFIED" => "304 Not Modified",
29
+ "BAD_REQUEST" => "400 Bad Request",
30
+ "AUTH_REQUIRED" => "401 Authorization Required",
31
+ "FORBIDDEN" => "403 Forbidden",
32
+ "NOT_FOUND" => "404 Not Found",
33
+ "METHOD_NOT_ALLOWED" => "405 Method Not Allowed",
34
+ "NOT_ACCEPTABLE" => "406 Not Acceptable",
35
+ "LENGTH_REQUIRED" => "411 Length Required",
36
+ "PRECONDITION_FAILED" => "412 Precondition Failed",
37
+ "SERVER_ERROR" => "500 Internal Server Error",
38
+ "NOT_IMPLEMENTED" => "501 Method Not Implemented",
39
+ "BAD_GATEWAY" => "502 Bad Gateway",
40
+ "VARIANT_ALSO_VARIES" => "506 Variant Also Negotiates"
41
+ }
42
+
43
+ # Abbreviated day-of-week names specified by RFC 822
44
+ RFC822_DAYS = %w[ Sun Mon Tue Wed Thu Fri Sat ]
45
+
46
+ # Abbreviated month names specified by RFC 822
47
+ RFC822_MONTHS = %w[ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ]
48
+
49
+ # :startdoc:
50
+
51
+ def env_table
52
+ ENV
53
+ end
54
+
55
+ def stdinput
56
+ $stdin
57
+ end
58
+
59
+ def stdoutput
60
+ $stdout
61
+ end
62
+
63
+ private :env_table, :stdinput, :stdoutput
64
+
65
+
66
+ # Create an HTTP header block as a string.
67
+ #
68
+ # Includes the empty line that ends the header block.
69
+ #
70
+ # +options+ can be a string specifying the Content-Type (defaults
71
+ # to text/html), or a hash of header key/value pairs. The following
72
+ # header keys are recognized:
73
+ #
74
+ # type:: the Content-Type header. Defaults to "text/html"
75
+ # charset:: the charset of the body, appended to the Content-Type header.
76
+ # nph:: a boolean value. If true, prepend protocol string and status code, and
77
+ # date; and sets default values for "server" and "connection" if not
78
+ # explicitly set.
79
+ # status:: the HTTP status code, returned as the Status header. See the
80
+ # list of available status codes below.
81
+ # server:: the server software, returned as the Server header.
82
+ # connection:: the connection type, returned as the Connection header (for
83
+ # instance, "close".
84
+ # length:: the length of the content that will be sent, returned as the
85
+ # Content-Length header.
86
+ # language:: the language of the content, returned as the Content-Language
87
+ # header.
88
+ # expires:: the time on which the current content expires, as a +Time+
89
+ # object, returned as the Expires header.
90
+ # cookie:: a cookie or cookies, returned as one or more Set-Cookie headers.
91
+ # The value can be the literal string of the cookie; a CGI::Cookie
92
+ # object; an Array of literal cookie strings or Cookie objects; or a
93
+ # hash all of whose values are literal cookie strings or Cookie objects.
94
+ # These cookies are in addition to the cookies held in the
95
+ # @output_cookies field.
96
+ #
97
+ # Other header lines can also be set; they are appended as key: value.
98
+ #
99
+ # header
100
+ # # Content-Type: text/html
101
+ #
102
+ # header("text/plain")
103
+ # # Content-Type: text/plain
104
+ #
105
+ # header("nph" => true,
106
+ # "status" => "OK", # == "200 OK"
107
+ # # "status" => "200 GOOD",
108
+ # "server" => ENV['SERVER_SOFTWARE'],
109
+ # "connection" => "close",
110
+ # "type" => "text/html",
111
+ # "charset" => "iso-2022-jp",
112
+ # # Content-Type: text/html; charset=iso-2022-jp
113
+ # "length" => 103,
114
+ # "language" => "ja",
115
+ # "expires" => Time.now + 30,
116
+ # "cookie" => [cookie1, cookie2],
117
+ # "my_header1" => "my_value"
118
+ # "my_header2" => "my_value")
119
+ #
120
+ # The status codes are:
121
+ #
122
+ # "OK" --> "200 OK"
123
+ # "PARTIAL_CONTENT" --> "206 Partial Content"
124
+ # "MULTIPLE_CHOICES" --> "300 Multiple Choices"
125
+ # "MOVED" --> "301 Moved Permanently"
126
+ # "REDIRECT" --> "302 Found"
127
+ # "NOT_MODIFIED" --> "304 Not Modified"
128
+ # "BAD_REQUEST" --> "400 Bad Request"
129
+ # "AUTH_REQUIRED" --> "401 Authorization Required"
130
+ # "FORBIDDEN" --> "403 Forbidden"
131
+ # "NOT_FOUND" --> "404 Not Found"
132
+ # "METHOD_NOT_ALLOWED" --> "405 Method Not Allowed"
133
+ # "NOT_ACCEPTABLE" --> "406 Not Acceptable"
134
+ # "LENGTH_REQUIRED" --> "411 Length Required"
135
+ # "PRECONDITION_FAILED" --> "412 Precondition Failed"
136
+ # "SERVER_ERROR" --> "500 Internal Server Error"
137
+ # "NOT_IMPLEMENTED" --> "501 Method Not Implemented"
138
+ # "BAD_GATEWAY" --> "502 Bad Gateway"
139
+ # "VARIANT_ALSO_VARIES" --> "506 Variant Also Negotiates"
140
+ #
141
+ # This method does not perform charset conversion.
142
+ def header(options='text/html')
143
+ if options.is_a?(String)
144
+ content_type = options
145
+ buf = _header_for_string(content_type)
146
+ elsif options.is_a?(Hash)
147
+ if options.size == 1 && options.has_key?('type')
148
+ content_type = options['type']
149
+ buf = _header_for_string(content_type)
150
+ else
151
+ buf = _header_for_hash(options.dup)
152
+ end
153
+ else
154
+ raise ArgumentError.new("expected String or Hash but got #{options.class}")
155
+ end
156
+ if defined?(MOD_RUBY)
157
+ _header_for_modruby(buf)
158
+ return ''
159
+ else
160
+ buf << EOL # empty line of separator
161
+ return buf
162
+ end
163
+ end # header()
164
+
165
+ def _header_for_string(content_type) #:nodoc:
166
+ buf = ''
167
+ if nph?()
168
+ buf << "#{$CGI_ENV['SERVER_PROTOCOL'] || 'HTTP/1.0'} 200 OK#{EOL}"
169
+ buf << "Date: #{CGI.rfc1123_date(Time.now)}#{EOL}"
170
+ buf << "Server: #{$CGI_ENV['SERVER_SOFTWARE']}#{EOL}"
171
+ buf << "Connection: close#{EOL}"
172
+ end
173
+ buf << "Content-Type: #{content_type}#{EOL}"
174
+ if @output_cookies
175
+ @output_cookies.each {|cookie| buf << "Set-Cookie: #{cookie}#{EOL}" }
176
+ end
177
+ return buf
178
+ end # _header_for_string
179
+ private :_header_for_string
180
+
181
+ def _header_for_hash(options) #:nodoc:
182
+ buf = ''
183
+ ## add charset to option['type']
184
+ options['type'] ||= 'text/html'
185
+ charset = options.delete('charset')
186
+ options['type'] += "; charset=#{charset}" if charset
187
+ ## NPH
188
+ options.delete('nph') if defined?(MOD_RUBY)
189
+ if options.delete('nph') || nph?()
190
+ protocol = $CGI_ENV['SERVER_PROTOCOL'] || 'HTTP/1.0'
191
+ status = options.delete('status')
192
+ status = HTTP_STATUS[status] || status || '200 OK'
193
+ buf << "#{protocol} #{status}#{EOL}"
194
+ buf << "Date: #{CGI.rfc1123_date(Time.now)}#{EOL}"
195
+ options['server'] ||= $CGI_ENV['SERVER_SOFTWARE'] || ''
196
+ options['connection'] ||= 'close'
197
+ end
198
+ ## common headers
199
+ status = options.delete('status')
200
+ buf << "Status: #{HTTP_STATUS[status] || status}#{EOL}" if status
201
+ server = options.delete('server')
202
+ buf << "Server: #{server}#{EOL}" if server
203
+ connection = options.delete('connection')
204
+ buf << "Connection: #{connection}#{EOL}" if connection
205
+ type = options.delete('type')
206
+ buf << "Content-Type: #{type}#{EOL}" #if type
207
+ length = options.delete('length')
208
+ buf << "Content-Length: #{length}#{EOL}" if length
209
+ language = options.delete('language')
210
+ buf << "Content-Language: #{language}#{EOL}" if language
211
+ expires = options.delete('expires')
212
+ buf << "Expires: #{CGI.rfc1123_date(expires)}#{EOL}" if expires
213
+ ## cookie
214
+ if cookie = options.delete('cookie')
215
+ case cookie
216
+ when String, Cookie
217
+ buf << "Set-Cookie: #{cookie}#{EOL}"
218
+ when Array
219
+ arr = cookie
220
+ arr.each {|c| buf << "Set-Cookie: #{c}#{EOL}" }
221
+ when Hash
222
+ hash = cookie
223
+ hash.each {|name, c| buf << "Set-Cookie: #{c}#{EOL}" }
224
+ end
225
+ end
226
+ if @output_cookies
227
+ @output_cookies.each {|c| buf << "Set-Cookie: #{c}#{EOL}" }
228
+ end
229
+ ## other headers
230
+ options.each do |key, value|
231
+ buf << "#{key}: #{value}#{EOL}"
232
+ end
233
+ return buf
234
+ end # _header_for_hash
235
+ private :_header_for_hash
236
+
237
+ def nph? #:nodoc:
238
+ return /IIS\/(\d+)/.match($CGI_ENV['SERVER_SOFTWARE']) && $1.to_i < 5
239
+ end
240
+
241
+ def _header_for_modruby(buf) #:nodoc:
242
+ request = Apache::request
243
+ buf.scan(/([^:]+): (.+)#{EOL}/o) do |name, value|
244
+ warn sprintf("name:%s value:%s\n", name, value) if $DEBUG
245
+ case name
246
+ when 'Set-Cookie'
247
+ request.headers_out.add(name, value)
248
+ when /^status$/i
249
+ request.status_line = value
250
+ request.status = value.to_i
251
+ when /^content-type$/i
252
+ request.content_type = value
253
+ when /^content-encoding$/i
254
+ request.content_encoding = value
255
+ when /^location$/i
256
+ request.status = 302 if request.status == 200
257
+ request.headers_out[name] = value
258
+ else
259
+ request.headers_out[name] = value
260
+ end
261
+ end
262
+ request.send_http_header
263
+ return ''
264
+ end
265
+ private :_header_for_modruby
266
+ #
267
+
268
+ # Print an HTTP header and body to $DEFAULT_OUTPUT ($>)
269
+ #
270
+ # The header is provided by +options+, as for #header().
271
+ # The body of the document is that returned by the passed-
272
+ # in block. This block takes no arguments. It is required.
273
+ #
274
+ # cgi = CGI.new
275
+ # cgi.out{ "string" }
276
+ # # Content-Type: text/html
277
+ # # Content-Length: 6
278
+ # #
279
+ # # string
280
+ #
281
+ # cgi.out("text/plain") { "string" }
282
+ # # Content-Type: text/plain
283
+ # # Content-Length: 6
284
+ # #
285
+ # # string
286
+ #
287
+ # cgi.out("nph" => true,
288
+ # "status" => "OK", # == "200 OK"
289
+ # "server" => ENV['SERVER_SOFTWARE'],
290
+ # "connection" => "close",
291
+ # "type" => "text/html",
292
+ # "charset" => "iso-2022-jp",
293
+ # # Content-Type: text/html; charset=iso-2022-jp
294
+ # "language" => "ja",
295
+ # "expires" => Time.now + (3600 * 24 * 30),
296
+ # "cookie" => [cookie1, cookie2],
297
+ # "my_header1" => "my_value",
298
+ # "my_header2" => "my_value") { "string" }
299
+ #
300
+ # Content-Length is automatically calculated from the size of
301
+ # the String returned by the content block.
302
+ #
303
+ # If ENV['REQUEST_METHOD'] == "HEAD", then only the header
304
+ # is outputted (the content block is still required, but it
305
+ # is ignored).
306
+ #
307
+ # If the charset is "iso-2022-jp" or "euc-jp" or "shift_jis" then
308
+ # the content is converted to this charset, and the language is set
309
+ # to "ja".
310
+ def out(options = "text/html") # :yield:
311
+
312
+ options = { "type" => options } if options.kind_of?(String)
313
+ content = yield
314
+ options["length"] = content.bytesize.to_s
315
+ output = stdoutput
316
+ output.binmode if defined? output.binmode
317
+ output.print header(options)
318
+ output.print content unless "HEAD" == env_table['REQUEST_METHOD']
319
+ end
320
+
321
+
322
+ # Print an argument or list of arguments to the default output stream
323
+ #
324
+ # cgi = CGI.new
325
+ # cgi.print # default: cgi.print == $DEFAULT_OUTPUT.print
326
+ def print(*options)
327
+ stdoutput.print(*options)
328
+ end
329
+
330
+ # Parse an HTTP query string into a hash of key=>value pairs.
331
+ #
332
+ # params = CGI::parse("query_string")
333
+ # # {"name1" => ["value1", "value2", ...],
334
+ # # "name2" => ["value1", "value2", ...], ... }
335
+ #
336
+ def CGI::parse(query)
337
+ params = {}
338
+ query.split(/[&;]/).each do |pairs|
339
+ key, value = pairs.split('=',2).collect{|v| CGI::unescape(v) }
340
+ if key && value
341
+ params.has_key?(key) ? params[key].push(value) : params[key] = [value]
342
+ elsif key
343
+ params[key]=[]
344
+ end
345
+ end
346
+ params.default=[].freeze
347
+ params
348
+ end
349
+
350
+ # Maximum content length of post data
351
+ ##MAX_CONTENT_LENGTH = 2 * 1024 * 1024
352
+
353
+ # Maximum content length of multipart data
354
+ MAX_MULTIPART_LENGTH = 128 * 1024 * 1024
355
+
356
+ # Maximum number of request parameters when multipart
357
+ MAX_MULTIPART_COUNT = 128
358
+
359
+ # Mixin module. It provides the follow functionality groups:
360
+ #
361
+ # 1. Access to CGI environment variables as methods. See
362
+ # documentation to the CGI class for a list of these variables.
363
+ #
364
+ # 2. Access to cookies, including the cookies attribute.
365
+ #
366
+ # 3. Access to parameters, including the params attribute, and overloading
367
+ # [] to perform parameter value lookup by key.
368
+ #
369
+ # 4. The initialize_query method, for initialising the above
370
+ # mechanisms, handling multipart forms, and allowing the
371
+ # class to be used in "offline" mode.
372
+ #
373
+ module QueryExtension
374
+
375
+ %w[ CONTENT_LENGTH SERVER_PORT ].each do |env|
376
+ define_method(env.sub(/^HTTP_/, '').downcase) do
377
+ (val = env_table[env]) && Integer(val)
378
+ end
379
+ end
380
+
381
+ %w[ AUTH_TYPE CONTENT_TYPE GATEWAY_INTERFACE PATH_INFO
382
+ PATH_TRANSLATED QUERY_STRING REMOTE_ADDR REMOTE_HOST
383
+ REMOTE_IDENT REMOTE_USER REQUEST_METHOD SCRIPT_NAME
384
+ SERVER_NAME SERVER_PROTOCOL SERVER_SOFTWARE
385
+
386
+ HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_ACCEPT_ENCODING
387
+ HTTP_ACCEPT_LANGUAGE HTTP_CACHE_CONTROL HTTP_FROM HTTP_HOST
388
+ HTTP_NEGOTIATE HTTP_PRAGMA HTTP_REFERER HTTP_USER_AGENT ].each do |env|
389
+ define_method(env.sub(/^HTTP_/, '').downcase) do
390
+ env_table[env]
391
+ end
392
+ end
393
+
394
+ # Get the raw cookies as a string.
395
+ def raw_cookie
396
+ env_table["HTTP_COOKIE"]
397
+ end
398
+
399
+ # Get the raw RFC2965 cookies as a string.
400
+ def raw_cookie2
401
+ env_table["HTTP_COOKIE2"]
402
+ end
403
+
404
+ # Get the cookies as a hash of cookie-name=>Cookie pairs.
405
+ attr_accessor :cookies
406
+
407
+ # Get the parameters as a hash of name=>values pairs, where
408
+ # values is an Array.
409
+ attr_reader :params
410
+
411
+ # Get the uploaed files as a hash of name=>values pairs
412
+ attr_reader :files
413
+
414
+ # Set all the parameters.
415
+ def params=(hash)
416
+ @params.clear
417
+ @params.update(hash)
418
+ end
419
+
420
+ def read_multipart(boundary, content_length)
421
+ ## read first boundary
422
+ stdin = $stdin
423
+ first_line = "--#{boundary}#{EOL}"
424
+ content_length -= first_line.bytesize
425
+ status = stdin.read(first_line.bytesize)
426
+ raise EOFError.new("no content body") unless status
427
+ raise EOFError.new("bad content body") unless first_line == status
428
+ ## parse and set params
429
+ params = {}
430
+ @files = {}
431
+ boundary_rexp = /--#{Regexp.quote(boundary)}(#{EOL}|--)/
432
+ boundary_size = "#{EOL}--#{boundary}#{EOL}".bytesize
433
+ boundary_end = nil
434
+ buf = ''
435
+ bufsize = 10 * 1024
436
+ max_count = MAX_MULTIPART_COUNT
437
+ n = 0
438
+ while true
439
+ (n += 1) < max_count or raise StandardError.new("too many parameters.")
440
+ ## create body (StringIO or Tempfile)
441
+ body = create_body(bufsize < content_length)
442
+ class << body
443
+ alias local_path path
444
+ attr_reader :original_filename, :content_type
445
+ end
446
+ ## find head and boundary
447
+ head = nil
448
+ separator = EOL * 2
449
+ until head && matched = boundary_rexp.match(buf)
450
+ if !head && pos = buf.index(separator)
451
+ len = pos + EOL.bytesize
452
+ head = buf[0, len]
453
+ buf = buf[(pos+separator.bytesize)..-1]
454
+ else
455
+ if head && buf.size > boundary_size
456
+ len = buf.size - boundary_size
457
+ body.print(buf[0, len])
458
+ buf[0, len] = ''
459
+ end
460
+ c = stdin.read(bufsize < content_length ? bufsize : content_length)
461
+ raise EOFError.new("bad content body") if c.nil? || c.empty?
462
+ buf << c
463
+ content_length -= c.bytesize
464
+ end
465
+ end
466
+ ## read to end of boundary
467
+ m = matched
468
+ len = m.begin(0)
469
+ s = buf[0, len]
470
+ if s =~ /(\r?\n)\z/
471
+ s = buf[0, len - $1.bytesize]
472
+ end
473
+ body.print(s)
474
+ buf = buf[m.end(0)..-1]
475
+ boundary_end = m[1]
476
+ content_length = -1 if boundary_end == '--'
477
+ ## reset file cursor position
478
+ body.rewind
479
+ ## original filename
480
+ /Content-Disposition:.* filename=(?:"(.*?)"|([^;\r\n]*))/i.match(head)
481
+ filename = $1 || $2 || ''
482
+ filename = CGI.unescape(filename) if unescape_filename?()
483
+ body.instance_variable_set('@original_filename', filename.taint)
484
+ ## content type
485
+ /Content-Type: (.*)/i.match(head)
486
+ (content_type = $1 || '').chomp!
487
+ body.instance_variable_set('@content_type', content_type.taint)
488
+ ## query parameter name
489
+ /Content-Disposition:.* name=(?:"(.*?)"|([^;\r\n]*))/i.match(head)
490
+ name = $1 || $2 || ''
491
+ if body.original_filename.empty?
492
+ value=body.read.dup.force_encoding(@accept_charset)
493
+ (params[name] ||= []) << value
494
+ unless value.valid_encoding?
495
+ if @accept_charset_error_block
496
+ @accept_charset_error_block.call(name,value)
497
+ else
498
+ raise InvalidEncoding,"Accept-Charset encoding error"
499
+ end
500
+ end
501
+ class << params[name].last;self;end.class_eval do
502
+ define_method(:read){self}
503
+ define_method(:original_filename){""}
504
+ define_method(:content_type){""}
505
+ end
506
+ else
507
+ (params[name] ||= []) << body
508
+ @files[name]=body
509
+ end
510
+ ## break loop
511
+ break if buf.size == 0
512
+ break if content_length == -1
513
+ end
514
+ raise EOFError, "bad boundary end of body part" unless boundary_end =~ /--/
515
+ params.default = []
516
+ params
517
+ end # read_multipart
518
+ private :read_multipart
519
+ def create_body(is_large) #:nodoc:
520
+ if is_large
521
+ require 'tempfile'
522
+ body = Tempfile.new('CGI', encoding: "ascii-8bit")
523
+ else
524
+ begin
525
+ require 'stringio'
526
+ body = StringIO.new("".force_encoding("ascii-8bit"))
527
+ rescue LoadError
528
+ require 'tempfile'
529
+ body = Tempfile.new('CGI', encoding: "ascii-8bit")
530
+ end
531
+ end
532
+ body.binmode if defined? body.binmode
533
+ return body
534
+ end
535
+ def unescape_filename? #:nodoc:
536
+ user_agent = $CGI_ENV['HTTP_USER_AGENT']
537
+ return /Mac/i.match(user_agent) && /Mozilla/i.match(user_agent) && !/MSIE/i.match(user_agent)
538
+ end
539
+
540
+ # offline mode. read name=value pairs on standard input.
541
+ def read_from_cmdline
542
+ require "shellwords"
543
+
544
+ string = unless ARGV.empty?
545
+ ARGV.join(' ')
546
+ else
547
+ if STDIN.tty?
548
+ STDERR.print(
549
+ %|(offline mode: enter name=value pairs on standard input)\n|
550
+ )
551
+ end
552
+ readlines.join(' ').gsub(/\n/, '')
553
+ end.gsub(/\\=/, '%3D').gsub(/\\&/, '%26')
554
+
555
+ words = Shellwords.shellwords(string)
556
+
557
+ if words.find{|x| /=/.match(x) }
558
+ words.join('&')
559
+ else
560
+ words.join('+')
561
+ end
562
+ end
563
+ private :read_from_cmdline
564
+
565
+ # A wrapper class to use a StringIO object as the body and switch
566
+ # to a TempFile when the passed threshold is passed.
567
+ # Initialize the data from the query.
568
+ #
569
+ # Handles multipart forms (in particular, forms that involve file uploads).
570
+ # Reads query parameters in the @params field, and cookies into @cookies.
571
+ def initialize_query()
572
+ if ("POST" == env_table['REQUEST_METHOD']) and
573
+ %r|\Amultipart/form-data.*boundary=\"?([^\";,]+)\"?|.match(env_table['CONTENT_TYPE'])
574
+ raise StandardError.new("too large multipart data.") if env_table['CONTENT_LENGTH'].to_i > MAX_MULTIPART_LENGTH
575
+ boundary = $1.dup
576
+ @multipart = true
577
+ @params = read_multipart(boundary, Integer(env_table['CONTENT_LENGTH']))
578
+ else
579
+ @multipart = false
580
+ @params = CGI::parse(
581
+ case env_table['REQUEST_METHOD']
582
+ when "GET", "HEAD"
583
+ if defined?(MOD_RUBY)
584
+ Apache::request.args or ""
585
+ else
586
+ env_table['QUERY_STRING'] or ""
587
+ end
588
+ when "POST"
589
+ stdinput.binmode if defined? stdinput.binmode
590
+ stdinput.read(Integer(env_table['CONTENT_LENGTH'])) or ''
591
+ else
592
+ read_from_cmdline
593
+ end.dup.force_encoding(@accept_charset)
594
+ )
595
+ unless Encoding.find(@accept_charset) == Encoding::ASCII_8BIT
596
+ @params.each do |key,values|
597
+ values.each do |value|
598
+ unless value.valid_encoding?
599
+ if @accept_charset_error_block
600
+ @accept_charset_error_block.call(key,value)
601
+ else
602
+ raise InvalidEncoding,"Accept-Charset encoding error"
603
+ end
604
+ end
605
+ end
606
+ end
607
+ end
608
+ end
609
+
610
+ @cookies = CGI::Cookie::parse((env_table['HTTP_COOKIE'] or env_table['COOKIE']))
611
+ end
612
+ private :initialize_query
613
+
614
+ def multipart?
615
+ @multipart
616
+ end
617
+
618
+ # Get the value for the parameter with a given key.
619
+ #
620
+ # If the parameter has multiple values, only the first will be
621
+ # retrieved; use #params() to get the array of values.
622
+ def [](key)
623
+ params = @params[key]
624
+ return '' unless params
625
+ value = params[0]
626
+ if @multipart
627
+ if value
628
+ return value
629
+ elsif defined? StringIO
630
+ StringIO.new("".force_encoding("ascii-8bit"))
631
+ else
632
+ Tempfile.new("CGI",encoding:"ascii-8bit")
633
+ end
634
+ else
635
+ str = if value then value.dup else "" end
636
+ str
637
+ end
638
+ end
639
+
640
+ # Return all parameter keys as an array.
641
+ def keys(*args)
642
+ @params.keys(*args)
643
+ end
644
+
645
+ # Returns true if a given parameter key exists in the query.
646
+ def has_key?(*args)
647
+ @params.has_key?(*args)
648
+ end
649
+ alias key? has_key?
650
+ alias include? has_key?
651
+
652
+ end # QueryExtension
653
+
654
+ # InvalidEncoding Exception class
655
+ class InvalidEncoding < Exception; end
656
+
657
+ # @@accept_charset is default accept character set.
658
+ # This default value default is "UTF-8"
659
+ # If you want to change the default accept character set
660
+ # when create a new CGI instance, set this:
661
+ #
662
+ # CGI.accept_charset = "EUC-JP"
663
+ #
664
+
665
+ @@accept_charset="UTF-8"
666
+
667
+ def self.accept_charset
668
+ @@accept_charset
669
+ end
670
+
671
+ def self.accept_charset=(accept_charset)
672
+ @@accept_charset=accept_charset
673
+ end
674
+
675
+ # Create a new CGI instance.
676
+ #
677
+ # CGI accept constructor parameters either in a hash, string as a block.
678
+ # But string is as same as using :tag_maker of hash.
679
+ #
680
+ # CGI.new("html3") #=> CGI.new(:tag_maker=>"html3")
681
+ #
682
+ # And, if you specify string, @accept_charset cannot be changed.
683
+ # Instead, please use hash parameter.
684
+ #
685
+ # == accept_charset
686
+ #
687
+ # :accept_charset specifies encoding of received query string.
688
+ # ( Default value is @@accept_charset. )
689
+ # If not valid, raise CGI::InvalidEncoding
690
+ #
691
+ # Example. Suppose @@accept_charset # => "UTF-8"
692
+ #
693
+ # when not specified:
694
+ #
695
+ # cgi=CGI.new # @accept_charset # => "UTF-8"
696
+ #
697
+ # when specified "EUC-JP":
698
+ #
699
+ # cgi=CGI.new(:accept_charset => "EUC-JP") # => "EUC-JP"
700
+ #
701
+ # == block
702
+ #
703
+ # When you use a block, you can write a process
704
+ # that query encoding is invalid. Example:
705
+ #
706
+ # encoding_error={}
707
+ # cgi=CGI.new(:accept_charset=>"EUC-JP") do |name,value|
708
+ # encoding_error[key] = value
709
+ # end
710
+ #
711
+ # == tag_maker
712
+ #
713
+ # :tag_maker specifies which version of HTML to load the HTML generation
714
+ # methods for. The following versions of HTML are supported:
715
+ #
716
+ # html3:: HTML 3.x
717
+ # html4:: HTML 4.0
718
+ # html4Tr:: HTML 4.0 Transitional
719
+ # html4Fr:: HTML 4.0 with Framesets
720
+ #
721
+ # If not specified, no HTML generation methods will be loaded.
722
+ #
723
+ # If the CGI object is not created in a standard CGI call environment
724
+ # (that is, it can't locate REQUEST_METHOD in its environment), then
725
+ # it will run in "offline" mode. In this mode, it reads its parameters
726
+ # from the command line or (failing that) from standard input. Otherwise,
727
+ # cookies and other parameters are parsed automatically from the standard
728
+ # CGI locations, which varies according to the REQUEST_METHOD. It works this:
729
+ #
730
+ # CGI.new(:tag_maker=>"html3")
731
+ #
732
+ # This will be obsolete:
733
+ #
734
+ # CGI.new("html3")
735
+ #
736
+ attr_reader :accept_charset
737
+ def initialize(options = {},&block)
738
+ @accept_charset_error_block=block if block_given?
739
+ @options={:accept_charset=>@@accept_charset}
740
+ case options
741
+ when Hash
742
+ @options.merge!(options)
743
+ when String
744
+ @options[:tag_maker]=options
745
+ end
746
+ @accept_charset=@options[:accept_charset]
747
+ if defined?(MOD_RUBY) && !ENV.key?("GATEWAY_INTERFACE")
748
+ Apache.request.setup_cgi_env
749
+ end
750
+
751
+ extend QueryExtension
752
+ @multipart = false
753
+
754
+ initialize_query() # set @params, @cookies
755
+ @output_cookies = nil
756
+ @output_hidden = nil
757
+
758
+ case @options[:tag_maker]
759
+ when "html3"
760
+ require 'cgi/html'
761
+ extend Html3
762
+ element_init()
763
+ extend HtmlExtension
764
+ when "html4"
765
+ require 'cgi/html'
766
+ extend Html4
767
+ element_init()
768
+ extend HtmlExtension
769
+ when "html4Tr"
770
+ require 'cgi/html'
771
+ extend Html4Tr
772
+ element_init()
773
+ extend HtmlExtension
774
+ when "html4Fr"
775
+ require 'cgi/html'
776
+ extend Html4Tr
777
+ element_init()
778
+ extend Html4Fr
779
+ element_init()
780
+ extend HtmlExtension
781
+ end
782
+ end
783
+
784
+ end # class CGI
785
+
786
+