rb2exe 0.1.11 → 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1008) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +22 -0
  3. data/README.md +18 -22
  4. data/bin/build +24 -0
  5. data/bin/decompress +17 -0
  6. data/bin/installer +19 -0
  7. data/bin/rb2exe +3 -0
  8. data/bin/rb2exe.rb +49 -0
  9. data/bin/traveling-ruby-2.2.2/bin.real/bundle +23 -0
  10. data/bin/traveling-ruby-2.2.2/bin.real/bundler +23 -0
  11. data/bin/traveling-ruby-2.2.2/bin.real/gem +25 -0
  12. data/bin/traveling-ruby-2.2.2/bin.real/irb +11 -0
  13. data/bin/traveling-ruby-2.2.2/bin.real/nokogiri +23 -0
  14. data/bin/traveling-ruby-2.2.2/bin.real/posix-spawn-benchmark +23 -0
  15. data/bin/traveling-ruby-2.2.2/bin.real/puma +23 -0
  16. data/bin/traveling-ruby-2.2.2/bin.real/pumactl +23 -0
  17. data/bin/traveling-ruby-2.2.2/bin.real/rackup +23 -0
  18. data/bin/traveling-ruby-2.2.2/bin.real/rake +33 -0
  19. data/bin/traveling-ruby-2.2.2/bin.real/redcarpet +23 -0
  20. data/bin/traveling-ruby-2.2.2/bin.real/redcloth +23 -0
  21. data/bin/traveling-ruby-2.2.2/bin.real/ruby +0 -0
  22. data/bin/traveling-ruby-2.2.2/bin.real/thin +23 -0
  23. data/bin/traveling-ruby-2.2.2/bin.real/unicorn +23 -0
  24. data/bin/traveling-ruby-2.2.2/bin.real/unicorn_rails +23 -0
  25. data/bin/traveling-ruby-2.2.2/bin/gem +6 -0
  26. data/bin/traveling-ruby-2.2.2/bin/irb +6 -0
  27. data/bin/traveling-ruby-2.2.2/bin/rake +6 -0
  28. data/bin/traveling-ruby-2.2.2/bin/ruby +6 -0
  29. data/bin/traveling-ruby-2.2.2/bin/ruby_environment +33 -0
  30. data/bin/traveling-ruby-2.2.2/info/GEM_EXTENSION_API_VERSION +1 -0
  31. data/bin/traveling-ruby-2.2.2/info/GEM_PLATFORM +1 -0
  32. data/bin/traveling-ruby-2.2.2/info/RUBY_ARCH +1 -0
  33. data/bin/traveling-ruby-2.2.2/info/RUBY_COMPAT_VERSION +1 -0
  34. data/bin/traveling-ruby-2.2.2/lib/ca-bundle.crt +13885 -0
  35. data/bin/traveling-ruby-2.2.2/lib/libffi.so.6 +0 -0
  36. data/bin/traveling-ruby-2.2.2/lib/libreadline.so.5 +0 -0
  37. data/bin/traveling-ruby-2.2.2/lib/libtermcap.so.2 +0 -0
  38. data/bin/traveling-ruby-2.2.2/lib/libz.so.1 +0 -0
  39. data/bin/traveling-ruby-2.2.2/lib/restore_environment.rb +17 -0
  40. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/English.rb +185 -0
  41. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/abbrev.rb +131 -0
  42. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/base64.rb +91 -0
  43. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/benchmark.rb +557 -0
  44. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/bigdecimal/jacobian.rb +87 -0
  45. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/bigdecimal/ludcmp.rb +88 -0
  46. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/bigdecimal/math.rb +231 -0
  47. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/bigdecimal/newton.rb +79 -0
  48. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/bigdecimal/util.rb +127 -0
  49. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/cgi.rb +295 -0
  50. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/cgi/cookie.rb +170 -0
  51. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/cgi/core.rb +880 -0
  52. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/cgi/html.rb +1034 -0
  53. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/cgi/session.rb +531 -0
  54. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/cgi/session/pstore.rb +100 -0
  55. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/cgi/util.rb +194 -0
  56. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/cmath.rb +400 -0
  57. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/csv.rb +2341 -0
  58. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/date.rb +60 -0
  59. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/debug.rb +1087 -0
  60. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/delegate.rb +417 -0
  61. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/digest.rb +108 -0
  62. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/digest/sha2.rb +107 -0
  63. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/drb.rb +2 -0
  64. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/drb/acl.rb +232 -0
  65. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/drb/drb.rb +1864 -0
  66. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/drb/eq.rb +14 -0
  67. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/drb/extserv.rb +43 -0
  68. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/drb/extservm.rb +93 -0
  69. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/drb/gw.rb +160 -0
  70. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/drb/invokemethod.rb +34 -0
  71. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/drb/observer.rb +25 -0
  72. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/drb/ssl.rb +345 -0
  73. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/drb/timeridconv.rb +101 -0
  74. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/drb/unix.rb +117 -0
  75. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/e2mmap.rb +172 -0
  76. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/erb.rb +1022 -0
  77. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/expect.rb +71 -0
  78. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/fiddle.rb +55 -0
  79. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/fiddle/closure.rb +48 -0
  80. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/fiddle/cparser.rb +176 -0
  81. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/fiddle/function.rb +17 -0
  82. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/fiddle/import.rb +314 -0
  83. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/fiddle/pack.rb +128 -0
  84. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/fiddle/struct.rb +243 -0
  85. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/fiddle/types.rb +71 -0
  86. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/fiddle/value.rb +112 -0
  87. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/fileutils.rb +1761 -0
  88. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/find.rb +88 -0
  89. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/forwardable.rb +289 -0
  90. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/getoptlong.rb +612 -0
  91. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/bigdecimal.so +0 -0
  92. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/continuation.so +0 -0
  93. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/date_core.so +0 -0
  94. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/digest.so +0 -0
  95. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/digest/bubblebabble.so +0 -0
  96. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/digest/md5.so +0 -0
  97. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/digest/rmd160.so +0 -0
  98. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/digest/sha1.so +0 -0
  99. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/digest/sha2.so +0 -0
  100. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/big5.so +0 -0
  101. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/cp949.so +0 -0
  102. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/emacs_mule.so +0 -0
  103. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/encdb.so +0 -0
  104. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/euc_jp.so +0 -0
  105. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/euc_kr.so +0 -0
  106. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/euc_tw.so +0 -0
  107. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/gb18030.so +0 -0
  108. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/gb2312.so +0 -0
  109. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/gbk.so +0 -0
  110. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_1.so +0 -0
  111. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_10.so +0 -0
  112. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_11.so +0 -0
  113. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_13.so +0 -0
  114. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_14.so +0 -0
  115. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_15.so +0 -0
  116. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_16.so +0 -0
  117. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_2.so +0 -0
  118. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_3.so +0 -0
  119. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_4.so +0 -0
  120. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_5.so +0 -0
  121. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_6.so +0 -0
  122. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_7.so +0 -0
  123. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_8.so +0 -0
  124. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/iso_8859_9.so +0 -0
  125. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/koi8_r.so +0 -0
  126. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/koi8_u.so +0 -0
  127. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/shift_jis.so +0 -0
  128. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/big5.so +0 -0
  129. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/chinese.so +0 -0
  130. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/emoji.so +0 -0
  131. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/emoji_iso2022_kddi.so +0 -0
  132. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/emoji_sjis_docomo.so +0 -0
  133. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/emoji_sjis_kddi.so +0 -0
  134. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/emoji_sjis_softbank.so +0 -0
  135. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/escape.so +0 -0
  136. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/gb18030.so +0 -0
  137. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/gbk.so +0 -0
  138. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/iso2022.so +0 -0
  139. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/japanese.so +0 -0
  140. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/japanese_euc.so +0 -0
  141. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/japanese_sjis.so +0 -0
  142. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/korean.so +0 -0
  143. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/single_byte.so +0 -0
  144. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/transdb.so +0 -0
  145. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/utf8_mac.so +0 -0
  146. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/trans/utf_16_32.so +0 -0
  147. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/utf_16be.so +0 -0
  148. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/utf_16le.so +0 -0
  149. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/utf_32be.so +0 -0
  150. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/utf_32le.so +0 -0
  151. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/windows_1251.so +0 -0
  152. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/enc/windows_31j.so +0 -0
  153. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/etc.so +0 -0
  154. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/fcntl.so +0 -0
  155. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/fiber.so +0 -0
  156. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/fiddle.so +0 -0
  157. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/io/console.so +0 -0
  158. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/io/nonblock.so +0 -0
  159. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/io/wait.so +0 -0
  160. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/json/ext/generator.so +0 -0
  161. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/json/ext/parser.so +0 -0
  162. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/mathn/complex.so +0 -0
  163. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/mathn/rational.so +0 -0
  164. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/nkf.so +0 -0
  165. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/objspace.so +0 -0
  166. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/openssl.so +0 -0
  167. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/pathname.so +0 -0
  168. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/psych.so +0 -0
  169. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/pty.so +0 -0
  170. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/racc/cparse.so +0 -0
  171. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/rbconfig.rb +279 -0
  172. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/rbconfig/sizeof.so +0 -0
  173. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/readline.so +0 -0
  174. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/ripper.so +0 -0
  175. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/socket.so +0 -0
  176. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/stringio.so +0 -0
  177. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/strscan.so +0 -0
  178. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/syslog.so +0 -0
  179. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/thread.so +0 -0
  180. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/i686-linux/zlib.so +0 -0
  181. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/io/console/size.rb +22 -0
  182. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/ipaddr.rb +658 -0
  183. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb.rb +703 -0
  184. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/cmd/chws.rb +33 -0
  185. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/cmd/fork.rb +38 -0
  186. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/cmd/help.rb +41 -0
  187. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/cmd/load.rb +66 -0
  188. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/cmd/nop.rb +38 -0
  189. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/cmd/pushws.rb +40 -0
  190. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/cmd/subirb.rb +42 -0
  191. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/completion.rb +227 -0
  192. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/context.rb +419 -0
  193. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/ext/change-ws.rb +45 -0
  194. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/ext/history.rb +118 -0
  195. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/ext/loader.rb +128 -0
  196. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/ext/math-mode.rb +47 -0
  197. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/ext/multi-irb.rb +265 -0
  198. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/ext/save-history.rb +103 -0
  199. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/ext/tracer.rb +71 -0
  200. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/ext/use-loader.rb +73 -0
  201. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/ext/workspaces.rb +66 -0
  202. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/extend-command.rb +308 -0
  203. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/frame.rb +80 -0
  204. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/help.rb +36 -0
  205. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/init.rb +304 -0
  206. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/input-method.rb +191 -0
  207. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/inspector.rb +131 -0
  208. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/lc/error.rb +31 -0
  209. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/lc/help-message +50 -0
  210. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/lc/ja/encoding_aliases.rb +10 -0
  211. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/lc/ja/error.rb +30 -0
  212. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/lc/ja/help-message +53 -0
  213. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/locale.rb +181 -0
  214. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/magic-file.rb +37 -0
  215. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/notifier.rb +231 -0
  216. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/output-method.rb +91 -0
  217. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/ruby-lex.rb +1170 -0
  218. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/ruby-token.rb +266 -0
  219. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/slex.rb +281 -0
  220. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/src_encoding.rb +4 -0
  221. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/version.rb +15 -0
  222. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/workspace.rb +114 -0
  223. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/ws-for-case-2.rb +14 -0
  224. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/irb/xmp.rb +169 -0
  225. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json.rb +62 -0
  226. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/add/bigdecimal.rb +28 -0
  227. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/add/complex.rb +22 -0
  228. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/add/core.rb +11 -0
  229. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/add/date.rb +34 -0
  230. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/add/date_time.rb +50 -0
  231. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/add/exception.rb +31 -0
  232. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/add/ostruct.rb +31 -0
  233. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/add/range.rb +29 -0
  234. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/add/rational.rb +22 -0
  235. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/add/regexp.rb +30 -0
  236. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/add/struct.rb +30 -0
  237. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/add/symbol.rb +25 -0
  238. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/add/time.rb +38 -0
  239. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/common.rb +484 -0
  240. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/ext.rb +21 -0
  241. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/generic_object.rb +70 -0
  242. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/json/version.rb +8 -0
  243. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/kconv.rb +282 -0
  244. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/logger.rb +737 -0
  245. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/mathn.rb +191 -0
  246. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/matrix.rb +2161 -0
  247. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/matrix/eigenvalue_decomposition.rb +882 -0
  248. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/matrix/lup_decomposition.rb +218 -0
  249. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/mkmf.rb +2677 -0
  250. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/monitor.rb +300 -0
  251. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/mutex_m.rb +111 -0
  252. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/ftp.rb +1126 -0
  253. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/http.rb +1559 -0
  254. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/http/backward.rb +25 -0
  255. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/http/exceptions.rb +25 -0
  256. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/http/generic_request.rb +332 -0
  257. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/http/header.rb +452 -0
  258. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/http/proxy_delta.rb +16 -0
  259. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/http/request.rb +20 -0
  260. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/http/requests.rb +122 -0
  261. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/http/response.rb +414 -0
  262. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/http/responses.rb +273 -0
  263. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/https.rb +22 -0
  264. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/imap.rb +3616 -0
  265. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/pop.rb +1021 -0
  266. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/protocol.rb +420 -0
  267. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/smtp.rb +1073 -0
  268. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/net/telnet.rb +763 -0
  269. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/observer.rb +203 -0
  270. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/open-uri.rb +801 -0
  271. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/open3.rb +663 -0
  272. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/openssl.rb +24 -0
  273. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/openssl/bn.rb +45 -0
  274. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/openssl/buffering.rb +457 -0
  275. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/openssl/cipher.rb +65 -0
  276. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/openssl/config.rb +472 -0
  277. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/openssl/digest.rb +88 -0
  278. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/openssl/ssl.rb +308 -0
  279. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/openssl/x509.rb +182 -0
  280. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/optionparser.rb +1 -0
  281. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/optparse.rb +1997 -0
  282. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/optparse/ac.rb +50 -0
  283. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/optparse/date.rb +17 -0
  284. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/optparse/shellwords.rb +6 -0
  285. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/optparse/time.rb +10 -0
  286. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/optparse/uri.rb +6 -0
  287. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/optparse/version.rb +70 -0
  288. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/ostruct.rb +286 -0
  289. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/pathname.rb +579 -0
  290. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/pp.rb +546 -0
  291. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/prettyprint.rb +554 -0
  292. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/prime.rb +487 -0
  293. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/profile.rb +10 -0
  294. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/profiler.rb +148 -0
  295. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/pstore.rb +484 -0
  296. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych.rb +498 -0
  297. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/class_loader.rb +101 -0
  298. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/coder.rb +94 -0
  299. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/core_ext.rb +35 -0
  300. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/deprecated.rb +85 -0
  301. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/exception.rb +13 -0
  302. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/handler.rb +249 -0
  303. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/handlers/document_stream.rb +22 -0
  304. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/handlers/recorder.rb +39 -0
  305. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/json/ruby_events.rb +19 -0
  306. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/json/stream.rb +16 -0
  307. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/json/tree_builder.rb +12 -0
  308. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/json/yaml_events.rb +29 -0
  309. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/nodes.rb +77 -0
  310. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/nodes/alias.rb +18 -0
  311. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/nodes/document.rb +60 -0
  312. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/nodes/mapping.rb +56 -0
  313. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/nodes/node.rb +55 -0
  314. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/nodes/scalar.rb +67 -0
  315. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/nodes/sequence.rb +81 -0
  316. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/nodes/stream.rb +37 -0
  317. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/omap.rb +4 -0
  318. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/parser.rb +51 -0
  319. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/scalar_scanner.rb +149 -0
  320. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/set.rb +4 -0
  321. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/stream.rb +37 -0
  322. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/streaming.rb +27 -0
  323. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/syntax_error.rb +21 -0
  324. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/tree_builder.rb +96 -0
  325. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/visitors.rb +6 -0
  326. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/visitors/depth_first.rb +26 -0
  327. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/visitors/emitter.rb +51 -0
  328. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/visitors/json_tree.rb +24 -0
  329. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/visitors/to_ruby.rb +389 -0
  330. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/visitors/visitor.rb +19 -0
  331. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/visitors/yaml_tree.rb +565 -0
  332. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/psych/y.rb +9 -0
  333. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/racc/parser.rb +622 -0
  334. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake.rb +79 -0
  335. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/alt_system.rb +110 -0
  336. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/application.rb +790 -0
  337. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/backtrace.rb +23 -0
  338. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/clean.rb +76 -0
  339. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/cloneable.rb +16 -0
  340. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/contrib/compositepublisher.rb +21 -0
  341. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/contrib/ftptools.rb +137 -0
  342. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/contrib/publisher.rb +81 -0
  343. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/contrib/rubyforgepublisher.rb +18 -0
  344. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/contrib/sshpublisher.rb +61 -0
  345. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/contrib/sys.rb +4 -0
  346. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/cpu_counter.rb +125 -0
  347. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/default_loader.rb +14 -0
  348. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/dsl_definition.rb +201 -0
  349. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/early_time.rb +21 -0
  350. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/ext/core.rb +25 -0
  351. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/ext/module.rb +2 -0
  352. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/ext/pathname.rb +25 -0
  353. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/ext/string.rb +173 -0
  354. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/ext/time.rb +16 -0
  355. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/file_creation_task.rb +24 -0
  356. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/file_list.rb +428 -0
  357. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/file_task.rb +46 -0
  358. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/file_utils.rb +128 -0
  359. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/file_utils_ext.rb +144 -0
  360. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/gempackagetask.rb +4 -0
  361. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/invocation_chain.rb +56 -0
  362. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/invocation_exception_mixin.rb +16 -0
  363. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/late_time.rb +17 -0
  364. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/linked_list.rb +103 -0
  365. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/loaders/makefile.rb +40 -0
  366. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/multi_task.rb +13 -0
  367. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/name_space.rb +38 -0
  368. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/packagetask.rb +199 -0
  369. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/pathmap.rb +3 -0
  370. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/phony.rb +15 -0
  371. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/private_reader.rb +20 -0
  372. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/promise.rb +99 -0
  373. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/pseudo_status.rb +29 -0
  374. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/rake_module.rb +38 -0
  375. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/rake_test_loader.rb +22 -0
  376. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/rdoctask.rb +4 -0
  377. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/ruby182_test_unit_fix.rb +29 -0
  378. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/rule_recursion_overflow_error.rb +20 -0
  379. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/runtest.rb +27 -0
  380. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/scope.rb +42 -0
  381. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/task.rb +383 -0
  382. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/task_argument_error.rb +7 -0
  383. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/task_arguments.rb +98 -0
  384. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/task_manager.rb +310 -0
  385. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/tasklib.rb +24 -0
  386. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/testtask.rb +212 -0
  387. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/thread_history_display.rb +48 -0
  388. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/thread_pool.rb +164 -0
  389. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/trace_output.rb +22 -0
  390. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/version.rb +7 -0
  391. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rake/win32.rb +56 -0
  392. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rbconfig/datadir.rb +13 -0
  393. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc.rb +185 -0
  394. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/alias.rb +111 -0
  395. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/anon_class.rb +10 -0
  396. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/any_method.rb +316 -0
  397. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/attr.rb +175 -0
  398. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/class_module.rb +799 -0
  399. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/code_object.rb +429 -0
  400. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/code_objects.rb +5 -0
  401. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/comment.rb +229 -0
  402. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/constant.rb +186 -0
  403. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/context.rb +1211 -0
  404. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/context/section.rb +238 -0
  405. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/cross_reference.rb +183 -0
  406. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/encoding.rb +99 -0
  407. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/erb_partial.rb +18 -0
  408. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/erbio.rb +37 -0
  409. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/extend.rb +9 -0
  410. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/generator.rb +51 -0
  411. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/ghost_method.rb +6 -0
  412. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/i18n.rb +9 -0
  413. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/i18n/locale.rb +101 -0
  414. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/i18n/text.rb +125 -0
  415. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/include.rb +9 -0
  416. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/known_classes.rb +72 -0
  417. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markdown.rb +16133 -0
  418. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markdown/entities.rb +2131 -0
  419. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markdown/literals_1_9.rb +420 -0
  420. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup.rb +869 -0
  421. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/attr_changer.rb +22 -0
  422. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/attr_span.rb +29 -0
  423. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/attribute_manager.rb +343 -0
  424. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/attributes.rb +70 -0
  425. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/blank_line.rb +27 -0
  426. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/block_quote.rb +14 -0
  427. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/document.rb +164 -0
  428. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/formatter.rb +264 -0
  429. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/formatter_test_case.rb +767 -0
  430. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/hard_break.rb +31 -0
  431. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/heading.rb +78 -0
  432. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/include.rb +42 -0
  433. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/indented_paragraph.rb +47 -0
  434. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/inline.rb +1 -0
  435. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/list.rb +101 -0
  436. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/list_item.rb +99 -0
  437. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/paragraph.rb +28 -0
  438. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/parser.rb +558 -0
  439. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/pre_process.rb +293 -0
  440. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/raw.rb +69 -0
  441. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/rule.rb +20 -0
  442. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/special.rb +40 -0
  443. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/text_formatter_test_case.rb +114 -0
  444. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/to_ansi.rb +93 -0
  445. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/to_bs.rb +78 -0
  446. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/to_html.rb +398 -0
  447. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/to_html_crossref.rb +160 -0
  448. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/to_html_snippet.rb +284 -0
  449. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/to_joined_paragraph.rb +71 -0
  450. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/to_label.rb +74 -0
  451. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/to_markdown.rb +191 -0
  452. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/to_rdoc.rb +333 -0
  453. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/to_table_of_contents.rb +87 -0
  454. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/to_test.rb +69 -0
  455. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/to_tt_only.rb +120 -0
  456. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/markup/verbatim.rb +83 -0
  457. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/meta_method.rb +6 -0
  458. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/method_attr.rb +418 -0
  459. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/mixin.rb +120 -0
  460. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/normal_class.rb +92 -0
  461. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/normal_module.rb +73 -0
  462. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/options.rb +1251 -0
  463. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/parser.rb +310 -0
  464. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/parser/c.rb +1229 -0
  465. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/parser/changelog.rb +198 -0
  466. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/parser/markdown.rb +23 -0
  467. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/parser/rd.rb +22 -0
  468. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/parser/ruby.rb +2160 -0
  469. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/parser/ruby_tools.rb +167 -0
  470. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/parser/simple.rb +61 -0
  471. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/parser/text.rb +11 -0
  472. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/rd.rb +99 -0
  473. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/rd/block_parser.rb +1055 -0
  474. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/rd/inline.rb +71 -0
  475. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/rd/inline_parser.rb +1207 -0
  476. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/rdoc.rb +570 -0
  477. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/require.rb +51 -0
  478. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/ri.rb +20 -0
  479. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/ri/driver.rb +1497 -0
  480. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/ri/formatter.rb +5 -0
  481. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/ri/paths.rb +187 -0
  482. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/ri/store.rb +6 -0
  483. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/ri/task.rb +71 -0
  484. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/ruby_lex.rb +1377 -0
  485. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/ruby_token.rb +460 -0
  486. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/rubygems_hook.rb +253 -0
  487. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/servlet.rb +441 -0
  488. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/single_class.rb +25 -0
  489. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/stats.rb +461 -0
  490. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/stats/normal.rb +59 -0
  491. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/stats/quiet.rb +59 -0
  492. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/stats/verbose.rb +45 -0
  493. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/store.rb +979 -0
  494. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/task.rb +330 -0
  495. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/test_case.rb +217 -0
  496. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/text.rb +324 -0
  497. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/token_stream.rb +95 -0
  498. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/tom_doc.rb +257 -0
  499. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rdoc/top_level.rb +282 -0
  500. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/resolv-replace.rb +74 -0
  501. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/resolv.rb +2836 -0
  502. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/attlistdecl.rb +62 -0
  503. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/attribute.rb +191 -0
  504. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/cdata.rb +67 -0
  505. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/child.rb +96 -0
  506. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/comment.rb +79 -0
  507. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/doctype.rb +269 -0
  508. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/document.rb +290 -0
  509. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/dtd/attlistdecl.rb +10 -0
  510. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/dtd/dtd.rb +46 -0
  511. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/dtd/elementdecl.rb +17 -0
  512. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/dtd/entitydecl.rb +56 -0
  513. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/dtd/notationdecl.rb +39 -0
  514. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/element.rb +1240 -0
  515. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/encoding.rb +50 -0
  516. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/entity.rb +173 -0
  517. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/formatters/default.rb +111 -0
  518. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/formatters/pretty.rb +141 -0
  519. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/formatters/transitive.rb +57 -0
  520. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/functions.rb +394 -0
  521. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/instruction.rb +70 -0
  522. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/light/node.rb +195 -0
  523. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/namespace.rb +47 -0
  524. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/node.rb +75 -0
  525. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/output.rb +29 -0
  526. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/parent.rb +165 -0
  527. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/parseexception.rb +51 -0
  528. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/parsers/baseparser.rb +532 -0
  529. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/parsers/lightparser.rb +58 -0
  530. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/parsers/pullparser.rb +196 -0
  531. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/parsers/sax2parser.rb +272 -0
  532. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/parsers/streamparser.rb +52 -0
  533. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/parsers/treeparser.rb +100 -0
  534. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/parsers/ultralightparser.rb +56 -0
  535. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/parsers/xpathparser.rb +656 -0
  536. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/quickpath.rb +265 -0
  537. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/rexml.rb +31 -0
  538. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/sax2listener.rb +97 -0
  539. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/security.rb +27 -0
  540. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/source.rb +296 -0
  541. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/streamlistener.rb +92 -0
  542. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/syncenumerator.rb +32 -0
  543. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/text.rb +425 -0
  544. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/undefinednamespaceexception.rb +8 -0
  545. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/validation/relaxng.rb +538 -0
  546. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/validation/validation.rb +143 -0
  547. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/validation/validationexception.rb +9 -0
  548. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/xmldecl.rb +115 -0
  549. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/xmltokens.rb +84 -0
  550. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/xpath.rb +80 -0
  551. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rexml/xpath_parser.rb +703 -0
  552. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rinda/rinda.rb +327 -0
  553. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rinda/ring.rb +480 -0
  554. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rinda/tuplespace.rb +642 -0
  555. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/ripper.rb +73 -0
  556. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/ripper/core.rb +70 -0
  557. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/ripper/filter.rb +77 -0
  558. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/ripper/lexer.rb +186 -0
  559. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/ripper/sexp.rb +118 -0
  560. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss.rb +91 -0
  561. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/0.9.rb +461 -0
  562. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/1.0.rb +484 -0
  563. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/2.0.rb +142 -0
  564. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/atom.rb +839 -0
  565. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/content.rb +33 -0
  566. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/content/1.0.rb +9 -0
  567. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/content/2.0.rb +11 -0
  568. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/converter.rb +170 -0
  569. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/dublincore.rb +163 -0
  570. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/dublincore/1.0.rb +12 -0
  571. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/dublincore/2.0.rb +12 -0
  572. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/dublincore/atom.rb +16 -0
  573. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/image.rb +197 -0
  574. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/itunes.rb +412 -0
  575. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker.rb +78 -0
  576. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/0.9.rb +508 -0
  577. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/1.0.rb +435 -0
  578. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/2.0.rb +223 -0
  579. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/atom.rb +172 -0
  580. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/base.rb +944 -0
  581. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/content.rb +21 -0
  582. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/dublincore.rb +121 -0
  583. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/entry.rb +163 -0
  584. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/feed.rb +426 -0
  585. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/image.rb +111 -0
  586. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/itunes.rb +242 -0
  587. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/slash.rb +33 -0
  588. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/syndication.rb +18 -0
  589. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/taxonomy.rb +118 -0
  590. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/maker/trackback.rb +61 -0
  591. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/parser.rb +570 -0
  592. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/rexmlparser.rb +49 -0
  593. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/rss.rb +1352 -0
  594. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/slash.rb +51 -0
  595. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/syndication.rb +68 -0
  596. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/taxonomy.rb +147 -0
  597. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/trackback.rb +290 -0
  598. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/utils.rb +199 -0
  599. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/xml-stylesheet.rb +105 -0
  600. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/xml.rb +71 -0
  601. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/xmlparser.rb +94 -0
  602. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rss/xmlscanner.rb +121 -0
  603. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems.rb +1245 -0
  604. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/available_set.rb +164 -0
  605. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/basic_specification.rb +290 -0
  606. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/command.rb +582 -0
  607. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/command_manager.rb +218 -0
  608. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/build_command.rb +60 -0
  609. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/cert_command.rb +276 -0
  610. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/check_command.rb +93 -0
  611. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/cleanup_command.rb +165 -0
  612. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/contents_command.rb +190 -0
  613. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/dependency_command.rb +207 -0
  614. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/environment_command.rb +158 -0
  615. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/fetch_command.rb +77 -0
  616. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/generate_index_command.rb +84 -0
  617. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/help_command.rb +384 -0
  618. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/install_command.rb +347 -0
  619. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/list_command.rb +40 -0
  620. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/lock_command.rb +110 -0
  621. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/mirror_command.rb +25 -0
  622. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/open_command.rb +74 -0
  623. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/outdated_command.rb +32 -0
  624. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/owner_command.rb +99 -0
  625. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/pristine_command.rb +165 -0
  626. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/push_command.rb +98 -0
  627. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/query_command.rb +343 -0
  628. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/rdoc_command.rb +96 -0
  629. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/search_command.rb +40 -0
  630. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/server_command.rb +86 -0
  631. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/setup_command.rb +483 -0
  632. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/sources_command.rb +210 -0
  633. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/specification_command.rb +145 -0
  634. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/stale_command.rb +38 -0
  635. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/uninstall_command.rb +164 -0
  636. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/unpack_command.rb +182 -0
  637. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/update_command.rb +277 -0
  638. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/which_command.rb +90 -0
  639. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/commands/yank_command.rb +107 -0
  640. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/compatibility.rb +59 -0
  641. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/config_file.rb +483 -0
  642. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_gem.rb +73 -0
  643. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb +139 -0
  644. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/defaults.rb +177 -0
  645. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/dependency.rb +334 -0
  646. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/dependency_installer.rb +480 -0
  647. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/dependency_list.rb +240 -0
  648. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/deprecate.rb +70 -0
  649. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/doctor.rb +131 -0
  650. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/errors.rb +137 -0
  651. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/exceptions.rb +270 -0
  652. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/ext.rb +18 -0
  653. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/ext/build_error.rb +6 -0
  654. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/ext/builder.rb +218 -0
  655. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/ext/cmake_builder.rb +16 -0
  656. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/ext/configure_builder.rb +23 -0
  657. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/ext/ext_conf_builder.rb +78 -0
  658. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/ext/rake_builder.rb +36 -0
  659. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/gem_runner.rb +81 -0
  660. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/gemcutter_utilities.rb +154 -0
  661. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/indexer.rb +498 -0
  662. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/install_default_message.rb +12 -0
  663. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/install_message.rb +12 -0
  664. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/install_update_options.rb +186 -0
  665. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/installer.rb +819 -0
  666. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/installer_test_case.rb +193 -0
  667. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/local_remote_options.rb +148 -0
  668. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/mock_gem_ui.rb +88 -0
  669. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/name_tuple.rb +123 -0
  670. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/package.rb +613 -0
  671. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/package/digest_io.rb +64 -0
  672. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/package/file_source.rb +33 -0
  673. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/package/io_source.rb +45 -0
  674. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/package/old.rb +178 -0
  675. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/package/source.rb +3 -0
  676. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/package/tar_header.rb +229 -0
  677. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/package/tar_reader.rb +123 -0
  678. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/package/tar_reader/entry.rb +147 -0
  679. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/package/tar_test_case.rb +137 -0
  680. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/package/tar_writer.rb +326 -0
  681. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/package_task.rb +128 -0
  682. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/path_support.rb +87 -0
  683. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/platform.rb +204 -0
  684. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/psych_additions.rb +9 -0
  685. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/psych_tree.rb +31 -0
  686. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/rdoc.rb +335 -0
  687. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/remote_fetcher.rb +398 -0
  688. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/request.rb +244 -0
  689. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/request/connection_pools.rb +83 -0
  690. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/request/http_pool.rb +47 -0
  691. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/request/https_pool.rb +10 -0
  692. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/request_set.rb +413 -0
  693. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/request_set/gem_dependency_api.rb +801 -0
  694. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/request_set/lockfile.rb +650 -0
  695. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/requirement.rb +273 -0
  696. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver.rb +485 -0
  697. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/activation_request.rb +172 -0
  698. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/api_set.rb +125 -0
  699. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/api_specification.rb +85 -0
  700. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/best_set.rb +78 -0
  701. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/composed_set.rb +66 -0
  702. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/conflict.rb +160 -0
  703. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/current_set.rb +13 -0
  704. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/dependency_request.rb +116 -0
  705. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/git_set.rb +122 -0
  706. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/git_specification.rb +59 -0
  707. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/index_set.rb +80 -0
  708. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/index_specification.rb +69 -0
  709. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/installed_specification.rb +58 -0
  710. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/installer_set.rb +224 -0
  711. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/local_specification.rb +41 -0
  712. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/lock_set.rb +84 -0
  713. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/lock_specification.rb +84 -0
  714. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/requirement_list.rb +81 -0
  715. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/set.rb +56 -0
  716. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/spec_specification.rb +56 -0
  717. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/specification.rb +110 -0
  718. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/stats.rb +44 -0
  719. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/vendor_set.rb +87 -0
  720. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/resolver/vendor_specification.rb +24 -0
  721. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/security.rb +595 -0
  722. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/security/policies.rb +115 -0
  723. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/security/policy.rb +295 -0
  724. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/security/signer.rb +154 -0
  725. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/security/trust_dir.rb +118 -0
  726. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/server.rb +868 -0
  727. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/source.rb +234 -0
  728. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/source/git.rb +240 -0
  729. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/source/installed.rb +40 -0
  730. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/source/local.rb +129 -0
  731. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/source/lock.rb +48 -0
  732. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/source/specific_file.rb +72 -0
  733. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/source/vendor.rb +27 -0
  734. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/source_list.rb +149 -0
  735. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/source_local.rb +5 -0
  736. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/source_specific_file.rb +4 -0
  737. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/spec_fetcher.rb +269 -0
  738. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/specification.rb +2800 -0
  739. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/ssl_certs/AddTrustExternalCARoot-2048.pem +25 -0
  740. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/ssl_certs/AddTrustExternalCARoot.pem +32 -0
  741. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem +14 -0
  742. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/ssl_certs/DigiCertHighAssuranceEVRootCA.pem +23 -0
  743. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem +28 -0
  744. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/ssl_certs/GeoTrustGlobalCA.pem +20 -0
  745. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/stub_specification.rb +196 -0
  746. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/syck_hack.rb +76 -0
  747. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/test_case.rb +1430 -0
  748. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/test_utilities.rb +383 -0
  749. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/text.rb +75 -0
  750. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/uninstaller.rb +345 -0
  751. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/uri_formatter.rb +49 -0
  752. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/user_interaction.rb +711 -0
  753. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/util.rb +134 -0
  754. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/util/list.rb +48 -0
  755. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/util/stringio.rb +34 -0
  756. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/validator.rb +165 -0
  757. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/version.rb +356 -0
  758. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/rubygems/version_option.rb +71 -0
  759. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/scanf.rb +776 -0
  760. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/securerandom.rb +293 -0
  761. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/set.rb +787 -0
  762. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/shell.rb +458 -0
  763. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/shell/builtin-command.rb +146 -0
  764. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/shell/command-processor.rb +667 -0
  765. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/shell/error.rb +25 -0
  766. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/shell/filter.rb +137 -0
  767. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/shell/process-controller.rb +310 -0
  768. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/shell/system-command.rb +158 -0
  769. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/shell/version.rb +15 -0
  770. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/shellwords.rb +215 -0
  771. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/singleton.rb +172 -0
  772. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/socket.rb +871 -0
  773. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/sync.rb +328 -0
  774. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/syslog/logger.rb +208 -0
  775. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/tempfile.rb +367 -0
  776. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/thwait.rb +140 -0
  777. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/time.rb +676 -0
  778. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/timeout.rb +130 -0
  779. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/tmpdir.rb +139 -0
  780. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/tracer.rb +286 -0
  781. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/tsort.rb +450 -0
  782. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/ubygems.rb +10 -0
  783. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/un.rb +375 -0
  784. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/unicode_normalize.rb +78 -0
  785. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/unicode_normalize/normalize.rb +168 -0
  786. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/unicode_normalize/tables.rb +1163 -0
  787. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/uri.rb +111 -0
  788. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/uri/common.rb +720 -0
  789. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/uri/ftp.rb +266 -0
  790. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/uri/generic.rb +1557 -0
  791. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/uri/http.rb +106 -0
  792. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/uri/https.rb +22 -0
  793. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/uri/ldap.rb +260 -0
  794. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/uri/ldaps.rb +20 -0
  795. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/uri/mailto.rb +286 -0
  796. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/uri/rfc2396_parser.rb +543 -0
  797. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/uri/rfc3986_parser.rb +124 -0
  798. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/weakref.rb +106 -0
  799. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick.rb +226 -0
  800. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/accesslog.rb +158 -0
  801. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/cgi.rb +308 -0
  802. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/compat.rb +35 -0
  803. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/config.rb +151 -0
  804. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/cookie.rb +171 -0
  805. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/htmlutils.rb +29 -0
  806. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpauth.rb +95 -0
  807. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpauth/authenticator.rb +116 -0
  808. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpauth/basicauth.rb +108 -0
  809. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpauth/digestauth.rb +408 -0
  810. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpauth/htdigest.rb +131 -0
  811. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpauth/htgroup.rb +93 -0
  812. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpauth/htpasswd.rb +124 -0
  813. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpauth/userdb.rb +52 -0
  814. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpproxy.rb +337 -0
  815. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httprequest.rb +584 -0
  816. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpresponse.rb +466 -0
  817. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/https.rb +86 -0
  818. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpserver.rb +278 -0
  819. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpservlet.rb +22 -0
  820. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpservlet/abstract.rb +153 -0
  821. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpservlet/cgi_runner.rb +46 -0
  822. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpservlet/cgihandler.rb +120 -0
  823. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpservlet/erbhandler.rb +87 -0
  824. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpservlet/filehandler.rb +521 -0
  825. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpservlet/prochandler.rb +46 -0
  826. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpstatus.rb +196 -0
  827. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httputils.rb +509 -0
  828. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/httpversion.rb +75 -0
  829. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/log.rb +155 -0
  830. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/server.rb +365 -0
  831. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/ssl.rb +196 -0
  832. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/utils.rb +230 -0
  833. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/webrick/version.rb +17 -0
  834. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/xmlrpc.rb +301 -0
  835. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/xmlrpc/base64.rb +62 -0
  836. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/xmlrpc/client.rb +614 -0
  837. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/xmlrpc/config.rb +43 -0
  838. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/xmlrpc/create.rb +286 -0
  839. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/xmlrpc/datetime.rb +129 -0
  840. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/xmlrpc/marshal.rb +66 -0
  841. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/xmlrpc/parser.rb +870 -0
  842. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/xmlrpc/server.rb +707 -0
  843. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/xmlrpc/utils.rb +171 -0
  844. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/yaml.rb +59 -0
  845. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/yaml/dbm.rb +279 -0
  846. data/bin/traveling-ruby-2.2.2/lib/ruby/2.2.0/yaml/store.rb +81 -0
  847. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/build_info/charlock_holmes-0.7.3.info +1 -0
  848. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/build_info/eventmachine-1.0.4.info +1 -0
  849. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/build_info/eventmachine-1.0.6.info +1 -0
  850. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/build_info/puma-2.11.2.info +1 -0
  851. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/build_info/rugged-0.21.4.info +1 -0
  852. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/build_info/rugged-0.22.0b5.info +1 -0
  853. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/bin/bundle +21 -0
  854. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/bin/bundle_ruby +56 -0
  855. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/bin/bundler +21 -0
  856. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/bundler.gemspec +32 -0
  857. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler.rb +446 -0
  858. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/anonymizable_uri.rb +32 -0
  859. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/capistrano.rb +16 -0
  860. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli.rb +407 -0
  861. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/binstubs.rb +38 -0
  862. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/cache.rb +35 -0
  863. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/check.rb +35 -0
  864. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/clean.rb +26 -0
  865. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/common.rb +56 -0
  866. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/config.rb +84 -0
  867. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/console.rb +38 -0
  868. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/exec.rb +44 -0
  869. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/gem.rb +195 -0
  870. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/init.rb +33 -0
  871. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/inject.rb +33 -0
  872. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/install.rb +156 -0
  873. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/open.rb +23 -0
  874. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/outdated.rb +80 -0
  875. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/package.rb +45 -0
  876. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/platform.rb +43 -0
  877. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/show.rb +74 -0
  878. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/update.rb +73 -0
  879. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/cli/viz.rb +27 -0
  880. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/constants.rb +5 -0
  881. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/current_ruby.rb +183 -0
  882. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/definition.rb +628 -0
  883. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/dep_proxy.rb +43 -0
  884. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/dependency.rb +110 -0
  885. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/deployment.rb +59 -0
  886. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/deprecate.rb +15 -0
  887. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/dsl.rb +331 -0
  888. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/endpoint_specification.rb +76 -0
  889. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/env.rb +75 -0
  890. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/environment.rb +42 -0
  891. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/fetcher.rb +423 -0
  892. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/friendly_errors.rb +85 -0
  893. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/gem_helper.rb +180 -0
  894. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/gem_helpers.rb +26 -0
  895. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/gem_installer.rb +9 -0
  896. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/gem_path_manipulation.rb +8 -0
  897. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/gem_tasks.rb +2 -0
  898. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/graph.rb +169 -0
  899. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/index.rb +197 -0
  900. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/injector.rb +64 -0
  901. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/installer.rb +339 -0
  902. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/lazy_specification.rb +83 -0
  903. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/lockfile_parser.rb +167 -0
  904. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/man/bundle +119 -0
  905. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/man/bundle-config +217 -0
  906. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/man/bundle-exec +159 -0
  907. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/man/bundle-install +345 -0
  908. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/man/bundle-package +52 -0
  909. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/man/bundle-platform +61 -0
  910. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/man/bundle-update +213 -0
  911. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/man/gemfile.5 +669 -0
  912. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/match_platform.rb +13 -0
  913. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/psyched_yaml.rb +26 -0
  914. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/remote_specification.rb +57 -0
  915. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/resolver.rb +334 -0
  916. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/retry.rb +60 -0
  917. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/ruby_dsl.rb +11 -0
  918. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/ruby_version.rb +117 -0
  919. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/rubygems_ext.rb +170 -0
  920. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/rubygems_integration.rb +619 -0
  921. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/runtime.rb +289 -0
  922. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/settings.rb +208 -0
  923. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/setup.rb +24 -0
  924. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/shared_helpers.rb +149 -0
  925. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/similarity_detector.rb +63 -0
  926. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/source.rb +46 -0
  927. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/source/git.rb +294 -0
  928. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/source/git/git_proxy.rb +162 -0
  929. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/source/path.rb +226 -0
  930. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/source/path/installer.rb +43 -0
  931. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/source/rubygems.rb +381 -0
  932. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/source_list.rb +101 -0
  933. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/spec_set.rb +154 -0
  934. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/ssl_certs/.document +1 -0
  935. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/ssl_certs/AddTrustExternalCARoot-2048.pem +25 -0
  936. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/ssl_certs/AddTrustExternalCARoot.pem +32 -0
  937. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem +14 -0
  938. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/ssl_certs/DigiCertHighAssuranceEVRootCA.pem +23 -0
  939. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem +28 -0
  940. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/ssl_certs/GeoTrustGlobalCA.pem +20 -0
  941. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/ssl_certs/certificate_manager.rb +65 -0
  942. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/ui.rb +7 -0
  943. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/ui/rg_proxy.rb +21 -0
  944. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/ui/shell.rb +103 -0
  945. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/ui/silent.rb +44 -0
  946. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/molinillo/lib/molinillo.rb +5 -0
  947. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +266 -0
  948. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +69 -0
  949. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +3 -0
  950. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +90 -0
  951. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +63 -0
  952. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +415 -0
  953. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +43 -0
  954. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +43 -0
  955. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/net/http/faster.rb +26 -0
  956. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/net/http/persistent.rb +1230 -0
  957. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/net/http/persistent/ssl_reuse.rb +128 -0
  958. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor.rb +484 -0
  959. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/actions.rb +319 -0
  960. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +103 -0
  961. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +59 -0
  962. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +118 -0
  963. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +135 -0
  964. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +316 -0
  965. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +107 -0
  966. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/base.rb +656 -0
  967. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/command.rb +133 -0
  968. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +77 -0
  969. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +10 -0
  970. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +98 -0
  971. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/error.rb +32 -0
  972. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/group.rb +281 -0
  973. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/invocation.rb +178 -0
  974. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/line_editor.rb +17 -0
  975. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +35 -0
  976. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +88 -0
  977. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -0
  978. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +73 -0
  979. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +175 -0
  980. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/parser/option.rb +125 -0
  981. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/parser/options.rb +218 -0
  982. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +71 -0
  983. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/runner.rb +322 -0
  984. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/shell.rb +81 -0
  985. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +421 -0
  986. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/shell/color.rb +149 -0
  987. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/shell/html.rb +126 -0
  988. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/util.rb +267 -0
  989. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendor/thor/lib/thor/version.rb +3 -0
  990. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendored_molinillo.rb +2 -0
  991. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendored_persistent.rb +11 -0
  992. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vendored_thor.rb +3 -0
  993. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/version.rb +6 -0
  994. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/vlad.rb +11 -0
  995. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.9.9/lib/bundler/worker.rb +73 -0
  996. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/specifications/bundler-1.9.9.gemspec +47 -0
  997. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/specifications/default/bigdecimal-1.2.6.gemspec +20 -0
  998. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/specifications/default/io-console-0.4.3.gemspec +23 -0
  999. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/specifications/default/json-1.8.1.gemspec +7 -0
  1000. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/specifications/default/psych-2.0.8.gemspec +25 -0
  1001. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/specifications/default/rake-10.4.2.gemspec +7 -0
  1002. data/bin/traveling-ruby-2.2.2/lib/ruby/gems/2.2.0/specifications/default/rdoc-4.2.0.gemspec +7 -0
  1003. data/bin/traveling-ruby-2.2.2/test +1 -0
  1004. data/bin/traveling-ruby-2.2.2/test-rake +1 -0
  1005. data/lib/rb2exe/version.rb +1 -1
  1006. data/rb2exe.gemspec +0 -1
  1007. metadata +1003 -16
  1008. data/.gitignore +0 -9
@@ -0,0 +1,5 @@
1
+ require 'rubygems/source'
2
+ require 'rubygems/source_local'
3
+
4
+ # TODO warn upon require, this file is deprecated.
5
+
@@ -0,0 +1,4 @@
1
+ require 'rubygems/source/specific_file'
2
+
3
+ # TODO warn upon require, this file is deprecated.
4
+
@@ -0,0 +1,269 @@
1
+ require 'rubygems/remote_fetcher'
2
+ require 'rubygems/user_interaction'
3
+ require 'rubygems/errors'
4
+ require 'rubygems/text'
5
+ require 'rubygems/name_tuple'
6
+
7
+ ##
8
+ # SpecFetcher handles metadata updates from remote gem repositories.
9
+
10
+ class Gem::SpecFetcher
11
+
12
+ include Gem::UserInteraction
13
+ include Gem::Text
14
+
15
+ ##
16
+ # Cache of latest specs
17
+
18
+ attr_reader :latest_specs # :nodoc:
19
+
20
+ ##
21
+ # Sources for this SpecFetcher
22
+
23
+ attr_reader :sources # :nodoc:
24
+
25
+ ##
26
+ # Cache of all released specs
27
+
28
+ attr_reader :specs # :nodoc:
29
+
30
+ ##
31
+ # Cache of prerelease specs
32
+
33
+ attr_reader :prerelease_specs # :nodoc:
34
+
35
+ @fetcher = nil
36
+
37
+ ##
38
+ # Default fetcher instance. Use this instead of ::new to reduce object
39
+ # allocation.
40
+
41
+ def self.fetcher
42
+ @fetcher ||= new
43
+ end
44
+
45
+ def self.fetcher=(fetcher) # :nodoc:
46
+ @fetcher = fetcher
47
+ end
48
+
49
+ ##
50
+ # Creates a new SpecFetcher. Ordinarily you want to use the default fetcher
51
+ # from Gem::SpecFetcher::fetcher which uses the Gem.sources.
52
+ #
53
+ # If you need to retrieve specifications from a different +source+, you can
54
+ # send it as an argument.
55
+
56
+ def initialize sources = nil
57
+ @sources = sources || Gem.sources
58
+
59
+ @update_cache =
60
+ begin
61
+ File.stat(Gem.user_home).uid == Process.uid
62
+ rescue Errno::EACCES, Errno::ENOENT
63
+ false
64
+ end
65
+
66
+ @specs = {}
67
+ @latest_specs = {}
68
+ @prerelease_specs = {}
69
+
70
+ @caches = {
71
+ :latest => @latest_specs,
72
+ :prerelease => @prerelease_specs,
73
+ :released => @specs,
74
+ }
75
+
76
+ @fetcher = Gem::RemoteFetcher.fetcher
77
+ end
78
+
79
+ ##
80
+ #
81
+ # Find and fetch gem name tuples that match +dependency+.
82
+ #
83
+ # If +matching_platform+ is false, gems for all platforms are returned.
84
+
85
+ def search_for_dependency(dependency, matching_platform=true)
86
+ found = {}
87
+
88
+ rejected_specs = {}
89
+
90
+ if dependency.prerelease?
91
+ if dependency.specific?
92
+ type = :complete
93
+ else
94
+ type = :abs_latest
95
+ end
96
+ elsif dependency.latest_version?
97
+ type = :latest
98
+ else
99
+ type = :released
100
+ end
101
+
102
+ list, errors = available_specs(type)
103
+ list.each do |source, specs|
104
+ if dependency.name.is_a?(String) && specs.respond_to?(:bsearch)
105
+ start_index = (0 ... specs.length).bsearch{ |i| specs[i].name >= dependency.name }
106
+ end_index = (0 ... specs.length).bsearch{ |i| specs[i].name > dependency.name }
107
+ specs = specs[start_index ... end_index] if start_index && end_index
108
+ end
109
+
110
+ found[source] = specs.select do |tup|
111
+ if dependency.match?(tup)
112
+ if matching_platform and !Gem::Platform.match(tup.platform)
113
+ pm = (
114
+ rejected_specs[dependency] ||= \
115
+ Gem::PlatformMismatch.new(tup.name, tup.version))
116
+ pm.add_platform tup.platform
117
+ false
118
+ else
119
+ true
120
+ end
121
+ end
122
+ end
123
+ end
124
+
125
+ errors += rejected_specs.values
126
+
127
+ tuples = []
128
+
129
+ found.each do |source, specs|
130
+ specs.each do |s|
131
+ tuples << [s, source]
132
+ end
133
+ end
134
+
135
+ tuples = tuples.sort_by { |x| x[0] }
136
+
137
+ return [tuples, errors]
138
+ end
139
+
140
+
141
+ ##
142
+ # Return all gem name tuples who's names match +obj+
143
+
144
+ def detect(type=:complete)
145
+ tuples = []
146
+
147
+ list, _ = available_specs(type)
148
+ list.each do |source, specs|
149
+ specs.each do |tup|
150
+ if yield(tup)
151
+ tuples << [tup, source]
152
+ end
153
+ end
154
+ end
155
+
156
+ tuples
157
+ end
158
+
159
+
160
+ ##
161
+ # Find and fetch specs that match +dependency+.
162
+ #
163
+ # If +matching_platform+ is false, gems for all platforms are returned.
164
+
165
+ def spec_for_dependency(dependency, matching_platform=true)
166
+ tuples, errors = search_for_dependency(dependency, matching_platform)
167
+
168
+ specs = []
169
+ tuples.each do |tup, source|
170
+ begin
171
+ spec = source.fetch_spec(tup)
172
+ rescue Gem::RemoteFetcher::FetchError => e
173
+ errors << Gem::SourceFetchProblem.new(source, e)
174
+ else
175
+ specs << [spec, source]
176
+ end
177
+ end
178
+
179
+ return [specs, errors]
180
+ end
181
+
182
+ ##
183
+ # Suggests gems based on the supplied +gem_name+. Returns an array of
184
+ # alternative gem names.
185
+
186
+ def suggest_gems_from_name gem_name
187
+ gem_name = gem_name.downcase.tr('_-', '')
188
+ max = gem_name.size / 2
189
+ names = available_specs(:latest).first.values.flatten(1)
190
+
191
+ matches = names.map { |n|
192
+ next unless n.match_platform?
193
+
194
+ distance = levenshtein_distance gem_name, n.name.downcase.tr('_-', '')
195
+
196
+ next if distance >= max
197
+
198
+ return [n.name] if distance == 0
199
+
200
+ [n.name, distance]
201
+ }.compact
202
+
203
+ matches = matches.uniq.sort_by { |name, dist| dist }
204
+
205
+ matches.first(5).map { |name, dist| name }
206
+ end
207
+
208
+ ##
209
+ # Returns a list of gems available for each source in Gem::sources.
210
+ #
211
+ # +type+ can be one of 3 values:
212
+ # :released => Return the list of all released specs
213
+ # :complete => Return the list of all specs
214
+ # :latest => Return the list of only the highest version of each gem
215
+ # :prerelease => Return the list of all prerelease only specs
216
+ #
217
+
218
+ def available_specs(type)
219
+ errors = []
220
+ list = {}
221
+
222
+ @sources.each_source do |source|
223
+ begin
224
+ names = case type
225
+ when :latest
226
+ tuples_for source, :latest
227
+ when :released
228
+ tuples_for source, :released
229
+ when :complete
230
+ names =
231
+ tuples_for(source, :prerelease, true) +
232
+ tuples_for(source, :released)
233
+
234
+ names.sort
235
+ when :abs_latest
236
+ names =
237
+ tuples_for(source, :prerelease, true) +
238
+ tuples_for(source, :latest)
239
+
240
+ names.sort
241
+ when :prerelease
242
+ tuples_for(source, :prerelease)
243
+ else
244
+ raise Gem::Exception, "Unknown type - :#{type}"
245
+ end
246
+ rescue Gem::RemoteFetcher::FetchError => e
247
+ errors << Gem::SourceFetchProblem.new(source, e)
248
+ else
249
+ list[source] = names
250
+ end
251
+ end
252
+
253
+ [list, errors]
254
+ end
255
+
256
+ ##
257
+ # Retrieves NameTuples from +source+ of the given +type+ (:prerelease,
258
+ # etc.). If +gracefully_ignore+ is true, errors are ignored.
259
+
260
+ def tuples_for(source, type, gracefully_ignore=false) # :nodoc:
261
+ @caches[type][source.uri] ||=
262
+ source.load_specs(type).sort_by { |tup| tup.name }
263
+ rescue Gem::RemoteFetcher::FetchError
264
+ raise unless gracefully_ignore
265
+ []
266
+ end
267
+
268
+ end
269
+
@@ -0,0 +1,2800 @@
1
+ # -*- coding: utf-8 -*-
2
+ #--
3
+ # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4
+ # All rights reserved.
5
+ # See LICENSE.txt for permissions.
6
+ #++
7
+
8
+
9
+ require 'rubygems/version'
10
+ require 'rubygems/requirement'
11
+ require 'rubygems/platform'
12
+ require 'rubygems/deprecate'
13
+ require 'rubygems/basic_specification'
14
+ require 'rubygems/stub_specification'
15
+ require 'rubygems/util/stringio'
16
+
17
+ ##
18
+ # The Specification class contains the information for a Gem. Typically
19
+ # defined in a .gemspec file or a Rakefile, and looks like this:
20
+ #
21
+ # Gem::Specification.new do |s|
22
+ # s.name = 'example'
23
+ # s.version = '0.1.0'
24
+ # s.licenses = ['MIT']
25
+ # s.summary = "This is an example!"
26
+ # s.description = "Much longer explanation of the example!"
27
+ # s.authors = ["Ruby Coder"]
28
+ # s.email = 'rubycoder@example.com'
29
+ # s.files = ["lib/example.rb"]
30
+ # s.homepage = 'https://rubygems.org/gems/example'
31
+ # end
32
+ #
33
+ # Starting in RubyGems 2.0, a Specification can hold arbitrary
34
+ # metadata. See #metadata for restrictions on the format and size of metadata
35
+ # items you may add to a specification.
36
+
37
+ class Gem::Specification < Gem::BasicSpecification
38
+
39
+ # REFACTOR: Consider breaking out this version stuff into a separate
40
+ # module. There's enough special stuff around it that it may justify
41
+ # a separate class.
42
+
43
+ ##
44
+ # The version number of a specification that does not specify one
45
+ # (i.e. RubyGems 0.7 or earlier).
46
+
47
+ NONEXISTENT_SPECIFICATION_VERSION = -1
48
+
49
+ ##
50
+ # The specification version applied to any new Specification instances
51
+ # created. This should be bumped whenever something in the spec format
52
+ # changes.
53
+ #
54
+ # Specification Version History:
55
+ #
56
+ # spec ruby
57
+ # ver ver yyyy-mm-dd description
58
+ # -1 <0.8.0 pre-spec-version-history
59
+ # 1 0.8.0 2004-08-01 Deprecated "test_suite_file" for "test_files"
60
+ # "test_file=x" is a shortcut for "test_files=[x]"
61
+ # 2 0.9.5 2007-10-01 Added "required_rubygems_version"
62
+ # Now forward-compatible with future versions
63
+ # 3 1.3.2 2009-01-03 Added Fixnum validation to specification_version
64
+ # 4 1.9.0 2011-06-07 Added metadata
65
+ #--
66
+ # When updating this number, be sure to also update #to_ruby.
67
+ #
68
+ # NOTE RubyGems < 1.2 cannot load specification versions > 2.
69
+
70
+ CURRENT_SPECIFICATION_VERSION = 4 # :nodoc:
71
+
72
+ ##
73
+ # An informal list of changes to the specification. The highest-valued
74
+ # key should be equal to the CURRENT_SPECIFICATION_VERSION.
75
+
76
+ SPECIFICATION_VERSION_HISTORY = { # :nodoc:
77
+ -1 => ['(RubyGems versions up to and including 0.7 did not have versioned specifications)'],
78
+ 1 => [
79
+ 'Deprecated "test_suite_file" in favor of the new, but equivalent, "test_files"',
80
+ '"test_file=x" is a shortcut for "test_files=[x]"'
81
+ ],
82
+ 2 => [
83
+ 'Added "required_rubygems_version"',
84
+ 'Now forward-compatible with future versions',
85
+ ],
86
+ 3 => [
87
+ 'Added Fixnum validation to the specification_version'
88
+ ],
89
+ 4 => [
90
+ 'Added sandboxed freeform metadata to the specification version.'
91
+ ]
92
+ }
93
+
94
+ MARSHAL_FIELDS = { # :nodoc:
95
+ -1 => 16,
96
+ 1 => 16,
97
+ 2 => 16,
98
+ 3 => 17,
99
+ 4 => 18,
100
+ }
101
+
102
+ today = Time.now.utc
103
+ TODAY = Time.utc(today.year, today.month, today.day) # :nodoc:
104
+
105
+ LOAD_CACHE = {} # :nodoc:
106
+
107
+ private_constant :LOAD_CACHE if defined? private_constant
108
+
109
+ # :startdoc:
110
+
111
+ ##
112
+ # List of attribute names: [:name, :version, ...]
113
+
114
+ @@required_attributes = [:rubygems_version,
115
+ :specification_version,
116
+ :name,
117
+ :version,
118
+ :date,
119
+ :summary,
120
+ :require_paths]
121
+
122
+ ##
123
+ # Map of attribute names to default values.
124
+
125
+ @@default_value = {
126
+ :authors => [],
127
+ :autorequire => nil,
128
+ :bindir => 'bin',
129
+ :cert_chain => [],
130
+ :date => TODAY,
131
+ :dependencies => [],
132
+ :description => nil,
133
+ :email => nil,
134
+ :executables => [],
135
+ :extensions => [],
136
+ :extra_rdoc_files => [],
137
+ :files => [],
138
+ :homepage => nil,
139
+ :licenses => [],
140
+ :metadata => {},
141
+ :name => nil,
142
+ :platform => Gem::Platform::RUBY,
143
+ :post_install_message => nil,
144
+ :rdoc_options => [],
145
+ :require_paths => ['lib'],
146
+ :required_ruby_version => Gem::Requirement.default,
147
+ :required_rubygems_version => Gem::Requirement.default,
148
+ :requirements => [],
149
+ :rubyforge_project => nil,
150
+ :rubygems_version => Gem::VERSION,
151
+ :signing_key => nil,
152
+ :specification_version => CURRENT_SPECIFICATION_VERSION,
153
+ :summary => nil,
154
+ :test_files => [],
155
+ :version => nil,
156
+ }
157
+
158
+ Dupable = { } # :nodoc:
159
+
160
+ @@default_value.each do |k,v|
161
+ case v
162
+ when Time, Numeric, Symbol, true, false, nil
163
+ Dupable[k] = false
164
+ else
165
+ Dupable[k] = true
166
+ end
167
+ end
168
+
169
+ @@attributes = @@default_value.keys.sort_by { |s| s.to_s }
170
+ @@array_attributes = @@default_value.reject { |k,v| v != [] }.keys
171
+ @@nil_attributes, @@non_nil_attributes = @@default_value.keys.partition { |k|
172
+ @@default_value[k].nil?
173
+ }
174
+
175
+ ######################################################################
176
+ # :section: Required gemspec attributes
177
+
178
+ ##
179
+ # This gem's name.
180
+ #
181
+ # Usage:
182
+ #
183
+ # spec.name = 'rake'
184
+
185
+ attr_accessor :name
186
+
187
+ ##
188
+ # This gem's version.
189
+ #
190
+ # The version string can contain numbers and periods, such as +1.0.0+.
191
+ # A gem is a 'prerelease' gem if the version has a letter in it, such as
192
+ # +1.0.0.pre+.
193
+ #
194
+ # Usage:
195
+ #
196
+ # spec.version = '0.4.1'
197
+
198
+ attr_reader :version
199
+
200
+ ##
201
+ # Paths in the gem to add to <code>$LOAD_PATH</code> when this gem is
202
+ # activated.
203
+ #
204
+ # See also #require_paths
205
+ #
206
+ # If you have an extension you do not need to add <code>"ext"</code> to the
207
+ # require path, the extension build process will copy the extension files
208
+ # into "lib" for you.
209
+ #
210
+ # The default value is <code>"lib"</code>
211
+ #
212
+ # Usage:
213
+ #
214
+ # # If all library files are in the root directory...
215
+ # spec.require_paths = ['.']
216
+
217
+ def require_paths=(val)
218
+ @require_paths = Array(val)
219
+ end
220
+
221
+ ##
222
+ # The version of RubyGems used to create this gem.
223
+ #
224
+ # Do not set this, it is set automatically when the gem is packaged.
225
+
226
+ attr_accessor :rubygems_version
227
+
228
+ ##
229
+ # A short summary of this gem's description. Displayed in `gem list -d`.
230
+ #
231
+ # The #description should be more detailed than the summary.
232
+ #
233
+ # Usage:
234
+ #
235
+ # spec.summary = "This is a small summary of my gem"
236
+
237
+ attr_reader :summary
238
+
239
+ ##
240
+ # Singular writer for #authors
241
+ #
242
+ # Usage:
243
+ #
244
+ # spec.author = 'John Jones'
245
+
246
+ def author= o
247
+ self.authors = [o]
248
+ end
249
+
250
+ ##
251
+ # Sets the list of authors, ensuring it is an array.
252
+ #
253
+ # Usage:
254
+ #
255
+ # spec.authors = ['John Jones', 'Mary Smith']
256
+
257
+ def authors= value
258
+ @authors = Array(value).flatten.grep(String)
259
+ end
260
+
261
+ ##
262
+ # The platform this gem runs on.
263
+ #
264
+ # This is usually Gem::Platform::RUBY or Gem::Platform::CURRENT.
265
+ #
266
+ # Most gems contain pure Ruby code; they should simply leave the default
267
+ # value in place. Some gems contain C (or other) code to be compiled into a
268
+ # Ruby "extension". The gem should leave the default value in place unless
269
+ # the code will only compile on a certain type of system. Some gems consist
270
+ # of pre-compiled code ("binary gems"). It's especially important that they
271
+ # set the platform attribute appropriately. A shortcut is to set the
272
+ # platform to Gem::Platform::CURRENT, which will cause the gem builder to set
273
+ # the platform to the appropriate value for the system on which the build is
274
+ # being performed.
275
+ #
276
+ # If this attribute is set to a non-default value, it will be included in
277
+ # the filename of the gem when it is built such as:
278
+ # nokogiri-1.6.0-x86-mingw32.gem
279
+ #
280
+ # Usage:
281
+ #
282
+ # spec.platform = Gem::Platform.local
283
+
284
+ def platform= platform
285
+ if @original_platform.nil? or
286
+ @original_platform == Gem::Platform::RUBY then
287
+ @original_platform = platform
288
+ end
289
+
290
+ case platform
291
+ when Gem::Platform::CURRENT then
292
+ @new_platform = Gem::Platform.local
293
+ @original_platform = @new_platform.to_s
294
+
295
+ when Gem::Platform then
296
+ @new_platform = platform
297
+
298
+ # legacy constants
299
+ when nil, Gem::Platform::RUBY then
300
+ @new_platform = Gem::Platform::RUBY
301
+ when 'mswin32' then # was Gem::Platform::WIN32
302
+ @new_platform = Gem::Platform.new 'x86-mswin32'
303
+ when 'i586-linux' then # was Gem::Platform::LINUX_586
304
+ @new_platform = Gem::Platform.new 'x86-linux'
305
+ when 'powerpc-darwin' then # was Gem::Platform::DARWIN
306
+ @new_platform = Gem::Platform.new 'ppc-darwin'
307
+ else
308
+ @new_platform = Gem::Platform.new platform
309
+ end
310
+
311
+ @platform = @new_platform.to_s
312
+
313
+ invalidate_memoized_attributes
314
+
315
+ @new_platform
316
+ end
317
+
318
+ ##
319
+ # Files included in this gem. You cannot append to this accessor, you must
320
+ # assign to it.
321
+ #
322
+ # Only add files you can require to this list, not directories, etc.
323
+ #
324
+ # Directories are automatically stripped from this list when building a gem,
325
+ # other non-files cause an error.
326
+ #
327
+ # Usage:
328
+ #
329
+ # require 'rake'
330
+ # spec.files = FileList['lib/**/*.rb',
331
+ # 'bin/*',
332
+ # '[A-Z]*',
333
+ # 'test/**/*'].to_a
334
+ #
335
+ # # or without Rake...
336
+ # spec.files = Dir['lib/**/*.rb'] + Dir['bin/*']
337
+ # spec.files += Dir['[A-Z]*'] + Dir['test/**/*']
338
+ # spec.files.reject! { |fn| fn.include? "CVS" }
339
+
340
+ def files
341
+ # DO NOT CHANGE TO ||= ! This is not a normal accessor. (yes, it sucks)
342
+ # DOC: Why isn't it normal? Why does it suck? How can we fix this?
343
+ @files = [@files,
344
+ @test_files,
345
+ add_bindir(@executables),
346
+ @extra_rdoc_files,
347
+ @extensions,
348
+ ].flatten.uniq.compact.sort
349
+ end
350
+
351
+ ######################################################################
352
+ # :section: Optional gemspec attributes
353
+
354
+ ##
355
+ # The path in the gem for executable scripts. Usually 'bin'
356
+ #
357
+ # Usage:
358
+ #
359
+ # spec.bindir = 'bin'
360
+
361
+ attr_accessor :bindir
362
+
363
+ ##
364
+ # The certificate chain used to sign this gem. See Gem::Security for
365
+ # details.
366
+
367
+ attr_accessor :cert_chain
368
+
369
+ ##
370
+ # A long description of this gem
371
+ #
372
+ # The description should be more detailed than the summary but not
373
+ # excessively long. A few paragraphs is a recommended length with no
374
+ # examples or formatting.
375
+ #
376
+ # Usage:
377
+ #
378
+ # spec.description = <<-EOF
379
+ # Rake is a Make-like program implemented in Ruby. Tasks and
380
+ # dependencies are specified in standard Ruby syntax.
381
+ # EOF
382
+
383
+ attr_reader :description
384
+
385
+ ##
386
+ # A contact email address (or addresses) for this gem
387
+ #
388
+ # Usage:
389
+ #
390
+ # spec.email = 'john.jones@example.com'
391
+ # spec.email = ['jack@example.com', 'jill@example.com']
392
+
393
+ attr_accessor :email
394
+
395
+ ##
396
+ # The URL of this gem's home page
397
+ #
398
+ # Usage:
399
+ #
400
+ # spec.homepage = 'http://rake.rubyforge.org'
401
+
402
+ attr_accessor :homepage
403
+
404
+ ##
405
+ # A message that gets displayed after the gem is installed.
406
+ #
407
+ # Usage:
408
+ #
409
+ # spec.post_install_message = "Thanks for installing!"
410
+
411
+ attr_accessor :post_install_message
412
+
413
+ ##
414
+ # The version of Ruby required by this gem
415
+
416
+ attr_reader :required_ruby_version
417
+
418
+ ##
419
+ # The RubyGems version required by this gem
420
+
421
+ attr_reader :required_rubygems_version
422
+
423
+ ##
424
+ # The key used to sign this gem. See Gem::Security for details.
425
+
426
+ attr_accessor :signing_key
427
+
428
+ ##
429
+ # :attr_accessor: metadata
430
+ #
431
+ # The metadata holds extra data for this gem that may be useful to other
432
+ # consumers and is settable by gem authors without requiring an update to
433
+ # the rubygems software.
434
+ #
435
+ # Metadata items have the following restrictions:
436
+ #
437
+ # * The metadata must be a Hash object
438
+ # * All keys and values must be Strings
439
+ # * Keys can be a maximum of 128 bytes and values can be a maximum of 1024
440
+ # bytes
441
+ # * All strings must be UTF-8, no binary data is allowed
442
+ #
443
+ # To add metadata for the location of a issue tracker:
444
+ #
445
+ # s.metadata = { "issue_tracker" => "https://example/issues" }
446
+
447
+ attr_accessor :metadata
448
+
449
+ ##
450
+ # Adds a development dependency named +gem+ with +requirements+ to this
451
+ # gem.
452
+ #
453
+ # Usage:
454
+ #
455
+ # spec.add_development_dependency 'example', '~> 1.1', '>= 1.1.4'
456
+ #
457
+ # Development dependencies aren't installed by default and aren't
458
+ # activated when a gem is required.
459
+
460
+ def add_development_dependency(gem, *requirements)
461
+ add_dependency_with_type(gem, :development, *requirements)
462
+ end
463
+
464
+ ##
465
+ # Adds a runtime dependency named +gem+ with +requirements+ to this gem.
466
+ #
467
+ # Usage:
468
+ #
469
+ # spec.add_runtime_dependency 'example', '~> 1.1', '>= 1.1.4'
470
+
471
+ def add_runtime_dependency(gem, *requirements)
472
+ add_dependency_with_type(gem, :runtime, *requirements)
473
+ end
474
+
475
+ ##
476
+ # Executables included in the gem.
477
+ #
478
+ # For example, the rake gem has rake as an executable. You don’t specify the
479
+ # full path (as in bin/rake); all application-style files are expected to be
480
+ # found in bindir. These files must be executable Ruby files. Files that
481
+ # use bash or other interpreters will not work.
482
+ #
483
+ # Executables included may only be ruby scripts, not scripts for other
484
+ # languages or compiled binaries.
485
+ #
486
+ # Usage:
487
+ #
488
+ # spec.executables << 'rake'
489
+
490
+ def executables
491
+ @executables ||= []
492
+ end
493
+
494
+ ##
495
+ # Extensions to build when installing the gem, specifically the paths to
496
+ # extconf.rb-style files used to compile extensions.
497
+ #
498
+ # These files will be run when the gem is installed, causing the C (or
499
+ # whatever) code to be compiled on the user’s machine.
500
+ #
501
+ # Usage:
502
+ #
503
+ # spec.extensions << 'ext/rmagic/extconf.rb'
504
+ #
505
+ # See Gem::Ext::Builder for information about writing extensions for gems.
506
+
507
+ def extensions
508
+ @extensions ||= []
509
+ end
510
+
511
+ ##
512
+ # Extra files to add to RDoc such as README or doc/examples.txt
513
+ #
514
+ # When the user elects to generate the RDoc documentation for a gem (typically
515
+ # at install time), all the library files are sent to RDoc for processing.
516
+ # This option allows you to have some non-code files included for a more
517
+ # complete set of documentation.
518
+ #
519
+ # Usage:
520
+ #
521
+ # spec.extra_rdoc_files = ['README', 'doc/user-guide.txt']
522
+
523
+ def extra_rdoc_files
524
+ @extra_rdoc_files ||= []
525
+ end
526
+
527
+ ##
528
+ # The version of RubyGems that installed this gem. Returns
529
+ # <code>Gem::Version.new(0)</code> for gems installed by versions earlier
530
+ # than RubyGems 2.2.0.
531
+
532
+ def installed_by_version # :nodoc:
533
+ @installed_by_version ||= Gem::Version.new(0)
534
+ end
535
+
536
+ ##
537
+ # Sets the version of RubyGems that installed this gem. See also
538
+ # #installed_by_version.
539
+
540
+ def installed_by_version= version # :nodoc:
541
+ @installed_by_version = Gem::Version.new version
542
+ end
543
+
544
+ ##
545
+ # :category: Recommended gemspec attributes
546
+ #
547
+ # The license for this gem.
548
+ #
549
+ # The license must be no more than 64 characters.
550
+ #
551
+ # This should just be the name of your license. The full text of the license
552
+ # should be inside of the gem (at the top level) when you build it.
553
+ #
554
+ # The simplest way, is to specify the standard SPDX ID
555
+ # https://spdx.org/licenses/ for the license.
556
+ # Ideally you should pick one that is OSI (Open Source Initiative)
557
+ # http://opensource.org/licenses/alphabetical approved.
558
+ #
559
+ # The most commonly used OSI approved licenses are BSD-3-Clause and MIT.
560
+ # GitHub also provides a license picker at http://choosealicense.com/.
561
+ #
562
+ # You should specify a license for your gem so that people know how they are
563
+ # permitted to use it, and any restrictions you're placing on it. Not
564
+ # specifying a license means all rights are reserved; others have no rights
565
+ # to use the code for any purpose.
566
+ #
567
+ # You can set multiple licenses with #licenses=
568
+ #
569
+ # Usage:
570
+ # spec.license = 'MIT'
571
+
572
+ def license=o
573
+ self.licenses = [o]
574
+ end
575
+
576
+ ##
577
+ # :category: Recommended gemspec attributes
578
+ # The license(s) for the library.
579
+ #
580
+ # Each license must be a short name, no more than 64 characters.
581
+ #
582
+ # This should just be the name of your license. The full
583
+ # text of the license should be inside of the gem when you build it.
584
+ #
585
+ # See #license= for more discussion
586
+ #
587
+ # Usage:
588
+ # spec.licenses = ['MIT', 'GPL-2']
589
+
590
+ def licenses= licenses
591
+ @licenses = Array licenses
592
+ end
593
+
594
+ ##
595
+ # Specifies the rdoc options to be used when generating API documentation.
596
+ #
597
+ # Usage:
598
+ #
599
+ # spec.rdoc_options << '--title' << 'Rake -- Ruby Make' <<
600
+ # '--main' << 'README' <<
601
+ # '--line-numbers'
602
+
603
+ def rdoc_options
604
+ @rdoc_options ||= []
605
+ end
606
+
607
+ ##
608
+ # The version of Ruby required by this gem. The ruby version can be
609
+ # specified to the patch-level:
610
+ #
611
+ # $ ruby -v -e 'p Gem.ruby_version'
612
+ # ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0]
613
+ # #<Gem::Version "2.0.0.247">
614
+ #
615
+ # Usage:
616
+ #
617
+ # # This gem will work with 1.8.6 or greater...
618
+ # spec.required_ruby_version = '>= 1.8.6'
619
+ #
620
+ # # Only with ruby 2.0.x
621
+ # spec.required_ruby_version = '~> 2.0'
622
+
623
+ def required_ruby_version= req
624
+ @required_ruby_version = Gem::Requirement.create req
625
+ end
626
+
627
+ ##
628
+ # The RubyGems version required by this gem
629
+
630
+ def required_rubygems_version= req
631
+ @required_rubygems_version = Gem::Requirement.create req
632
+ end
633
+
634
+ ##
635
+ # Lists the external (to RubyGems) requirements that must be met for this gem
636
+ # to work. It's simply information for the user.
637
+ #
638
+ # Usage:
639
+ #
640
+ # spec.requirements << 'libmagick, v6.0'
641
+ # spec.requirements << 'A good graphics card'
642
+
643
+ def requirements
644
+ @requirements ||= []
645
+ end
646
+
647
+ ##
648
+ # A collection of unit test files. They will be loaded as unit tests when
649
+ # the user requests a gem to be unit tested.
650
+ #
651
+ # Usage:
652
+ # spec.test_files = Dir.glob('test/tc_*.rb')
653
+ # spec.test_files = ['tests/test-suite.rb']
654
+
655
+ def test_files= files # :nodoc:
656
+ @test_files = Array files
657
+ end
658
+
659
+ ######################################################################
660
+ # :section: Specification internals
661
+
662
+ ##
663
+ # True when this gemspec has been activated. This attribute is not persisted.
664
+
665
+ attr_accessor :activated
666
+
667
+ alias :activated? :activated
668
+
669
+ ##
670
+ # Autorequire was used by old RubyGems to automatically require a file.
671
+ #
672
+ # Deprecated: It is neither supported nor functional.
673
+
674
+ attr_accessor :autorequire # :nodoc:
675
+
676
+ ##
677
+ # Sets the default executable for this gem.
678
+ #
679
+ # Deprecated: You must now specify the executable name to Gem.bin_path.
680
+
681
+ attr_writer :default_executable
682
+
683
+ ##
684
+ # Allows deinstallation of gems with legacy platforms.
685
+
686
+ attr_writer :original_platform # :nodoc:
687
+
688
+ ##
689
+ # The rubyforge project this gem lives under. i.e. RubyGems'
690
+ # rubyforge_project is "rubygems".
691
+ #
692
+ # This option is deprecated.
693
+
694
+ attr_accessor :rubyforge_project
695
+
696
+ ##
697
+ # The Gem::Specification version of this gemspec.
698
+ #
699
+ # Do not set this, it is set automatically when the gem is packaged.
700
+
701
+ attr_accessor :specification_version
702
+
703
+ def self._all # :nodoc:
704
+ unless defined?(@@all) && @@all then
705
+ @@all = stubs.map(&:to_spec)
706
+
707
+ # After a reset, make sure already loaded specs
708
+ # are still marked as activated.
709
+ specs = {}
710
+ Gem.loaded_specs.each_value{|s| specs[s] = true}
711
+ @@all.each{|s| s.activated = true if specs[s]}
712
+ end
713
+ @@all
714
+ end
715
+
716
+ def self._clear_load_cache # :nodoc:
717
+ LOAD_CACHE.clear
718
+ end
719
+
720
+ def self.each_gemspec(dirs) # :nodoc:
721
+ dirs.each do |dir|
722
+ Dir[File.join(dir, "*.gemspec")].each do |path|
723
+ yield path.untaint
724
+ end
725
+ end
726
+ end
727
+
728
+ def self.each_stub(dirs) # :nodoc:
729
+ each_gemspec(dirs) do |path|
730
+ stub = Gem::StubSpecification.new(path)
731
+ yield stub if stub.valid?
732
+ end
733
+ end
734
+
735
+ def self.each_spec(dirs) # :nodoc:
736
+ each_gemspec(dirs) do |path|
737
+ spec = self.load path
738
+ yield spec if spec
739
+ end
740
+ end
741
+
742
+ ##
743
+ # Returns a Gem::StubSpecification for every installed gem
744
+
745
+ def self.stubs
746
+ @@stubs ||= begin
747
+ stubs = {}
748
+ each_stub([default_specifications_dir] + dirs) do |stub|
749
+ stubs[stub.full_name] ||= stub
750
+ end
751
+
752
+ stubs = stubs.values
753
+ _resort!(stubs)
754
+ stubs
755
+ end
756
+ end
757
+
758
+ def self._resort!(specs) # :nodoc:
759
+ specs.sort! { |a, b|
760
+ names = a.name <=> b.name
761
+ next names if names.nonzero?
762
+ b.version <=> a.version
763
+ }
764
+ end
765
+
766
+ ##
767
+ # Loads the default specifications. It should be called only once.
768
+
769
+ def self.load_defaults
770
+ each_spec([default_specifications_dir]) do |spec|
771
+ # #load returns nil if the spec is bad, so we just ignore
772
+ # it at this stage
773
+ Gem.register_default_spec(spec)
774
+ end
775
+ end
776
+
777
+ ##
778
+ # Adds +spec+ to the known specifications, keeping the collection
779
+ # properly sorted.
780
+
781
+ def self.add_spec spec
782
+ # TODO: find all extraneous adds
783
+ # puts
784
+ # p :add_spec => [spec.full_name, caller.reject { |s| s =~ /minitest/ }]
785
+
786
+ # TODO: flush the rest of the crap from the tests
787
+ # raise "no dupes #{spec.full_name} in #{all_names.inspect}" if
788
+ # _all.include? spec
789
+
790
+ raise "nil spec!" unless spec # TODO: remove once we're happy with tests
791
+
792
+ return if _all.include? spec
793
+
794
+ _all << spec
795
+ stubs << spec
796
+ _resort!(_all)
797
+ _resort!(stubs)
798
+ end
799
+
800
+ ##
801
+ # Adds multiple specs to the known specifications.
802
+
803
+ def self.add_specs *specs
804
+ raise "nil spec!" if specs.any?(&:nil?) # TODO: remove once we're happy
805
+
806
+ # TODO: this is much more efficient, but we need the extra checks for now
807
+ # _all.concat specs
808
+ # _resort!
809
+
810
+ specs.each do |spec| # TODO: slow
811
+ add_spec spec
812
+ end
813
+ end
814
+
815
+ ##
816
+ # Returns all specifications. This method is discouraged from use.
817
+ # You probably want to use one of the Enumerable methods instead.
818
+
819
+ def self.all
820
+ warn "NOTE: Specification.all called from #{caller.first}" unless
821
+ Gem::Deprecate.skip
822
+ _all
823
+ end
824
+
825
+ ##
826
+ # Sets the known specs to +specs+. Not guaranteed to work for you in
827
+ # the future. Use at your own risk. Caveat emptor. Doomy doom doom.
828
+ # Etc etc.
829
+ #
830
+ #--
831
+ # Makes +specs+ the known specs
832
+ # Listen, time is a river
833
+ # Winter comes, code breaks
834
+ #
835
+ # -- wilsonb
836
+
837
+ def self.all= specs
838
+ @@all = @@stubs = specs
839
+ end
840
+
841
+ ##
842
+ # Return full names of all specs in sorted order.
843
+
844
+ def self.all_names
845
+ self._all.map(&:full_name)
846
+ end
847
+
848
+ ##
849
+ # Return the list of all array-oriented instance variables.
850
+ #--
851
+ # Not sure why we need to use so much stupid reflection in here...
852
+
853
+ def self.array_attributes
854
+ @@array_attributes.dup
855
+ end
856
+
857
+ ##
858
+ # Return the list of all instance variables.
859
+ #--
860
+ # Not sure why we need to use so much stupid reflection in here...
861
+
862
+ def self.attribute_names
863
+ @@attributes.dup
864
+ end
865
+
866
+ ##
867
+ # Return the directories that Specification uses to find specs.
868
+
869
+ def self.dirs
870
+ @@dirs ||= Gem.path.collect { |dir|
871
+ File.join dir.dup.untaint, "specifications"
872
+ }
873
+ end
874
+
875
+ ##
876
+ # Set the directories that Specification uses to find specs. Setting
877
+ # this resets the list of known specs.
878
+
879
+ def self.dirs= dirs
880
+ self.reset
881
+
882
+ @@dirs = Array(dirs).map { |dir| File.join dir, "specifications" }
883
+ end
884
+
885
+ extend Enumerable
886
+
887
+ ##
888
+ # Enumerate every known spec. See ::dirs= and ::add_spec to set the list of
889
+ # specs.
890
+
891
+ def self.each
892
+ return enum_for(:each) unless block_given?
893
+
894
+ self._all.each do |x|
895
+ yield x
896
+ end
897
+ end
898
+
899
+ ##
900
+ # Returns every spec that matches +name+ and optional +requirements+.
901
+
902
+ def self.find_all_by_name name, *requirements
903
+ requirements = Gem::Requirement.default if requirements.empty?
904
+
905
+ # TODO: maybe try: find_all { |s| spec === dep }
906
+
907
+ Gem::Dependency.new(name, *requirements).matching_specs
908
+ end
909
+
910
+ ##
911
+ # Find the best specification matching a +name+ and +requirements+. Raises
912
+ # if the dependency doesn't resolve to a valid specification.
913
+
914
+ def self.find_by_name name, *requirements
915
+ requirements = Gem::Requirement.default if requirements.empty?
916
+
917
+ # TODO: maybe try: find { |s| spec === dep }
918
+
919
+ Gem::Dependency.new(name, *requirements).to_spec
920
+ end
921
+
922
+ ##
923
+ # Return the best specification that contains the file matching +path+.
924
+
925
+ def self.find_by_path path
926
+ self.find { |spec|
927
+ spec.contains_requirable_file? path
928
+ }
929
+ end
930
+
931
+ ##
932
+ # Return the best specification that contains the file matching +path+
933
+ # amongst the specs that are not activated.
934
+
935
+ def self.find_inactive_by_path path
936
+ stub = stubs.find { |s|
937
+ s.contains_requirable_file? path unless s.activated?
938
+ }
939
+ stub && stub.to_spec
940
+ end
941
+
942
+ ##
943
+ # Return currently unresolved specs that contain the file matching +path+.
944
+
945
+ def self.find_in_unresolved path
946
+ # TODO: do we need these?? Kill it
947
+ specs = unresolved_deps.values.map { |dep| dep.to_specs }.flatten
948
+
949
+ specs.find_all { |spec| spec.contains_requirable_file? path }
950
+ end
951
+
952
+ ##
953
+ # Search through all unresolved deps and sub-dependencies and return
954
+ # specs that contain the file matching +path+.
955
+
956
+ def self.find_in_unresolved_tree path
957
+ specs = unresolved_deps.values.map { |dep| dep.to_specs }.flatten
958
+
959
+ specs.reverse_each do |spec|
960
+ trails = []
961
+ spec.traverse do |from_spec, dep, to_spec, trail|
962
+ next unless to_spec.conflicts.empty?
963
+ trails << trail if to_spec.contains_requirable_file? path
964
+ end
965
+
966
+ next if trails.empty?
967
+
968
+ return trails.map(&:reverse).sort.first.reverse
969
+ end
970
+
971
+ []
972
+ end
973
+
974
+ ##
975
+ # Special loader for YAML files. When a Specification object is loaded
976
+ # from a YAML file, it bypasses the normal Ruby object initialization
977
+ # routine (#initialize). This method makes up for that and deals with
978
+ # gems of different ages.
979
+ #
980
+ # +input+ can be anything that YAML.load() accepts: String or IO.
981
+
982
+ def self.from_yaml(input)
983
+ Gem.load_yaml
984
+
985
+ input = normalize_yaml_input input
986
+ spec = YAML.load input
987
+
988
+ if spec && spec.class == FalseClass then
989
+ raise Gem::EndOfYAMLException
990
+ end
991
+
992
+ unless Gem::Specification === spec then
993
+ raise Gem::Exception, "YAML data doesn't evaluate to gem specification"
994
+ end
995
+
996
+ spec.specification_version ||= NONEXISTENT_SPECIFICATION_VERSION
997
+ spec.reset_nil_attributes_to_default
998
+
999
+ spec
1000
+ end
1001
+
1002
+ ##
1003
+ # Return the latest specs, optionally including prerelease specs if
1004
+ # +prerelease+ is true.
1005
+
1006
+ def self.latest_specs prerelease = false
1007
+ result = Hash.new { |h,k| h[k] = {} }
1008
+ native = {}
1009
+
1010
+ Gem::Specification.reverse_each do |spec|
1011
+ next if spec.version.prerelease? unless prerelease
1012
+
1013
+ native[spec.name] = spec.version if spec.platform == Gem::Platform::RUBY
1014
+ result[spec.name][spec.platform] = spec
1015
+ end
1016
+
1017
+ result.map(&:last).map(&:values).flatten.reject { |spec|
1018
+ minimum = native[spec.name]
1019
+ minimum && spec.version < minimum
1020
+ }.sort_by{ |tup| tup.name }
1021
+ end
1022
+
1023
+ ##
1024
+ # Loads Ruby format gemspec from +file+.
1025
+
1026
+ def self.load file
1027
+ return unless file
1028
+ file = file.dup.untaint
1029
+ return unless File.file?(file)
1030
+
1031
+ spec = LOAD_CACHE[file]
1032
+ return spec if spec
1033
+
1034
+ code = if defined? Encoding
1035
+ File.read file, :mode => 'r:UTF-8:-'
1036
+ else
1037
+ File.read file
1038
+ end
1039
+
1040
+ code.untaint
1041
+
1042
+ begin
1043
+ spec = eval code, binding, file
1044
+
1045
+ if Gem::Specification === spec
1046
+ spec.loaded_from = File.expand_path file.to_s
1047
+ LOAD_CACHE[file] = spec
1048
+ return spec
1049
+ end
1050
+
1051
+ warn "[#{file}] isn't a Gem::Specification (#{spec.class} instead)."
1052
+ rescue SignalException, SystemExit
1053
+ raise
1054
+ rescue SyntaxError, Exception => e
1055
+ warn "Invalid gemspec in [#{file}]: #{e}"
1056
+ end
1057
+
1058
+ nil
1059
+ end
1060
+
1061
+ ##
1062
+ # Specification attributes that must be non-nil
1063
+
1064
+ def self.non_nil_attributes
1065
+ @@non_nil_attributes.dup
1066
+ end
1067
+
1068
+ ##
1069
+ # Make sure the YAML specification is properly formatted with dashes
1070
+
1071
+ def self.normalize_yaml_input(input)
1072
+ result = input.respond_to?(:read) ? input.read : input
1073
+ result = "--- " + result unless result =~ /\A--- /
1074
+ result.gsub!(/ !!null \n/, " \n")
1075
+ # date: 2011-04-26 00:00:00.000000000Z
1076
+ # date: 2011-04-26 00:00:00.000000000 Z
1077
+ result.gsub!(/^(date: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+?)Z/, '\1 Z')
1078
+ result
1079
+ end
1080
+
1081
+ ##
1082
+ # Return a list of all outdated local gem names. This method is HEAVY
1083
+ # as it must go fetch specifications from the server.
1084
+ #
1085
+ # Use outdated_and_latest_version if you wish to retrieve the latest remote
1086
+ # version as well.
1087
+
1088
+ def self.outdated
1089
+ outdated_and_latest_version.map { |local, _| local.name }
1090
+ end
1091
+
1092
+ ##
1093
+ # Enumerates the outdated local gems yielding the local specification and
1094
+ # the latest remote version.
1095
+ #
1096
+ # This method may take some time to return as it must check each local gem
1097
+ # against the server's index.
1098
+
1099
+ def self.outdated_and_latest_version
1100
+ return enum_for __method__ unless block_given?
1101
+
1102
+ # TODO: maybe we should switch to rubygems' version service?
1103
+ fetcher = Gem::SpecFetcher.fetcher
1104
+
1105
+ latest_specs(true).each do |local_spec|
1106
+ dependency =
1107
+ Gem::Dependency.new local_spec.name, ">= #{local_spec.version}"
1108
+
1109
+ remotes, = fetcher.search_for_dependency dependency
1110
+ remotes = remotes.map { |n, _| n.version }
1111
+
1112
+ latest_remote = remotes.sort.last
1113
+
1114
+ yield [local_spec, latest_remote] if
1115
+ latest_remote and local_spec.version < latest_remote
1116
+ end
1117
+
1118
+ nil
1119
+ end
1120
+
1121
+ ##
1122
+ # Removes +spec+ from the known specs.
1123
+
1124
+ def self.remove_spec spec
1125
+ _all.delete spec
1126
+ stubs.delete_if { |s| s.full_name == spec.full_name }
1127
+ end
1128
+
1129
+ ##
1130
+ # Is +name+ a required attribute?
1131
+
1132
+ def self.required_attribute?(name)
1133
+ @@required_attributes.include? name.to_sym
1134
+ end
1135
+
1136
+ ##
1137
+ # Required specification attributes
1138
+
1139
+ def self.required_attributes
1140
+ @@required_attributes.dup
1141
+ end
1142
+
1143
+ ##
1144
+ # Reset the list of known specs, running pre and post reset hooks
1145
+ # registered in Gem.
1146
+
1147
+ def self.reset
1148
+ @@dirs = nil
1149
+ Gem.pre_reset_hooks.each { |hook| hook.call }
1150
+ @@all = nil
1151
+ @@stubs = nil
1152
+ _clear_load_cache
1153
+ unresolved = unresolved_deps
1154
+ unless unresolved.empty? then
1155
+ w = "W" + "ARN"
1156
+ warn "#{w}: Unresolved specs during Gem::Specification.reset:"
1157
+ unresolved.values.each do |dep|
1158
+ warn " #{dep}"
1159
+ end
1160
+ warn "#{w}: Clearing out unresolved specs."
1161
+ warn "Please report a bug if this causes problems."
1162
+ unresolved.clear
1163
+ end
1164
+ Gem.post_reset_hooks.each { |hook| hook.call }
1165
+ end
1166
+
1167
+ # DOC: This method needs documented or nodoc'd
1168
+ def self.unresolved_deps
1169
+ @unresolved_deps ||= Hash.new { |h, n| h[n] = Gem::Dependency.new n }
1170
+ end
1171
+
1172
+ ##
1173
+ # Load custom marshal format, re-initializing defaults as needed
1174
+
1175
+ def self._load(str)
1176
+ array = Marshal.load str
1177
+
1178
+ spec = Gem::Specification.new
1179
+ spec.instance_variable_set :@specification_version, array[1]
1180
+
1181
+ current_version = CURRENT_SPECIFICATION_VERSION
1182
+
1183
+ field_count = if spec.specification_version > current_version then
1184
+ spec.instance_variable_set :@specification_version,
1185
+ current_version
1186
+ MARSHAL_FIELDS[current_version]
1187
+ else
1188
+ MARSHAL_FIELDS[spec.specification_version]
1189
+ end
1190
+
1191
+ if array.size < field_count then
1192
+ raise TypeError, "invalid Gem::Specification format #{array.inspect}"
1193
+ end
1194
+
1195
+ # Cleanup any YAML::PrivateType. They only show up for an old bug
1196
+ # where nil => null, so just convert them to nil based on the type.
1197
+
1198
+ array.map! { |e| e.kind_of?(YAML::PrivateType) ? nil : e }
1199
+
1200
+ spec.instance_variable_set :@rubygems_version, array[0]
1201
+ # spec version
1202
+ spec.instance_variable_set :@name, array[2]
1203
+ spec.instance_variable_set :@version, array[3]
1204
+ spec.date = array[4]
1205
+ spec.instance_variable_set :@summary, array[5]
1206
+ spec.instance_variable_set :@required_ruby_version, array[6]
1207
+ spec.instance_variable_set :@required_rubygems_version, array[7]
1208
+ spec.instance_variable_set :@original_platform, array[8]
1209
+ spec.instance_variable_set :@dependencies, array[9]
1210
+ spec.instance_variable_set :@rubyforge_project, array[10]
1211
+ spec.instance_variable_set :@email, array[11]
1212
+ spec.instance_variable_set :@authors, array[12]
1213
+ spec.instance_variable_set :@description, array[13]
1214
+ spec.instance_variable_set :@homepage, array[14]
1215
+ spec.instance_variable_set :@has_rdoc, array[15]
1216
+ spec.instance_variable_set :@new_platform, array[16]
1217
+ spec.instance_variable_set :@platform, array[16].to_s
1218
+ spec.instance_variable_set :@license, array[17]
1219
+ spec.instance_variable_set :@metadata, array[18]
1220
+ spec.instance_variable_set :@loaded, false
1221
+ spec.instance_variable_set :@activated, false
1222
+
1223
+ spec
1224
+ end
1225
+
1226
+ def <=>(other) # :nodoc:
1227
+ sort_obj <=> other.sort_obj
1228
+ end
1229
+
1230
+ def == other # :nodoc:
1231
+ self.class === other &&
1232
+ name == other.name &&
1233
+ version == other.version &&
1234
+ platform == other.platform
1235
+ end
1236
+
1237
+ ##
1238
+ # Dump only crucial instance variables.
1239
+ #--
1240
+ # MAINTAIN ORDER!
1241
+ # (down with the man)
1242
+
1243
+ def _dump(limit)
1244
+ Marshal.dump [
1245
+ @rubygems_version,
1246
+ @specification_version,
1247
+ @name,
1248
+ @version,
1249
+ date,
1250
+ @summary,
1251
+ @required_ruby_version,
1252
+ @required_rubygems_version,
1253
+ @original_platform,
1254
+ @dependencies,
1255
+ @rubyforge_project,
1256
+ @email,
1257
+ @authors,
1258
+ @description,
1259
+ @homepage,
1260
+ true, # has_rdoc
1261
+ @new_platform,
1262
+ @licenses,
1263
+ @metadata
1264
+ ]
1265
+ end
1266
+
1267
+ ##
1268
+ # Activate this spec, registering it as a loaded spec and adding
1269
+ # it's lib paths to $LOAD_PATH. Returns true if the spec was
1270
+ # activated, false if it was previously activated. Freaks out if
1271
+ # there are conflicts upon activation.
1272
+
1273
+ def activate
1274
+ other = Gem.loaded_specs[self.name]
1275
+ if other then
1276
+ check_version_conflict other
1277
+ return false
1278
+ end
1279
+
1280
+ raise_if_conflicts
1281
+
1282
+ activate_dependencies
1283
+ add_self_to_load_path
1284
+
1285
+ Gem.loaded_specs[self.name] = self
1286
+ @activated = true
1287
+ @loaded = true
1288
+
1289
+ return true
1290
+ end
1291
+
1292
+ ##
1293
+ # Activate all unambiguously resolved runtime dependencies of this
1294
+ # spec. Add any ambiguous dependencies to the unresolved list to be
1295
+ # resolved later, as needed.
1296
+
1297
+ def activate_dependencies
1298
+ unresolved = Gem::Specification.unresolved_deps
1299
+
1300
+ self.runtime_dependencies.each do |spec_dep|
1301
+ if loaded = Gem.loaded_specs[spec_dep.name]
1302
+ next if spec_dep.matches_spec? loaded
1303
+
1304
+ msg = "can't satisfy '#{spec_dep}', already activated '#{loaded.full_name}'"
1305
+ e = Gem::LoadError.new msg
1306
+ e.name = spec_dep.name
1307
+
1308
+ raise e
1309
+ end
1310
+
1311
+ specs = spec_dep.to_specs
1312
+
1313
+ if specs.size == 1 then
1314
+ specs.first.activate
1315
+ else
1316
+ name = spec_dep.name
1317
+ unresolved[name] = unresolved[name].merge spec_dep
1318
+ end
1319
+ end
1320
+
1321
+ unresolved.delete self.name
1322
+ end
1323
+
1324
+ ##
1325
+ # Returns an array with bindir attached to each executable in the
1326
+ # +executables+ list
1327
+
1328
+ def add_bindir(executables)
1329
+ return nil if executables.nil?
1330
+
1331
+ if @bindir then
1332
+ Array(executables).map { |e| File.join(@bindir, e) }
1333
+ else
1334
+ executables
1335
+ end
1336
+ rescue
1337
+ return nil
1338
+ end
1339
+
1340
+ ##
1341
+ # Adds a dependency on gem +dependency+ with type +type+ that requires
1342
+ # +requirements+. Valid types are currently <tt>:runtime</tt> and
1343
+ # <tt>:development</tt>.
1344
+
1345
+ def add_dependency_with_type(dependency, type, *requirements)
1346
+ requirements = if requirements.empty? then
1347
+ Gem::Requirement.default
1348
+ else
1349
+ requirements.flatten
1350
+ end
1351
+
1352
+ unless dependency.respond_to?(:name) &&
1353
+ dependency.respond_to?(:version_requirements)
1354
+ dependency = Gem::Dependency.new(dependency.to_s, requirements, type)
1355
+ end
1356
+
1357
+ dependencies << dependency
1358
+ end
1359
+
1360
+ private :add_dependency_with_type
1361
+
1362
+ alias add_dependency add_runtime_dependency
1363
+
1364
+ ##
1365
+ # Adds this spec's require paths to LOAD_PATH, in the proper location.
1366
+
1367
+ def add_self_to_load_path
1368
+ return if default_gem?
1369
+
1370
+ paths = full_require_paths
1371
+
1372
+ # gem directories must come after -I and ENV['RUBYLIB']
1373
+ insert_index = Gem.load_path_insert_index
1374
+
1375
+ if insert_index then
1376
+ # gem directories must come after -I and ENV['RUBYLIB']
1377
+ $LOAD_PATH.insert(insert_index, *paths)
1378
+ else
1379
+ # we are probably testing in core, -I and RUBYLIB don't apply
1380
+ $LOAD_PATH.unshift(*paths)
1381
+ end
1382
+ end
1383
+
1384
+ ##
1385
+ # Singular reader for #authors. Returns the first author in the list
1386
+
1387
+ def author
1388
+ val = authors and val.first
1389
+ end
1390
+
1391
+ ##
1392
+ # The list of author names who wrote this gem.
1393
+ #
1394
+ # spec.authors = ['Chad Fowler', 'Jim Weirich', 'Rich Kilmer']
1395
+
1396
+ def authors
1397
+ @authors ||= []
1398
+ end
1399
+
1400
+ ##
1401
+ # Returns the full path to installed gem's bin directory.
1402
+ #
1403
+ # NOTE: do not confuse this with +bindir+, which is just 'bin', not
1404
+ # a full path.
1405
+
1406
+ def bin_dir
1407
+ @bin_dir ||= File.join gem_dir, bindir # TODO: this is unfortunate
1408
+ end
1409
+
1410
+ ##
1411
+ # Returns the full path to an executable named +name+ in this gem.
1412
+
1413
+ def bin_file name
1414
+ File.join bin_dir, name
1415
+ end
1416
+
1417
+ ##
1418
+ # Returns the build_args used to install the gem
1419
+
1420
+ def build_args
1421
+ if File.exist? build_info_file
1422
+ build_info = File.readlines build_info_file
1423
+ build_info = build_info.map { |x| x.strip }
1424
+ build_info.delete ""
1425
+ build_info
1426
+ else
1427
+ []
1428
+ end
1429
+ end
1430
+
1431
+ ##
1432
+ # Builds extensions for this platform if the gem has extensions listed and
1433
+ # the gem.build_complete file is missing.
1434
+
1435
+ def build_extensions # :nodoc:
1436
+ return if default_gem?
1437
+ return if extensions.empty?
1438
+ return if installed_by_version < Gem::Version.new('2.2.0.preview.2')
1439
+ return if File.exist? gem_build_complete_path
1440
+ return if !File.writable?(base_dir)
1441
+ return if !File.exist?(File.join(base_dir, 'extensions'))
1442
+
1443
+ begin
1444
+ # We need to require things in $LOAD_PATH without looking for the
1445
+ # extension we are about to build.
1446
+ unresolved_deps = Gem::Specification.unresolved_deps.dup
1447
+ Gem::Specification.unresolved_deps.clear
1448
+
1449
+ require 'rubygems/config_file'
1450
+ require 'rubygems/ext'
1451
+ require 'rubygems/user_interaction'
1452
+
1453
+ ui = Gem::SilentUI.new
1454
+ Gem::DefaultUserInteraction.use_ui ui do
1455
+ builder = Gem::Ext::Builder.new self
1456
+ builder.build_extensions
1457
+ end
1458
+ ensure
1459
+ ui.close if ui
1460
+ Gem::Specification.unresolved_deps.replace unresolved_deps
1461
+ end
1462
+ end
1463
+
1464
+ ##
1465
+ # Returns the full path to the build info directory
1466
+
1467
+ def build_info_dir
1468
+ File.join base_dir, "build_info"
1469
+ end
1470
+
1471
+ ##
1472
+ # Returns the full path to the file containing the build
1473
+ # information generated when the gem was installed
1474
+
1475
+ def build_info_file
1476
+ File.join build_info_dir, "#{full_name}.info"
1477
+ end
1478
+
1479
+ ##
1480
+ # Used to detect if the gem is bundled in older version of Ruby, but not
1481
+ # detectable as default gem (see BasicSpecification#default_gem?).
1482
+
1483
+ def bundled_gem_in_old_ruby?
1484
+ !default_gem? &&
1485
+ RUBY_VERSION < "2.0.0" &&
1486
+ summary == "This #{name} is bundled with Ruby"
1487
+ end
1488
+
1489
+ ##
1490
+ # Returns the full path to the cache directory containing this
1491
+ # spec's cached gem.
1492
+
1493
+ def cache_dir
1494
+ @cache_dir ||= File.join base_dir, "cache"
1495
+ end
1496
+
1497
+ ##
1498
+ # Returns the full path to the cached gem for this spec.
1499
+
1500
+ def cache_file
1501
+ @cache_file ||= File.join cache_dir, "#{full_name}.gem"
1502
+ end
1503
+
1504
+ ##
1505
+ # Return any possible conflicts against the currently loaded specs.
1506
+
1507
+ def conflicts
1508
+ conflicts = {}
1509
+ self.runtime_dependencies.each { |dep|
1510
+ spec = Gem.loaded_specs[dep.name]
1511
+ if spec and not spec.satisfies_requirement? dep
1512
+ (conflicts[spec] ||= []) << dep
1513
+ end
1514
+ }
1515
+ conflicts
1516
+ end
1517
+
1518
+ ##
1519
+ # The date this gem was created. Lazily defaults to the current UTC date.
1520
+ #
1521
+ # There is no need to set this in your gem specification.
1522
+
1523
+ def date
1524
+ @date ||= TODAY
1525
+ end
1526
+
1527
+ DateLike = Object.new # :nodoc:
1528
+ def DateLike.===(obj) # :nodoc:
1529
+ defined?(::Date) and Date === obj
1530
+ end
1531
+
1532
+ DateTimeFormat = # :nodoc:
1533
+ /\A
1534
+ (\d{4})-(\d{2})-(\d{2})
1535
+ (\s+ \d{2}:\d{2}:\d{2}\.\d+ \s* (Z | [-+]\d\d:\d\d) )?
1536
+ \Z/x
1537
+
1538
+ ##
1539
+ # The date this gem was created
1540
+ #
1541
+ # DO NOT set this, it is set automatically when the gem is packaged.
1542
+
1543
+ def date= date
1544
+ # We want to end up with a Time object with one-day resolution.
1545
+ # This is the cleanest, most-readable, faster-than-using-Date
1546
+ # way to do it.
1547
+ @date = case date
1548
+ when String then
1549
+ if DateTimeFormat =~ date then
1550
+ Time.utc($1.to_i, $2.to_i, $3.to_i)
1551
+
1552
+ # Workaround for where the date format output from psych isn't
1553
+ # parsed as a Time object by syck and thus comes through as a
1554
+ # string.
1555
+ elsif /\A(\d{4})-(\d{2})-(\d{2}) \d{2}:\d{2}:\d{2}\.\d+?Z\z/ =~ date then
1556
+ Time.utc($1.to_i, $2.to_i, $3.to_i)
1557
+ else
1558
+ raise(Gem::InvalidSpecificationException,
1559
+ "invalid date format in specification: #{date.inspect}")
1560
+ end
1561
+ when Time, DateLike then
1562
+ Time.utc(date.year, date.month, date.day)
1563
+ else
1564
+ TODAY
1565
+ end
1566
+ end
1567
+
1568
+ ##
1569
+ # The default executable for this gem.
1570
+ #
1571
+ # Deprecated: The name of the gem is assumed to be the name of the
1572
+ # executable now. See Gem.bin_path.
1573
+
1574
+ def default_executable # :nodoc:
1575
+ if defined?(@default_executable) and @default_executable
1576
+ result = @default_executable
1577
+ elsif @executables and @executables.size == 1
1578
+ result = Array(@executables).first
1579
+ else
1580
+ result = nil
1581
+ end
1582
+ result
1583
+ end
1584
+
1585
+ ##
1586
+ # The default value for specification attribute +name+
1587
+
1588
+ def default_value name
1589
+ @@default_value[name]
1590
+ end
1591
+
1592
+ ##
1593
+ # A list of Gem::Dependency objects this gem depends on.
1594
+ #
1595
+ # Use #add_dependency or #add_development_dependency to add dependencies to
1596
+ # a gem.
1597
+
1598
+ def dependencies
1599
+ @dependencies ||= []
1600
+ end
1601
+
1602
+ ##
1603
+ # Return a list of all gems that have a dependency on this gemspec. The
1604
+ # list is structured with entries that conform to:
1605
+ #
1606
+ # [depending_gem, dependency, [list_of_gems_that_satisfy_dependency]]
1607
+
1608
+ def dependent_gems
1609
+ out = []
1610
+ Gem::Specification.each do |spec|
1611
+ spec.dependencies.each do |dep|
1612
+ if self.satisfies_requirement?(dep) then
1613
+ sats = []
1614
+ find_all_satisfiers(dep) do |sat|
1615
+ sats << sat
1616
+ end
1617
+ out << [spec, dep, sats]
1618
+ end
1619
+ end
1620
+ end
1621
+ out
1622
+ end
1623
+
1624
+ ##
1625
+ # Returns all specs that matches this spec's runtime dependencies.
1626
+
1627
+ def dependent_specs
1628
+ runtime_dependencies.map { |dep| dep.to_specs }.flatten
1629
+ end
1630
+
1631
+ ##
1632
+ # A detailed description of this gem. See also #summary
1633
+
1634
+ def description= str
1635
+ @description = str.to_s
1636
+ end
1637
+
1638
+ ##
1639
+ # List of dependencies that are used for development
1640
+
1641
+ def development_dependencies
1642
+ dependencies.select { |d| d.type == :development }
1643
+ end
1644
+
1645
+ ##
1646
+ # Returns the full path to this spec's documentation directory. If +type+
1647
+ # is given it will be appended to the end. For example:
1648
+ #
1649
+ # spec.doc_dir # => "/path/to/gem_repo/doc/a-1"
1650
+ #
1651
+ # spec.doc_dir 'ri' # => "/path/to/gem_repo/doc/a-1/ri"
1652
+
1653
+ def doc_dir type = nil
1654
+ @doc_dir ||= File.join base_dir, 'doc', full_name
1655
+
1656
+ if type then
1657
+ File.join @doc_dir, type
1658
+ else
1659
+ @doc_dir
1660
+ end
1661
+ end
1662
+
1663
+ def encode_with coder # :nodoc:
1664
+ mark_version
1665
+
1666
+ coder.add 'name', @name
1667
+ coder.add 'version', @version
1668
+ platform = case @original_platform
1669
+ when nil, '' then
1670
+ 'ruby'
1671
+ when String then
1672
+ @original_platform
1673
+ else
1674
+ @original_platform.to_s
1675
+ end
1676
+ coder.add 'platform', platform
1677
+
1678
+ attributes = @@attributes.map(&:to_s) - %w[name version platform]
1679
+ attributes.each do |name|
1680
+ coder.add name, instance_variable_get("@#{name}")
1681
+ end
1682
+ end
1683
+
1684
+ def eql? other # :nodoc:
1685
+ self.class === other && same_attributes?(other)
1686
+ end
1687
+
1688
+ ##
1689
+ # Singular accessor for #executables
1690
+
1691
+ def executable
1692
+ val = executables and val.first
1693
+ end
1694
+
1695
+ ##
1696
+ # Singular accessor for #executables
1697
+
1698
+ def executable=o
1699
+ self.executables = [o]
1700
+ end
1701
+
1702
+ ##
1703
+ # Sets executables to +value+, ensuring it is an array. Don't
1704
+ # use this, push onto the array instead.
1705
+
1706
+ def executables= value
1707
+ # TODO: warn about setting instead of pushing
1708
+ @executables = Array(value)
1709
+ end
1710
+
1711
+ ##
1712
+ # Sets extensions to +extensions+, ensuring it is an array. Don't
1713
+ # use this, push onto the array instead.
1714
+
1715
+ def extensions= extensions
1716
+ # TODO: warn about setting instead of pushing
1717
+ @extensions = Array extensions
1718
+ end
1719
+
1720
+ ##
1721
+ # Sets extra_rdoc_files to +files+, ensuring it is an array. Don't
1722
+ # use this, push onto the array instead.
1723
+
1724
+ def extra_rdoc_files= files
1725
+ # TODO: warn about setting instead of pushing
1726
+ @extra_rdoc_files = Array files
1727
+ end
1728
+
1729
+ ##
1730
+ # The default (generated) file name of the gem. See also #spec_name.
1731
+ #
1732
+ # spec.file_name # => "example-1.0.gem"
1733
+
1734
+ def file_name
1735
+ "#{full_name}.gem"
1736
+ end
1737
+
1738
+ ##
1739
+ # Sets files to +files+, ensuring it is an array.
1740
+
1741
+ def files= files
1742
+ @files = Array files
1743
+ end
1744
+
1745
+ ##
1746
+ # Finds all gems that satisfy +dep+
1747
+
1748
+ def find_all_satisfiers dep
1749
+ Gem::Specification.each do |spec|
1750
+ yield spec if spec.satisfies_requirement? dep
1751
+ end
1752
+ end
1753
+
1754
+ private :find_all_satisfiers
1755
+
1756
+ ##
1757
+ # Creates a duplicate spec without large blobs that aren't used at runtime.
1758
+
1759
+ def for_cache
1760
+ spec = dup
1761
+
1762
+ spec.files = nil
1763
+ spec.test_files = nil
1764
+
1765
+ spec
1766
+ end
1767
+
1768
+ def find_full_gem_path # :nodoc:
1769
+ super || File.expand_path(File.join(gems_dir, original_name))
1770
+ end
1771
+ private :find_full_gem_path
1772
+
1773
+ def full_name
1774
+ @full_name ||= super
1775
+ end
1776
+
1777
+ ##
1778
+ # The path to the gem.build_complete file within the extension install
1779
+ # directory.
1780
+
1781
+ def gem_build_complete_path # :nodoc:
1782
+ File.join extension_dir, 'gem.build_complete'
1783
+ end
1784
+
1785
+ ##
1786
+ # Work around bundler removing my methods
1787
+
1788
+ def gem_dir # :nodoc:
1789
+ super
1790
+ end
1791
+
1792
+ ##
1793
+ # Deprecated and ignored, defaults to true.
1794
+ #
1795
+ # Formerly used to indicate this gem was RDoc-capable.
1796
+
1797
+ def has_rdoc # :nodoc:
1798
+ true
1799
+ end
1800
+
1801
+ ##
1802
+ # Deprecated and ignored.
1803
+ #
1804
+ # Formerly used to indicate this gem was RDoc-capable.
1805
+
1806
+ def has_rdoc= ignored # :nodoc:
1807
+ @has_rdoc = true
1808
+ end
1809
+
1810
+ alias :has_rdoc? :has_rdoc # :nodoc:
1811
+
1812
+ ##
1813
+ # True if this gem has files in test_files
1814
+
1815
+ def has_unit_tests? # :nodoc:
1816
+ not test_files.empty?
1817
+ end
1818
+
1819
+ # :stopdoc:
1820
+ alias has_test_suite? has_unit_tests?
1821
+ # :startdoc:
1822
+
1823
+ def hash # :nodoc:
1824
+ name.hash ^ version.hash
1825
+ end
1826
+
1827
+ def init_with coder # :nodoc:
1828
+ @installed_by_version ||= nil
1829
+ yaml_initialize coder.tag, coder.map
1830
+ end
1831
+
1832
+ ##
1833
+ # Specification constructor. Assigns the default values to the attributes
1834
+ # and yields itself for further initialization. Optionally takes +name+ and
1835
+ # +version+.
1836
+
1837
+ def initialize name = nil, version = nil
1838
+ @loaded = false
1839
+ @activated = false
1840
+ self.loaded_from = nil
1841
+ @original_platform = nil
1842
+ @installed_by_version = nil
1843
+
1844
+ @@nil_attributes.each do |key|
1845
+ instance_variable_set "@#{key}", nil
1846
+ end
1847
+
1848
+ @@non_nil_attributes.each do |key|
1849
+ default = default_value(key)
1850
+ value = Dupable[key] ? default.dup : default
1851
+ instance_variable_set "@#{key}", value
1852
+ end
1853
+
1854
+ @new_platform = Gem::Platform::RUBY
1855
+
1856
+ self.name = name if name
1857
+ self.version = version if version
1858
+
1859
+ yield self if block_given?
1860
+ end
1861
+
1862
+ ##
1863
+ # Duplicates array_attributes from +other_spec+ so state isn't shared.
1864
+
1865
+ def initialize_copy other_spec
1866
+ self.class.array_attributes.each do |name|
1867
+ name = :"@#{name}"
1868
+ next unless other_spec.instance_variable_defined? name
1869
+
1870
+ begin
1871
+ val = other_spec.instance_variable_get(name)
1872
+ if val then
1873
+ instance_variable_set name, val.dup
1874
+ elsif Gem.configuration.really_verbose
1875
+ warn "WARNING: #{full_name} has an invalid nil value for #{name}"
1876
+ end
1877
+ rescue TypeError
1878
+ e = Gem::FormatException.new \
1879
+ "#{full_name} has an invalid value for #{name}"
1880
+
1881
+ e.file_path = loaded_from
1882
+ raise e
1883
+ end
1884
+ end
1885
+ end
1886
+
1887
+ ##
1888
+ # Expire memoized instance variables that can incorrectly generate, replace
1889
+ # or miss files due changes in certain attributes used to compute them.
1890
+
1891
+ def invalidate_memoized_attributes
1892
+ @full_name = nil
1893
+ @cache_file = nil
1894
+ end
1895
+
1896
+ private :invalidate_memoized_attributes
1897
+
1898
+ def inspect # :nodoc:
1899
+ if $DEBUG
1900
+ super
1901
+ else
1902
+ "#<#{self.class}:0x#{__id__.to_s(16)} #{full_name}>"
1903
+ end
1904
+ end
1905
+
1906
+ ##
1907
+ # Returns a string usable in Dir.glob to match all requirable paths
1908
+ # for this spec.
1909
+
1910
+ def lib_dirs_glob
1911
+ dirs = if self.require_paths.size > 1 then
1912
+ "{#{self.require_paths.join(',')}}"
1913
+ else
1914
+ self.require_paths.first
1915
+ end
1916
+
1917
+ "#{self.full_gem_path}/#{dirs}"
1918
+ end
1919
+
1920
+ ##
1921
+ # Files in the Gem under one of the require_paths
1922
+
1923
+ def lib_files
1924
+ @files.select do |file|
1925
+ require_paths.any? do |path|
1926
+ file.start_with? path
1927
+ end
1928
+ end
1929
+ end
1930
+
1931
+ ##
1932
+ # Singular accessor for #licenses
1933
+
1934
+ def license
1935
+ val = licenses and val.first
1936
+ end
1937
+
1938
+ ##
1939
+ # Plural accessor for setting licenses
1940
+ #
1941
+ # See #license= for details
1942
+
1943
+ def licenses
1944
+ @licenses ||= []
1945
+ end
1946
+
1947
+ def loaded_from= path # :nodoc:
1948
+ super
1949
+
1950
+ @bin_dir = nil
1951
+ @cache_dir = nil
1952
+ @cache_file = nil
1953
+ @doc_dir = nil
1954
+ @ri_dir = nil
1955
+ @spec_dir = nil
1956
+ @spec_file = nil
1957
+ end
1958
+
1959
+ ##
1960
+ # Sets the rubygems_version to the current RubyGems version.
1961
+
1962
+ def mark_version
1963
+ @rubygems_version = Gem::VERSION
1964
+ end
1965
+
1966
+ ##
1967
+ # Return all files in this gem that match for +glob+.
1968
+
1969
+ def matches_for_glob glob # TODO: rename?
1970
+ # TODO: do we need these?? Kill it
1971
+ glob = File.join(self.lib_dirs_glob, glob)
1972
+
1973
+ Dir[glob].map { |f| f.untaint } # FIX our tests are broken, run w/ SAFE=1
1974
+ end
1975
+
1976
+ ##
1977
+ # Warn about unknown attributes while loading a spec.
1978
+
1979
+ def method_missing(sym, *a, &b) # :nodoc:
1980
+ if @specification_version > CURRENT_SPECIFICATION_VERSION and
1981
+ sym.to_s =~ /=$/ then
1982
+ warn "ignoring #{sym} loading #{full_name}" if $DEBUG
1983
+ else
1984
+ super
1985
+ end
1986
+ end
1987
+
1988
+ ##
1989
+ # Is this specification missing its extensions? When this returns true you
1990
+ # probably want to build_extensions
1991
+
1992
+ def missing_extensions?
1993
+ return false if default_gem?
1994
+ return false if extensions.empty?
1995
+ return false if installed_by_version < Gem::Version.new('2.2.0.preview.2')
1996
+ return false if File.exist? gem_build_complete_path
1997
+
1998
+ true
1999
+ end
2000
+
2001
+ ##
2002
+ # Normalize the list of files so that:
2003
+ # * All file lists have redundancies removed.
2004
+ # * Files referenced in the extra_rdoc_files are included in the package
2005
+ # file list.
2006
+
2007
+ def normalize
2008
+ if defined?(@extra_rdoc_files) and @extra_rdoc_files then
2009
+ @extra_rdoc_files.uniq!
2010
+ @files ||= []
2011
+ @files.concat(@extra_rdoc_files)
2012
+ end
2013
+
2014
+ @files = @files.uniq if @files
2015
+ @extensions = @extensions.uniq if @extensions
2016
+ @test_files = @test_files.uniq if @test_files
2017
+ @executables = @executables.uniq if @executables
2018
+ @extra_rdoc_files = @extra_rdoc_files.uniq if @extra_rdoc_files
2019
+ end
2020
+
2021
+ ##
2022
+ # Return a NameTuple that represents this Specification
2023
+
2024
+ def name_tuple
2025
+ Gem::NameTuple.new name, version, original_platform
2026
+ end
2027
+
2028
+ ##
2029
+ # Returns the full name (name-version) of this gemspec using the original
2030
+ # platform. For use with legacy gems.
2031
+
2032
+ def original_name # :nodoc:
2033
+ if platform == Gem::Platform::RUBY or platform.nil? then
2034
+ "#{@name}-#{@version}"
2035
+ else
2036
+ "#{@name}-#{@version}-#{@original_platform}"
2037
+ end
2038
+ end
2039
+
2040
+ ##
2041
+ # Cruft. Use +platform+.
2042
+
2043
+ def original_platform # :nodoc:
2044
+ @original_platform ||= platform
2045
+ end
2046
+
2047
+ ##
2048
+ # The platform this gem runs on. See Gem::Platform for details.
2049
+
2050
+ def platform
2051
+ @new_platform ||= Gem::Platform::RUBY
2052
+ end
2053
+
2054
+ def pretty_print(q) # :nodoc:
2055
+ q.group 2, 'Gem::Specification.new do |s|', 'end' do
2056
+ q.breakable
2057
+
2058
+ attributes = @@attributes - [:name, :version]
2059
+ attributes.unshift :installed_by_version
2060
+ attributes.unshift :version
2061
+ attributes.unshift :name
2062
+
2063
+ attributes.each do |attr_name|
2064
+ current_value = self.send attr_name
2065
+ if current_value != default_value(attr_name) or
2066
+ self.class.required_attribute? attr_name then
2067
+
2068
+ q.text "s.#{attr_name} = "
2069
+
2070
+ if attr_name == :date then
2071
+ current_value = current_value.utc
2072
+
2073
+ q.text "Time.utc(#{current_value.year}, #{current_value.month}, #{current_value.day})"
2074
+ else
2075
+ q.pp current_value
2076
+ end
2077
+
2078
+ q.breakable
2079
+ end
2080
+ end
2081
+ end
2082
+ end
2083
+
2084
+ ##
2085
+ # Raise an exception if the version of this spec conflicts with the one
2086
+ # that is already loaded (+other+)
2087
+
2088
+ def check_version_conflict other # :nodoc:
2089
+ return if self.version == other.version
2090
+
2091
+ # This gem is already loaded. If the currently loaded gem is not in the
2092
+ # list of candidate gems, then we have a version conflict.
2093
+
2094
+ msg = "can't activate #{full_name}, already activated #{other.full_name}"
2095
+
2096
+ e = Gem::LoadError.new msg
2097
+ e.name = self.name
2098
+ # TODO: e.requirement = dep.requirement
2099
+
2100
+ raise e
2101
+ end
2102
+
2103
+ private :check_version_conflict
2104
+
2105
+ ##
2106
+ # Check the spec for possible conflicts and freak out if there are any.
2107
+
2108
+ def raise_if_conflicts # :nodoc:
2109
+ conf = self.conflicts
2110
+
2111
+ unless conf.empty? then
2112
+ raise Gem::ConflictError.new self, conf
2113
+ end
2114
+ end
2115
+
2116
+ ##
2117
+ # Sets rdoc_options to +value+, ensuring it is an array. Don't
2118
+ # use this, push onto the array instead.
2119
+
2120
+ def rdoc_options= options
2121
+ # TODO: warn about setting instead of pushing
2122
+ @rdoc_options = Array options
2123
+ end
2124
+
2125
+ ##
2126
+ # Singular accessor for #require_paths
2127
+
2128
+ def require_path
2129
+ val = require_paths and val.first
2130
+ end
2131
+
2132
+ ##
2133
+ # Singular accessor for #require_paths
2134
+
2135
+ def require_path= path
2136
+ self.require_paths = Array(path)
2137
+ end
2138
+
2139
+ ##
2140
+ # Set requirements to +req+, ensuring it is an array. Don't
2141
+ # use this, push onto the array instead.
2142
+
2143
+ def requirements= req
2144
+ # TODO: warn about setting instead of pushing
2145
+ @requirements = Array req
2146
+ end
2147
+
2148
+ def respond_to_missing? m, include_private = false # :nodoc:
2149
+ false
2150
+ end
2151
+
2152
+ ##
2153
+ # Returns the full path to this spec's ri directory.
2154
+
2155
+ def ri_dir
2156
+ @ri_dir ||= File.join base_dir, 'ri', full_name
2157
+ end
2158
+
2159
+ ##
2160
+ # Return a string containing a Ruby code representation of the given
2161
+ # object.
2162
+
2163
+ def ruby_code(obj)
2164
+ case obj
2165
+ when String then obj.dump
2166
+ when Array then '[' + obj.map { |x| ruby_code x }.join(", ") + ']'
2167
+ when Hash then
2168
+ seg = obj.keys.sort.map { |k| "#{k.to_s.dump} => #{obj[k].to_s.dump}" }
2169
+ "{ #{seg.join(', ')} }"
2170
+ when Gem::Version then obj.to_s.dump
2171
+ when DateLike then obj.strftime('%Y-%m-%d').dump
2172
+ when Time then obj.strftime('%Y-%m-%d').dump
2173
+ when Numeric then obj.inspect
2174
+ when true, false, nil then obj.inspect
2175
+ when Gem::Platform then "Gem::Platform.new(#{obj.to_a.inspect})"
2176
+ when Gem::Requirement then
2177
+ list = obj.as_list
2178
+ "Gem::Requirement.new(#{ruby_code(list.size == 1 ? obj.to_s : list)})"
2179
+ else raise Gem::Exception, "ruby_code case not handled: #{obj.class}"
2180
+ end
2181
+ end
2182
+
2183
+ private :ruby_code
2184
+
2185
+ ##
2186
+ # List of dependencies that will automatically be activated at runtime.
2187
+
2188
+ def runtime_dependencies
2189
+ dependencies.select { |d| d.type == :runtime }
2190
+ end
2191
+
2192
+ ##
2193
+ # True if this gem has the same attributes as +other+.
2194
+
2195
+ def same_attributes? spec
2196
+ @@attributes.all? { |name, default| self.send(name) == spec.send(name) }
2197
+ end
2198
+
2199
+ private :same_attributes?
2200
+
2201
+ ##
2202
+ # Checks if this specification meets the requirement of +dependency+.
2203
+
2204
+ def satisfies_requirement? dependency
2205
+ return @name == dependency.name &&
2206
+ dependency.requirement.satisfied_by?(@version)
2207
+ end
2208
+
2209
+ ##
2210
+ # Returns an object you can use to sort specifications in #sort_by.
2211
+
2212
+ def sort_obj
2213
+ [@name, @version, @new_platform == Gem::Platform::RUBY ? -1 : 1]
2214
+ end
2215
+
2216
+ ##
2217
+ # Used by Gem::Resolver to order Gem::Specification objects
2218
+
2219
+ def source # :nodoc:
2220
+ Gem::Source::Installed.new
2221
+ end
2222
+
2223
+ ##
2224
+ # Returns the full path to the directory containing this spec's
2225
+ # gemspec file. eg: /usr/local/lib/ruby/gems/1.8/specifications
2226
+
2227
+ def spec_dir
2228
+ @spec_dir ||= File.join base_dir, "specifications"
2229
+ end
2230
+
2231
+ ##
2232
+ # Returns the full path to this spec's gemspec file.
2233
+ # eg: /usr/local/lib/ruby/gems/1.8/specifications/mygem-1.0.gemspec
2234
+
2235
+ def spec_file
2236
+ @spec_file ||= File.join spec_dir, "#{full_name}.gemspec"
2237
+ end
2238
+
2239
+ ##
2240
+ # The default name of the gemspec. See also #file_name
2241
+ #
2242
+ # spec.spec_name # => "example-1.0.gemspec"
2243
+
2244
+ def spec_name
2245
+ "#{full_name}.gemspec"
2246
+ end
2247
+
2248
+ ##
2249
+ # A short summary of this gem's description.
2250
+
2251
+ def summary= str
2252
+ @summary = str.to_s.strip.
2253
+ gsub(/(\w-)\n[ \t]*(\w)/, '\1\2').gsub(/\n[ \t]*/, " ") # so. weird.
2254
+ end
2255
+
2256
+ ##
2257
+ # Singular accessor for #test_files
2258
+
2259
+ def test_file # :nodoc:
2260
+ val = test_files and val.first
2261
+ end
2262
+
2263
+ ##
2264
+ # Singular mutator for #test_files
2265
+
2266
+ def test_file= file # :nodoc:
2267
+ self.test_files = [file]
2268
+ end
2269
+
2270
+ ##
2271
+ # Test files included in this gem. You cannot append to this accessor, you
2272
+ # must assign to it.
2273
+
2274
+ def test_files # :nodoc:
2275
+ # Handle the possibility that we have @test_suite_file but not
2276
+ # @test_files. This will happen when an old gem is loaded via
2277
+ # YAML.
2278
+ if defined? @test_suite_file then
2279
+ @test_files = [@test_suite_file].flatten
2280
+ @test_suite_file = nil
2281
+ end
2282
+ if defined?(@test_files) and @test_files then
2283
+ @test_files
2284
+ else
2285
+ @test_files = []
2286
+ end
2287
+ end
2288
+
2289
+ ##
2290
+ # Returns a Ruby code representation of this specification, such that it can
2291
+ # be eval'ed and reconstruct the same specification later. Attributes that
2292
+ # still have their default values are omitted.
2293
+
2294
+ def to_ruby
2295
+ mark_version
2296
+ result = []
2297
+ result << "# -*- encoding: utf-8 -*-"
2298
+ result << "#{Gem::StubSpecification::PREFIX}#{name} #{version} #{platform} #{raw_require_paths.join("\0")}"
2299
+ result << "#{Gem::StubSpecification::PREFIX}#{extensions.join "\0"}" unless
2300
+ extensions.empty?
2301
+ result << nil
2302
+ result << "Gem::Specification.new do |s|"
2303
+
2304
+ result << " s.name = #{ruby_code name}"
2305
+ result << " s.version = #{ruby_code version}"
2306
+ unless platform.nil? or platform == Gem::Platform::RUBY then
2307
+ result << " s.platform = #{ruby_code original_platform}"
2308
+ end
2309
+ result << ""
2310
+ result << " s.required_rubygems_version = #{ruby_code required_rubygems_version} if s.respond_to? :required_rubygems_version="
2311
+
2312
+ if metadata and !metadata.empty?
2313
+ result << " s.metadata = #{ruby_code metadata} if s.respond_to? :metadata="
2314
+ end
2315
+ result << " s.require_paths = #{ruby_code raw_require_paths}"
2316
+
2317
+ handled = [
2318
+ :dependencies,
2319
+ :name,
2320
+ :platform,
2321
+ :require_paths,
2322
+ :required_rubygems_version,
2323
+ :specification_version,
2324
+ :version,
2325
+ :has_rdoc,
2326
+ :default_executable,
2327
+ :metadata
2328
+ ]
2329
+
2330
+ @@attributes.each do |attr_name|
2331
+ next if handled.include? attr_name
2332
+ current_value = self.send(attr_name)
2333
+ if current_value != default_value(attr_name) or
2334
+ self.class.required_attribute? attr_name then
2335
+ result << " s.#{attr_name} = #{ruby_code current_value}"
2336
+ end
2337
+ end
2338
+
2339
+ if @installed_by_version then
2340
+ result << nil
2341
+ result << " s.installed_by_version = \"#{Gem::VERSION}\" if s.respond_to? :installed_by_version"
2342
+ end
2343
+
2344
+ unless dependencies.empty? then
2345
+ result << nil
2346
+ result << " if s.respond_to? :specification_version then"
2347
+ result << " s.specification_version = #{specification_version}"
2348
+ result << nil
2349
+
2350
+ result << " if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then"
2351
+
2352
+ dependencies.each do |dep|
2353
+ req = dep.requirements_list.inspect
2354
+ dep.instance_variable_set :@type, :runtime if dep.type.nil? # HACK
2355
+ result << " s.add_#{dep.type}_dependency(%q<#{dep.name}>, #{req})"
2356
+ end
2357
+
2358
+ result << " else"
2359
+
2360
+ dependencies.each do |dep|
2361
+ version_reqs_param = dep.requirements_list.inspect
2362
+ result << " s.add_dependency(%q<#{dep.name}>, #{version_reqs_param})"
2363
+ end
2364
+
2365
+ result << ' end'
2366
+
2367
+ result << " else"
2368
+ dependencies.each do |dep|
2369
+ version_reqs_param = dep.requirements_list.inspect
2370
+ result << " s.add_dependency(%q<#{dep.name}>, #{version_reqs_param})"
2371
+ end
2372
+ result << " end"
2373
+ end
2374
+
2375
+ result << "end"
2376
+ result << nil
2377
+
2378
+ result.join "\n"
2379
+ end
2380
+
2381
+ ##
2382
+ # Returns a Ruby lighter-weight code representation of this specification,
2383
+ # used for indexing only.
2384
+ #
2385
+ # See #to_ruby.
2386
+
2387
+ def to_ruby_for_cache
2388
+ for_cache.to_ruby
2389
+ end
2390
+
2391
+ def to_s # :nodoc:
2392
+ "#<Gem::Specification name=#{@name} version=#{@version}>"
2393
+ end
2394
+
2395
+ ##
2396
+ # Returns self
2397
+
2398
+ def to_spec
2399
+ self
2400
+ end
2401
+
2402
+ def to_yaml(opts = {}) # :nodoc:
2403
+ if (YAML.const_defined?(:ENGINE) && !YAML::ENGINE.syck?) ||
2404
+ (defined?(Psych) && YAML == Psych) then
2405
+ # Because the user can switch the YAML engine behind our
2406
+ # back, we have to check again here to make sure that our
2407
+ # psych code was properly loaded, and load it if not.
2408
+ unless Gem.const_defined?(:NoAliasYAMLTree)
2409
+ require 'rubygems/psych_tree'
2410
+ end
2411
+
2412
+ builder = Gem::NoAliasYAMLTree.create
2413
+ builder << self
2414
+ ast = builder.tree
2415
+
2416
+ io = Gem::StringSink.new
2417
+ io.set_encoding Encoding::UTF_8 if Object.const_defined? :Encoding
2418
+
2419
+ Psych::Visitors::Emitter.new(io).accept(ast)
2420
+
2421
+ io.string.gsub(/ !!null \n/, " \n")
2422
+ else
2423
+ YAML.quick_emit object_id, opts do |out|
2424
+ out.map taguri, to_yaml_style do |map|
2425
+ encode_with map
2426
+ end
2427
+ end
2428
+ end
2429
+ end
2430
+
2431
+ ##
2432
+ # Recursively walk dependencies of this spec, executing the +block+ for each
2433
+ # hop.
2434
+
2435
+ def traverse trail = [], &block
2436
+ trail = trail + [self]
2437
+ runtime_dependencies.each do |dep|
2438
+ dep.to_specs.each do |dep_spec|
2439
+ block[self, dep, dep_spec, trail + [dep_spec]]
2440
+ dep_spec.traverse(trail, &block) unless
2441
+ trail.map(&:name).include? dep_spec.name
2442
+ end
2443
+ end
2444
+ end
2445
+
2446
+ ##
2447
+ # Checks that the specification contains all required fields, and does a
2448
+ # very basic sanity check.
2449
+ #
2450
+ # Raises InvalidSpecificationException if the spec does not pass the
2451
+ # checks..
2452
+
2453
+ def validate packaging = true
2454
+ @warnings = 0
2455
+ require 'rubygems/user_interaction'
2456
+ extend Gem::UserInteraction
2457
+ normalize
2458
+
2459
+ nil_attributes = self.class.non_nil_attributes.find_all do |attrname|
2460
+ instance_variable_get("@#{attrname}").nil?
2461
+ end
2462
+
2463
+ unless nil_attributes.empty? then
2464
+ raise Gem::InvalidSpecificationException,
2465
+ "#{nil_attributes.join ', '} must not be nil"
2466
+ end
2467
+
2468
+ if packaging and rubygems_version != Gem::VERSION then
2469
+ raise Gem::InvalidSpecificationException,
2470
+ "expected RubyGems version #{Gem::VERSION}, was #{rubygems_version}"
2471
+ end
2472
+
2473
+ @@required_attributes.each do |symbol|
2474
+ unless self.send symbol then
2475
+ raise Gem::InvalidSpecificationException,
2476
+ "missing value for attribute #{symbol}"
2477
+ end
2478
+ end
2479
+
2480
+ unless String === name then
2481
+ raise Gem::InvalidSpecificationException,
2482
+ "invalid value for attribute name: \"#{name.inspect}\""
2483
+ end
2484
+
2485
+ if raw_require_paths.empty? then
2486
+ raise Gem::InvalidSpecificationException,
2487
+ 'specification must have at least one require_path'
2488
+ end
2489
+
2490
+ @files.delete_if { |x| File.directory?(x) }
2491
+ @test_files.delete_if { |x| File.directory?(x) }
2492
+ @executables.delete_if { |x| File.directory?(File.join(@bindir, x)) }
2493
+ @extra_rdoc_files.delete_if { |x| File.directory?(x) }
2494
+ @extensions.delete_if { |x| File.directory?(x) }
2495
+
2496
+ non_files = files.reject { |x| File.file?(x) }
2497
+
2498
+ unless not packaging or non_files.empty? then
2499
+ raise Gem::InvalidSpecificationException,
2500
+ "[\"#{non_files.join "\", \""}\"] are not files"
2501
+ end
2502
+
2503
+ if files.include? file_name then
2504
+ raise Gem::InvalidSpecificationException,
2505
+ "#{full_name} contains itself (#{file_name}), check your files list"
2506
+ end
2507
+
2508
+ unless specification_version.is_a?(Fixnum)
2509
+ raise Gem::InvalidSpecificationException,
2510
+ 'specification_version must be a Fixnum (did you mean version?)'
2511
+ end
2512
+
2513
+ case platform
2514
+ when Gem::Platform, Gem::Platform::RUBY then # ok
2515
+ else
2516
+ raise Gem::InvalidSpecificationException,
2517
+ "invalid platform #{platform.inspect}, see Gem::Platform"
2518
+ end
2519
+
2520
+ self.class.array_attributes.each do |field|
2521
+ val = self.send field
2522
+ klass = case field
2523
+ when :dependencies
2524
+ Gem::Dependency
2525
+ else
2526
+ String
2527
+ end
2528
+
2529
+ unless Array === val and val.all? { |x| x.kind_of?(klass) } then
2530
+ raise(Gem::InvalidSpecificationException,
2531
+ "#{field} must be an Array of #{klass}")
2532
+ end
2533
+ end
2534
+
2535
+ [:authors].each do |field|
2536
+ val = self.send field
2537
+ raise Gem::InvalidSpecificationException, "#{field} may not be empty" if
2538
+ val.empty?
2539
+ end
2540
+
2541
+ unless Hash === metadata
2542
+ raise Gem::InvalidSpecificationException,
2543
+ 'metadata must be a hash'
2544
+ end
2545
+
2546
+ metadata.keys.each do |k|
2547
+ if !k.kind_of?(String)
2548
+ raise Gem::InvalidSpecificationException,
2549
+ 'metadata keys must be a String'
2550
+ end
2551
+
2552
+ if k.size > 128
2553
+ raise Gem::InvalidSpecificationException,
2554
+ "metadata key too large (#{k.size} > 128)"
2555
+ end
2556
+ end
2557
+
2558
+ metadata.values.each do |k|
2559
+ if !k.kind_of?(String)
2560
+ raise Gem::InvalidSpecificationException,
2561
+ 'metadata values must be a String'
2562
+ end
2563
+
2564
+ if k.size > 1024
2565
+ raise Gem::InvalidSpecificationException,
2566
+ "metadata value too large (#{k.size} > 1024)"
2567
+ end
2568
+ end
2569
+
2570
+ licenses.each { |license|
2571
+ if license.length > 64
2572
+ raise Gem::InvalidSpecificationException,
2573
+ "each license must be 64 characters or less"
2574
+ end
2575
+ }
2576
+
2577
+ warning <<-warning if licenses.empty?
2578
+ licenses is empty, but is recommended. Use a license abbreviation from:
2579
+ http://opensource.org/licenses/alphabetical
2580
+ warning
2581
+
2582
+ validate_permissions
2583
+
2584
+ # reject lazy developers:
2585
+
2586
+ lazy = '"FIxxxXME" or "TOxxxDO"'.gsub(/xxx/, '')
2587
+
2588
+ unless authors.grep(/FI XME|TO DO/x).empty? then
2589
+ raise Gem::InvalidSpecificationException, "#{lazy} is not an author"
2590
+ end
2591
+
2592
+ unless Array(email).grep(/FI XME|TO DO/x).empty? then
2593
+ raise Gem::InvalidSpecificationException, "#{lazy} is not an email"
2594
+ end
2595
+
2596
+ if description =~ /FI XME|TO DO/x then
2597
+ raise Gem::InvalidSpecificationException, "#{lazy} is not a description"
2598
+ end
2599
+
2600
+ if summary =~ /FI XME|TO DO/x then
2601
+ raise Gem::InvalidSpecificationException, "#{lazy} is not a summary"
2602
+ end
2603
+
2604
+ if homepage and not homepage.empty? and
2605
+ homepage !~ /\A[a-z][a-z\d+.-]*:/i then
2606
+ raise Gem::InvalidSpecificationException,
2607
+ "\"#{homepage}\" is not a URI"
2608
+ end
2609
+
2610
+ # Warnings
2611
+
2612
+ %w[author description email homepage summary].each do |attribute|
2613
+ value = self.send attribute
2614
+ warning "no #{attribute} specified" if value.nil? or value.empty?
2615
+ end
2616
+
2617
+ if description == summary then
2618
+ warning 'description and summary are identical'
2619
+ end
2620
+
2621
+ # TODO: raise at some given date
2622
+ warning "deprecated autorequire specified" if autorequire
2623
+
2624
+ executables.each do |executable|
2625
+ executable_path = File.join(bindir, executable)
2626
+ shebang = File.read(executable_path, 2) == '#!'
2627
+
2628
+ warning "#{executable_path} is missing #! line" unless shebang
2629
+ end
2630
+
2631
+ validate_dependencies
2632
+
2633
+ true
2634
+ ensure
2635
+ if $! or @warnings > 0 then
2636
+ alert_warning "See http://guides.rubygems.org/specification-reference/ for help"
2637
+ end
2638
+ end
2639
+
2640
+ ##
2641
+ # Checks that dependencies use requirements as we recommend. Warnings are
2642
+ # issued when dependencies are open-ended or overly strict for semantic
2643
+ # versioning.
2644
+
2645
+ def validate_dependencies # :nodoc:
2646
+ seen = {}
2647
+
2648
+ dependencies.each do |dep|
2649
+ if prev = seen[dep.name] then
2650
+ raise Gem::InvalidSpecificationException, <<-MESSAGE
2651
+ duplicate dependency on #{dep}, (#{prev.requirement}) use:
2652
+ add_runtime_dependency '#{dep.name}', '#{dep.requirement}', '#{prev.requirement}'
2653
+ MESSAGE
2654
+ end
2655
+
2656
+ seen[dep.name] = dep
2657
+
2658
+ prerelease_dep = dep.requirements_list.any? do |req|
2659
+ Gem::Requirement.new(req).prerelease?
2660
+ end
2661
+
2662
+ warning "prerelease dependency on #{dep} is not recommended" if
2663
+ prerelease_dep
2664
+
2665
+ overly_strict = dep.requirement.requirements.length == 1 &&
2666
+ dep.requirement.requirements.any? do |op, version|
2667
+ op == '~>' and
2668
+ not version.prerelease? and
2669
+ version.segments.length > 2 and
2670
+ version.segments.first != 0
2671
+ end
2672
+
2673
+ if overly_strict then
2674
+ _, dep_version = dep.requirement.requirements.first
2675
+
2676
+ base = dep_version.segments.first 2
2677
+
2678
+ warning <<-WARNING
2679
+ pessimistic dependency on #{dep} may be overly strict
2680
+ if #{dep.name} is semantically versioned, use:
2681
+ add_#{dep.type}_dependency '#{dep.name}', '~> #{base.join '.'}', '>= #{dep_version}'
2682
+ WARNING
2683
+ end
2684
+
2685
+ open_ended = dep.requirement.requirements.all? do |op, version|
2686
+ not version.prerelease? and (op == '>' or op == '>=')
2687
+ end
2688
+
2689
+ if open_ended then
2690
+ op, dep_version = dep.requirement.requirements.first
2691
+
2692
+ base = dep_version.segments.first 2
2693
+
2694
+ bugfix = if op == '>' then
2695
+ ", '> #{dep_version}'"
2696
+ elsif op == '>=' and base != dep_version.segments then
2697
+ ", '>= #{dep_version}'"
2698
+ end
2699
+
2700
+ warning <<-WARNING
2701
+ open-ended dependency on #{dep} is not recommended
2702
+ if #{dep.name} is semantically versioned, use:
2703
+ add_#{dep.type}_dependency '#{dep.name}', '~> #{base.join '.'}'#{bugfix}
2704
+ WARNING
2705
+ end
2706
+ end
2707
+ end
2708
+
2709
+ ##
2710
+ # Checks to see if the files to be packaged are world-readable.
2711
+
2712
+ def validate_permissions
2713
+ return if Gem.win_platform?
2714
+
2715
+ files.each do |file|
2716
+ next if File.stat(file).mode & 0444 == 0444
2717
+ warning "#{file} is not world-readable"
2718
+ end
2719
+
2720
+ executables.each do |name|
2721
+ exec = File.join @bindir, name
2722
+ next if File.stat(exec).executable?
2723
+ warning "#{exec} is not executable"
2724
+ end
2725
+ end
2726
+
2727
+ ##
2728
+ # Set the version to +version+, potentially also setting
2729
+ # required_rubygems_version if +version+ indicates it is a
2730
+ # prerelease.
2731
+
2732
+ def version= version
2733
+ @version = Gem::Version.create(version)
2734
+ self.required_rubygems_version = '> 1.3.1' if @version.prerelease?
2735
+ invalidate_memoized_attributes
2736
+
2737
+ return @version
2738
+ end
2739
+
2740
+ def stubbed?
2741
+ false
2742
+ end
2743
+
2744
+ def yaml_initialize(tag, vals) # :nodoc:
2745
+ vals.each do |ivar, val|
2746
+ case ivar
2747
+ when "date"
2748
+ # Force Date to go through the extra coerce logic in date=
2749
+ self.date = val.untaint
2750
+ else
2751
+ instance_variable_set "@#{ivar}", val.untaint
2752
+ end
2753
+ end
2754
+
2755
+ @original_platform = @platform # for backwards compatibility
2756
+ self.platform = Gem::Platform.new @platform
2757
+ end
2758
+
2759
+ ##
2760
+ # Reset nil attributes to their default values to make the spec valid
2761
+
2762
+ def reset_nil_attributes_to_default
2763
+ nil_attributes = self.class.non_nil_attributes.find_all do |name|
2764
+ !instance_variable_defined?("@#{name}") || instance_variable_get("@#{name}").nil?
2765
+ end
2766
+
2767
+ nil_attributes.each do |attribute|
2768
+ default = self.default_value attribute
2769
+
2770
+ value = case default
2771
+ when Time, Numeric, Symbol, true, false, nil then default
2772
+ else default.dup
2773
+ end
2774
+
2775
+ instance_variable_set "@#{attribute}", value
2776
+ end
2777
+
2778
+ @installed_by_version ||= nil
2779
+ end
2780
+
2781
+ def warning statement # :nodoc:
2782
+ @warnings += 1
2783
+
2784
+ alert_warning statement
2785
+ end
2786
+
2787
+ extend Gem::Deprecate
2788
+
2789
+ # TODO:
2790
+ # deprecate :has_rdoc, :none, 2011, 10
2791
+ # deprecate :has_rdoc?, :none, 2011, 10
2792
+ # deprecate :has_rdoc=, :none, 2011, 10
2793
+ # deprecate :default_executable, :none, 2011, 10
2794
+ # deprecate :default_executable=, :none, 2011, 10
2795
+ # deprecate :file_name, :cache_file, 2011, 10
2796
+ # deprecate :full_gem_path, :cache_file, 2011, 10
2797
+ end
2798
+
2799
+ # DOC: What is this and why is it here, randomly, at the end of this file?
2800
+ Gem.clear_paths