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,1061 @@
1
+ # We represent the various high-level code constructs that appear
2
+ # in Ruby programs: classes, modules, methods, and so on.
3
+
4
+ require 'rdoc/tokenstream'
5
+
6
+ module RDoc
7
+
8
+ ##
9
+ # We contain the common stuff for contexts (which are containers) and other
10
+ # elements (methods, attributes and so on)
11
+
12
+ class CodeObject
13
+
14
+ attr_accessor :parent
15
+
16
+ # We are the model of the code, but we know that at some point
17
+ # we will be worked on by viewers. By implementing the Viewable
18
+ # protocol, viewers can associated themselves with these objects.
19
+
20
+ attr_accessor :viewer
21
+
22
+ # are we done documenting (ie, did we come across a :enddoc:)?
23
+
24
+ attr_accessor :done_documenting
25
+
26
+ # Which section are we in
27
+
28
+ attr_accessor :section
29
+
30
+ # do we document ourselves?
31
+
32
+ attr_reader :document_self
33
+
34
+ def initialize
35
+ @document_self = true
36
+ @document_children = true
37
+ @force_documentation = false
38
+ @done_documenting = false
39
+ end
40
+
41
+ def document_self=(val)
42
+ @document_self = val
43
+ if !val
44
+ remove_methods_etc
45
+ end
46
+ end
47
+
48
+ # set and cleared by :startdoc: and :enddoc:, this is used to toggle
49
+ # the capturing of documentation
50
+ def start_doc
51
+ @document_self = true
52
+ @document_children = true
53
+ end
54
+
55
+ def stop_doc
56
+ @document_self = false
57
+ @document_children = false
58
+ end
59
+
60
+ # do we document ourselves and our children
61
+
62
+ attr_reader :document_children
63
+
64
+ def document_children=(val)
65
+ @document_children = val
66
+ if !val
67
+ remove_classes_and_modules
68
+ end
69
+ end
70
+
71
+ # Do we _force_ documentation, even is we wouldn't normally show the entity
72
+ attr_accessor :force_documentation
73
+
74
+ def parent_file_name
75
+ @parent ? @parent.file_base_name : '(unknown)'
76
+ end
77
+
78
+ def parent_name
79
+ @parent ? @parent.name : '(unknown)'
80
+ end
81
+
82
+ # Default callbacks to nothing, but this is overridden for classes
83
+ # and modules
84
+ def remove_classes_and_modules
85
+ end
86
+
87
+ def remove_methods_etc
88
+ end
89
+
90
+ # Access the code object's comment
91
+ attr_reader :comment
92
+
93
+ # Update the comment, but don't overwrite a real comment with an empty one
94
+ def comment=(comment)
95
+ @comment = comment unless comment.empty?
96
+ end
97
+
98
+ # There's a wee trick we pull. Comment blocks can have directives that
99
+ # override the stuff we extract during the parse. So, we have a special
100
+ # class method, attr_overridable, that lets code objects list
101
+ # those directives. Wehn a comment is assigned, we then extract
102
+ # out any matching directives and update our object
103
+
104
+ def self.attr_overridable(name, *aliases)
105
+ @overridables ||= {}
106
+
107
+ attr_accessor name
108
+
109
+ aliases.unshift name
110
+ aliases.each do |directive_name|
111
+ @overridables[directive_name.to_s] = name
112
+ end
113
+ end
114
+
115
+ end
116
+
117
+ ##
118
+ # A Context is something that can hold modules, classes, methods,
119
+ # attributes, aliases, requires, and includes. Classes, modules, and files
120
+ # are all Contexts.
121
+
122
+ class Context < CodeObject
123
+
124
+ attr_reader :aliases
125
+ attr_reader :attributes
126
+ attr_reader :constants
127
+ attr_reader :current_section
128
+ attr_reader :in_files
129
+ attr_reader :includes
130
+ attr_reader :method_list
131
+ attr_reader :name
132
+ attr_reader :requires
133
+ attr_reader :sections
134
+ attr_reader :visibility
135
+
136
+ class Section
137
+ attr_reader :title, :comment, :sequence
138
+
139
+ @@sequence = "SEC00000"
140
+
141
+ def initialize(title, comment)
142
+ @title = title
143
+ @@sequence.succ!
144
+ @sequence = @@sequence.dup
145
+ @comment = nil
146
+ set_comment(comment)
147
+ end
148
+
149
+ def ==(other)
150
+ self.class === other and @sequence == other.sequence
151
+ end
152
+
153
+ def inspect
154
+ "#<%s:0x%x %s %p>" % [
155
+ self.class, object_id,
156
+ @sequence, title
157
+ ]
158
+ end
159
+
160
+ ##
161
+ # Set the comment for this section from the original comment block If
162
+ # the first line contains :section:, strip it and use the rest.
163
+ # Otherwise remove lines up to the line containing :section:, and look
164
+ # for those lines again at the end and remove them. This lets us write
165
+ #
166
+ # # ---------------------
167
+ # # :SECTION: The title
168
+ # # The body
169
+ # # ---------------------
170
+
171
+ def set_comment(comment)
172
+ return unless comment
173
+
174
+ if comment =~ /^#[ \t]*:section:.*\n/
175
+ start = $`
176
+ rest = $'
177
+
178
+ if start.empty?
179
+ @comment = rest
180
+ else
181
+ @comment = rest.sub(/#{start.chomp}\Z/, '')
182
+ end
183
+ else
184
+ @comment = comment
185
+ end
186
+ @comment = nil if @comment.empty?
187
+ end
188
+
189
+ end
190
+
191
+ def initialize
192
+ super
193
+
194
+ @in_files = []
195
+
196
+ @name ||= "unknown"
197
+ @comment ||= ""
198
+ @parent = nil
199
+ @visibility = :public
200
+
201
+ @current_section = Section.new(nil, nil)
202
+ @sections = [ @current_section ]
203
+
204
+ initialize_methods_etc
205
+ initialize_classes_and_modules
206
+ end
207
+
208
+ ##
209
+ # map the class hash to an array externally
210
+
211
+ def classes
212
+ @classes.values
213
+ end
214
+
215
+ ##
216
+ # map the module hash to an array externally
217
+
218
+ def modules
219
+ @modules.values
220
+ end
221
+
222
+ ##
223
+ # return the classes Hash (only to be used internally)
224
+
225
+ def classes_hash
226
+ @classes
227
+ end
228
+ protected :classes_hash
229
+
230
+ ##
231
+ # return the modules Hash (only to be used internally)
232
+
233
+ def modules_hash
234
+ @modules
235
+ end
236
+ protected :modules_hash
237
+
238
+ ##
239
+ # Change the default visibility for new methods
240
+
241
+ def ongoing_visibility=(vis)
242
+ @visibility = vis
243
+ end
244
+
245
+ ##
246
+ # Yields Method and Attr entries matching the list of names in +methods+.
247
+ # Attributes are only returned when +singleton+ is false.
248
+
249
+ def methods_matching(methods, singleton = false)
250
+ count = 0
251
+
252
+ @method_list.each do |m|
253
+ if methods.include? m.name and m.singleton == singleton then
254
+ yield m
255
+ count += 1
256
+ end
257
+ end
258
+
259
+ return if count == methods.size || singleton
260
+
261
+ # perhaps we need to look at attributes
262
+
263
+ @attributes.each do |a|
264
+ yield a if methods.include? a.name
265
+ end
266
+ end
267
+
268
+ ##
269
+ # Given an array +methods+ of method names, set the visibility of the
270
+ # corresponding AnyMethod object
271
+
272
+ def set_visibility_for(methods, vis, singleton = false)
273
+ methods_matching methods, singleton do |m|
274
+ m.visibility = vis
275
+ end
276
+ end
277
+
278
+ ##
279
+ # Record the file that we happen to find it in
280
+
281
+ def record_location(toplevel)
282
+ @in_files << toplevel unless @in_files.include?(toplevel)
283
+ end
284
+
285
+ # Return true if at least part of this thing was defined in +file+
286
+ def defined_in?(file)
287
+ @in_files.include?(file)
288
+ end
289
+
290
+ def add_class(class_type, name, superclass)
291
+ klass = add_class_or_module @classes, class_type, name, superclass
292
+
293
+ #
294
+ # If the parser encounters Container::Item before encountering
295
+ # Container, then it assumes that Container is a module. This
296
+ # may not be the case, so remove Container from the module list
297
+ # if present and transfer any contained classes and modules to
298
+ # the new class.
299
+ #
300
+ mod = @modules.delete(name)
301
+
302
+ if mod then
303
+ klass.classes_hash.update(mod.classes_hash)
304
+ klass.modules_hash.update(mod.modules_hash)
305
+ klass.method_list.concat(mod.method_list)
306
+ end
307
+
308
+ return klass
309
+ end
310
+
311
+ def add_module(class_type, name)
312
+ add_class_or_module(@modules, class_type, name, nil)
313
+ end
314
+
315
+ def add_method(a_method)
316
+ a_method.visibility = @visibility
317
+ add_to(@method_list, a_method)
318
+
319
+ unmatched_alias_list = @unmatched_alias_lists[a_method.name]
320
+ if unmatched_alias_list then
321
+ unmatched_alias_list.each do |unmatched_alias|
322
+ add_alias_impl unmatched_alias, a_method
323
+ @aliases.delete unmatched_alias
324
+ end
325
+
326
+ @unmatched_alias_lists.delete a_method.name
327
+ end
328
+ end
329
+
330
+ def add_attribute(an_attribute)
331
+ add_to(@attributes, an_attribute)
332
+ end
333
+
334
+ def add_alias_impl(an_alias, meth)
335
+ new_meth = AnyMethod.new(an_alias.text, an_alias.new_name)
336
+ new_meth.is_alias_for = meth
337
+ new_meth.singleton = meth.singleton
338
+ new_meth.params = meth.params
339
+ new_meth.comment = "Alias for \##{meth.name}"
340
+ meth.add_alias(new_meth)
341
+ add_method(new_meth)
342
+ end
343
+
344
+ def add_alias(an_alias)
345
+ meth = find_instance_method_named(an_alias.old_name)
346
+
347
+ if meth then
348
+ add_alias_impl(an_alias, meth)
349
+ else
350
+ add_to(@aliases, an_alias)
351
+ unmatched_alias_list = @unmatched_alias_lists[an_alias.old_name] ||= []
352
+ unmatched_alias_list.push(an_alias)
353
+ end
354
+
355
+ an_alias
356
+ end
357
+
358
+ def add_include(an_include)
359
+ add_to(@includes, an_include)
360
+ end
361
+
362
+ def add_constant(const)
363
+ add_to(@constants, const)
364
+ end
365
+
366
+ # Requires always get added to the top-level (file) context
367
+ def add_require(a_require)
368
+ if TopLevel === self then
369
+ add_to @requires, a_require
370
+ else
371
+ parent.add_require a_require
372
+ end
373
+ end
374
+
375
+ def add_class_or_module(collection, class_type, name, superclass=nil)
376
+ cls = collection[name]
377
+
378
+ if cls then
379
+ cls.superclass = superclass unless cls.module?
380
+ puts "Reusing class/module #{name}" if $DEBUG_RDOC
381
+ else
382
+ cls = class_type.new(name, superclass)
383
+ # collection[name] = cls if @document_self && !@done_documenting
384
+ collection[name] = cls if !@done_documenting
385
+ cls.parent = self
386
+ cls.section = @current_section
387
+ end
388
+ cls
389
+ end
390
+
391
+ def add_to(array, thing)
392
+ array << thing if @document_self and not @done_documenting
393
+ thing.parent = self
394
+ thing.section = @current_section
395
+ end
396
+
397
+ # If a class's documentation is turned off after we've started
398
+ # collecting methods etc., we need to remove the ones
399
+ # we have
400
+
401
+ def remove_methods_etc
402
+ initialize_methods_etc
403
+ end
404
+
405
+ def initialize_methods_etc
406
+ @method_list = []
407
+ @attributes = []
408
+ @aliases = []
409
+ @requires = []
410
+ @includes = []
411
+ @constants = []
412
+
413
+ # This Hash maps a method name to a list of unmatched
414
+ # aliases (aliases of a method not yet encountered).
415
+ @unmatched_alias_lists = {}
416
+ end
417
+
418
+ # and remove classes and modules when we see a :nodoc: all
419
+ def remove_classes_and_modules
420
+ initialize_classes_and_modules
421
+ end
422
+
423
+ def initialize_classes_and_modules
424
+ @classes = {}
425
+ @modules = {}
426
+ end
427
+
428
+ # Find a named module
429
+ def find_module_named(name)
430
+ # First check the enclosed modules, then check the module itself,
431
+ # then check the enclosing modules (this mirrors the check done by
432
+ # the Ruby parser)
433
+ res = @modules[name] || @classes[name]
434
+ return res if res
435
+ return self if self.name == name
436
+ find_enclosing_module_named(name)
437
+ end
438
+
439
+ # find a module at a higher scope
440
+ def find_enclosing_module_named(name)
441
+ parent && parent.find_module_named(name)
442
+ end
443
+
444
+ # Iterate over all the classes and modules in
445
+ # this object
446
+
447
+ def each_classmodule
448
+ @modules.each_value {|m| yield m}
449
+ @classes.each_value {|c| yield c}
450
+ end
451
+
452
+ def each_method
453
+ @method_list.each {|m| yield m}
454
+ end
455
+
456
+ def each_attribute
457
+ @attributes.each {|a| yield a}
458
+ end
459
+
460
+ def each_constant
461
+ @constants.each {|c| yield c}
462
+ end
463
+
464
+ # Return the toplevel that owns us
465
+
466
+ def toplevel
467
+ return @toplevel if defined? @toplevel
468
+ @toplevel = self
469
+ @toplevel = @toplevel.parent until TopLevel === @toplevel
470
+ @toplevel
471
+ end
472
+
473
+ # allow us to sort modules by name
474
+ def <=>(other)
475
+ name <=> other.name
476
+ end
477
+
478
+ ##
479
+ # Look up +symbol+. If +method+ is non-nil, then we assume the symbol
480
+ # references a module that contains that method.
481
+
482
+ def find_symbol(symbol, method = nil)
483
+ result = nil
484
+
485
+ case symbol
486
+ when /^::(.*)/ then
487
+ result = toplevel.find_symbol($1)
488
+ when /::/ then
489
+ modules = symbol.split(/::/)
490
+
491
+ unless modules.empty? then
492
+ module_name = modules.shift
493
+ result = find_module_named(module_name)
494
+
495
+ if result then
496
+ modules.each do |name|
497
+ result = result.find_module_named(name)
498
+ break unless result
499
+ end
500
+ end
501
+ end
502
+
503
+ else
504
+ # if a method is specified, then we're definitely looking for
505
+ # a module, otherwise it could be any symbol
506
+ if method
507
+ result = find_module_named(symbol)
508
+ else
509
+ result = find_local_symbol(symbol)
510
+ if result.nil?
511
+ if symbol =~ /^[A-Z]/
512
+ result = parent
513
+ while result && result.name != symbol
514
+ result = result.parent
515
+ end
516
+ end
517
+ end
518
+ end
519
+ end
520
+
521
+ if result and method then
522
+ fail unless result.respond_to? :find_local_symbol
523
+ result = result.find_local_symbol(method)
524
+ end
525
+
526
+ result
527
+ end
528
+
529
+ def find_local_symbol(symbol)
530
+ res = find_method_named(symbol) ||
531
+ find_constant_named(symbol) ||
532
+ find_attribute_named(symbol) ||
533
+ find_module_named(symbol) ||
534
+ find_file_named(symbol)
535
+ end
536
+
537
+ # Handle sections
538
+
539
+ def set_current_section(title, comment)
540
+ @current_section = Section.new(title, comment)
541
+ @sections << @current_section
542
+ end
543
+
544
+ private
545
+
546
+ # Find a named method, or return nil
547
+ def find_method_named(name)
548
+ @method_list.find {|meth| meth.name == name}
549
+ end
550
+
551
+ # Find a named instance method, or return nil
552
+ def find_instance_method_named(name)
553
+ @method_list.find {|meth| meth.name == name && !meth.singleton}
554
+ end
555
+
556
+ # Find a named constant, or return nil
557
+ def find_constant_named(name)
558
+ @constants.find {|m| m.name == name}
559
+ end
560
+
561
+ # Find a named attribute, or return nil
562
+ def find_attribute_named(name)
563
+ @attributes.find {|m| m.name == name}
564
+ end
565
+
566
+ ##
567
+ # Find a named file, or return nil
568
+
569
+ def find_file_named(name)
570
+ toplevel.class.find_file_named(name)
571
+ end
572
+
573
+ end
574
+
575
+ ##
576
+ # A TopLevel context is a source file
577
+
578
+ class TopLevel < Context
579
+ attr_accessor :file_stat
580
+ attr_accessor :file_relative_name
581
+ attr_accessor :file_absolute_name
582
+ attr_accessor :diagram
583
+
584
+ @@all_classes = {}
585
+ @@all_modules = {}
586
+ @@all_files = {}
587
+
588
+ def self.reset
589
+ @@all_classes = {}
590
+ @@all_modules = {}
591
+ @@all_files = {}
592
+ end
593
+
594
+ def initialize(file_name)
595
+ super()
596
+ @name = "TopLevel"
597
+ @file_relative_name = file_name
598
+ @file_absolute_name = file_name
599
+ @file_stat = File.stat(file_name)
600
+ @diagram = nil
601
+ @@all_files[file_name] = self
602
+ end
603
+
604
+ def file_base_name
605
+ File.basename @file_absolute_name
606
+ end
607
+
608
+ def full_name
609
+ nil
610
+ end
611
+
612
+ ##
613
+ # Adding a class or module to a TopLevel is special, as we only want one
614
+ # copy of a particular top-level class. For example, if both file A and
615
+ # file B implement class C, we only want one ClassModule object for C.
616
+ # This code arranges to share classes and modules between files.
617
+
618
+ def add_class_or_module(collection, class_type, name, superclass)
619
+ cls = collection[name]
620
+
621
+ if cls then
622
+ cls.superclass = superclass unless cls.module?
623
+ puts "Reusing class/module #{cls.full_name}" if $DEBUG_RDOC
624
+ else
625
+ if class_type == NormalModule then
626
+ all = @@all_modules
627
+ else
628
+ all = @@all_classes
629
+ end
630
+
631
+ cls = all[name]
632
+
633
+ if !cls then
634
+ cls = class_type.new name, superclass
635
+ all[name] = cls unless @done_documenting
636
+ else
637
+ # If the class has been encountered already, check that its
638
+ # superclass has been set (it may not have been, depending on
639
+ # the context in which it was encountered).
640
+ if class_type == NormalClass
641
+ if !cls.superclass then
642
+ cls.superclass = superclass
643
+ end
644
+ end
645
+ end
646
+
647
+ collection[name] = cls unless @done_documenting
648
+
649
+ cls.parent = self
650
+ end
651
+
652
+ cls
653
+ end
654
+
655
+ def self.all_classes_and_modules
656
+ @@all_classes.values + @@all_modules.values
657
+ end
658
+
659
+ def self.find_class_named(name)
660
+ @@all_classes.each_value do |c|
661
+ res = c.find_class_named(name)
662
+ return res if res
663
+ end
664
+ nil
665
+ end
666
+
667
+ def self.find_file_named(name)
668
+ @@all_files[name]
669
+ end
670
+
671
+ def find_local_symbol(symbol)
672
+ find_class_or_module_named(symbol) || super
673
+ end
674
+
675
+ def find_class_or_module_named(symbol)
676
+ @@all_classes.each_value {|c| return c if c.name == symbol}
677
+ @@all_modules.each_value {|m| return m if m.name == symbol}
678
+ nil
679
+ end
680
+
681
+ ##
682
+ # Find a named module
683
+
684
+ def find_module_named(name)
685
+ find_class_or_module_named(name) || find_enclosing_module_named(name)
686
+ end
687
+
688
+ def inspect
689
+ "#<%s:0x%x %p modules: %p classes: %p>" % [
690
+ self.class, object_id,
691
+ file_base_name,
692
+ @modules.map { |n,m| m },
693
+ @classes.map { |n,c| c }
694
+ ]
695
+ end
696
+
697
+ end
698
+
699
+ ##
700
+ # ClassModule is the base class for objects representing either a class or a
701
+ # module.
702
+
703
+ class ClassModule < Context
704
+
705
+ attr_accessor :diagram
706
+
707
+ def initialize(name, superclass = nil)
708
+ @name = name
709
+ @diagram = nil
710
+ @superclass = superclass
711
+ @comment = ""
712
+ super()
713
+ end
714
+
715
+ def find_class_named(name)
716
+ return self if full_name == name
717
+ @classes.each_value {|c| return c if c.find_class_named(name) }
718
+ nil
719
+ end
720
+
721
+ ##
722
+ # Return the fully qualified name of this class or module
723
+
724
+ def full_name
725
+ if @parent && @parent.full_name
726
+ @parent.full_name + "::" + @name
727
+ else
728
+ @name
729
+ end
730
+ end
731
+
732
+ def http_url(prefix)
733
+ path = full_name.split("::")
734
+ File.join(prefix, *path) + ".html"
735
+ end
736
+
737
+ ##
738
+ # Does this object represent a module?
739
+
740
+ def module?
741
+ false
742
+ end
743
+
744
+ ##
745
+ # Get the superclass of this class. Attempts to retrieve the superclass'
746
+ # real name by following module nesting.
747
+
748
+ def superclass
749
+ raise NoMethodError, "#{full_name} is a module" if module?
750
+
751
+ scope = self
752
+
753
+ begin
754
+ superclass = scope.classes.find { |c| c.name == @superclass }
755
+
756
+ return superclass.full_name if superclass
757
+ scope = scope.parent
758
+ end until scope.nil? or TopLevel === scope
759
+
760
+ @superclass
761
+ end
762
+
763
+ ##
764
+ # Set the superclass of this class
765
+
766
+ def superclass=(superclass)
767
+ raise NoMethodError, "#{full_name} is a module" if module?
768
+
769
+ if @superclass.nil? or @superclass == 'Object' then
770
+ @superclass = superclass
771
+ end
772
+ end
773
+
774
+ def to_s
775
+ "#{self.class}: #{@name} #{@comment} #{super}"
776
+ end
777
+
778
+ end
779
+
780
+ ##
781
+ # Anonymous classes
782
+
783
+ class AnonClass < ClassModule
784
+ end
785
+
786
+ ##
787
+ # Normal classes
788
+
789
+ class NormalClass < ClassModule
790
+
791
+ def inspect
792
+ superclass = @superclass ? " < #{@superclass}" : nil
793
+ "<%s:0x%x class %s%s includes: %p attributes: %p methods: %p aliases: %p>" % [
794
+ self.class, object_id,
795
+ @name, superclass, @includes, @attributes, @method_list, @aliases
796
+ ]
797
+ end
798
+
799
+ end
800
+
801
+ ##
802
+ # Singleton classes
803
+
804
+ class SingleClass < ClassModule
805
+ end
806
+
807
+ ##
808
+ # Module
809
+
810
+ class NormalModule < ClassModule
811
+
812
+ def comment=(comment)
813
+ return if comment.empty?
814
+ comment = @comment << "# ---\n" << comment unless @comment.empty?
815
+
816
+ super
817
+ end
818
+
819
+ def inspect
820
+ "#<%s:0x%x module %s includes: %p attributes: %p methods: %p aliases: %p>" % [
821
+ self.class, object_id,
822
+ @name, @includes, @attributes, @method_list, @aliases
823
+ ]
824
+ end
825
+
826
+ def module?
827
+ true
828
+ end
829
+
830
+ end
831
+
832
+ ##
833
+ # AnyMethod is the base class for objects representing methods
834
+
835
+ class AnyMethod < CodeObject
836
+
837
+ attr_accessor :name
838
+ attr_accessor :visibility
839
+ attr_accessor :block_params
840
+ attr_accessor :dont_rename_initialize
841
+ attr_accessor :singleton
842
+ attr_reader :text
843
+
844
+ # list of other names for this method
845
+ attr_reader :aliases
846
+
847
+ # method we're aliasing
848
+ attr_accessor :is_alias_for
849
+
850
+ attr_overridable :params, :param, :parameters, :parameter
851
+
852
+ attr_accessor :call_seq
853
+
854
+ include TokenStream
855
+
856
+ def initialize(text, name)
857
+ super()
858
+ @text = text
859
+ @name = name
860
+ @token_stream = nil
861
+ @visibility = :public
862
+ @dont_rename_initialize = false
863
+ @block_params = nil
864
+ @aliases = []
865
+ @is_alias_for = nil
866
+ @comment = ""
867
+ @call_seq = nil
868
+ end
869
+
870
+ def <=>(other)
871
+ @name <=> other.name
872
+ end
873
+
874
+ def add_alias(method)
875
+ @aliases << method
876
+ end
877
+
878
+ def inspect
879
+ alias_for = @is_alias_for ? " (alias for #{@is_alias_for.name})" : nil
880
+ "#<%s:0x%x %s%s%s (%s)%s>" % [
881
+ self.class, object_id,
882
+ parent_name,
883
+ singleton ? '::' : '#',
884
+ name,
885
+ visibility,
886
+ alias_for,
887
+ ]
888
+ end
889
+
890
+ def param_seq
891
+ params = params.gsub(/\s*\#.*/, '')
892
+ params = params.tr("\n", " ").squeeze(" ")
893
+ params = "(#{params})" unless p[0] == ?(
894
+
895
+ if block = block_params then # yes, =
896
+ # If this method has explicit block parameters, remove any explicit
897
+ # &block
898
+ params.sub!(/,?\s*&\w+/)
899
+
900
+ block.gsub!(/\s*\#.*/, '')
901
+ block = block.tr("\n", " ").squeeze(" ")
902
+ if block[0] == ?(
903
+ block.sub!(/^\(/, '').sub!(/\)/, '')
904
+ end
905
+ params << " { |#{block}| ... }"
906
+ end
907
+
908
+ params
909
+ end
910
+
911
+ def to_s
912
+ res = self.class.name + ": " + @name + " (" + @text + ")\n"
913
+ res << @comment.to_s
914
+ res
915
+ end
916
+
917
+ end
918
+
919
+ ##
920
+ # GhostMethod represents a method referenced only by a comment
921
+
922
+ class GhostMethod < AnyMethod
923
+ end
924
+
925
+ ##
926
+ # MetaMethod represents a meta-programmed method
927
+
928
+ class MetaMethod < AnyMethod
929
+ end
930
+
931
+ ##
932
+ # Represent an alias, which is an old_name/ new_name pair associated with a
933
+ # particular context
934
+
935
+ class Alias < CodeObject
936
+
937
+ attr_accessor :text, :old_name, :new_name, :comment
938
+
939
+ def initialize(text, old_name, new_name, comment)
940
+ super()
941
+ @text = text
942
+ @old_name = old_name
943
+ @new_name = new_name
944
+ self.comment = comment
945
+ end
946
+
947
+ def inspect
948
+ "#<%s:0x%x %s.alias_method %s, %s>" % [
949
+ self.class, object_id,
950
+ parent.name, @old_name, @new_name,
951
+ ]
952
+ end
953
+
954
+ def to_s
955
+ "alias: #{self.old_name} -> #{self.new_name}\n#{self.comment}"
956
+ end
957
+
958
+ end
959
+
960
+ ##
961
+ # Represent a constant
962
+
963
+ class Constant < CodeObject
964
+ attr_accessor :name, :value
965
+
966
+ def initialize(name, value, comment)
967
+ super()
968
+ @name = name
969
+ @value = value
970
+ self.comment = comment
971
+ end
972
+ end
973
+
974
+ ##
975
+ # Represent attributes
976
+
977
+ class Attr < CodeObject
978
+ attr_accessor :text, :name, :rw, :visibility
979
+
980
+ def initialize(text, name, rw, comment)
981
+ super()
982
+ @text = text
983
+ @name = name
984
+ @rw = rw
985
+ @visibility = :public
986
+ self.comment = comment
987
+ end
988
+
989
+ def <=>(other)
990
+ self.name <=> other.name
991
+ end
992
+
993
+ def inspect
994
+ attr = case rw
995
+ when 'RW' then :attr_accessor
996
+ when 'R' then :attr_reader
997
+ when 'W' then :attr_writer
998
+ else
999
+ " (#{rw})"
1000
+ end
1001
+
1002
+ "#<%s:0x%x %s.%s :%s>" % [
1003
+ self.class, object_id,
1004
+ parent_name, attr, @name,
1005
+ ]
1006
+ end
1007
+
1008
+ def to_s
1009
+ "attr: #{self.name} #{self.rw}\n#{self.comment}"
1010
+ end
1011
+
1012
+ end
1013
+
1014
+ ##
1015
+ # A required file
1016
+
1017
+ class Require < CodeObject
1018
+ attr_accessor :name
1019
+
1020
+ def initialize(name, comment)
1021
+ super()
1022
+ @name = name.gsub(/'|"/, "") #'
1023
+ self.comment = comment
1024
+ end
1025
+
1026
+ def inspect
1027
+ "#<%s:0x%x require '%s' in %s>" % [
1028
+ self.class,
1029
+ object_id,
1030
+ @name,
1031
+ parent_file_name,
1032
+ ]
1033
+ end
1034
+
1035
+ end
1036
+
1037
+ ##
1038
+ # An included module
1039
+
1040
+ class Include < CodeObject
1041
+
1042
+ attr_accessor :name
1043
+
1044
+ def initialize(name, comment)
1045
+ super()
1046
+ @name = name
1047
+ self.comment = comment
1048
+
1049
+ end
1050
+
1051
+ def inspect
1052
+ "#<%s:0x%x %s.include %s>" % [
1053
+ self.class,
1054
+ object_id,
1055
+ parent_name, @name,
1056
+ ]
1057
+ end
1058
+
1059
+ end
1060
+
1061
+ end