bitclust-core 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (697) hide show
  1. data/ChangeLog +17 -0
  2. data/Gemfile +7 -0
  3. data/Gemfile.lock +34 -0
  4. data/category-bitclust.patch +245 -0
  5. data/data/bitclust/catalog/ja_JP.UTF-8 +30 -0
  6. data/data/bitclust/template/library +1 -1
  7. data/data/bitclust/template/library-index +26 -11
  8. data/data/bitclust/template.offline/library +1 -1
  9. data/data/bitclust/template.offline/library-index +26 -11
  10. data/lib/bitclust/classentry.rb +18 -0
  11. data/lib/bitclust/docentry.rb +1 -1
  12. data/lib/bitclust/libraryentry.rb +3 -2
  13. data/lib/bitclust/lineinput.rb +2 -1
  14. data/lib/bitclust/rrdparser.rb +6 -0
  15. data/lib/bitclust/searcher.rb +5 -0
  16. data/lib/bitclust/subcommand.rb +1 -1
  17. data/lib/bitclust/version.rb +1 -1
  18. data/test/test_entry.rb +14 -0
  19. data/test/test_libraryentry.rb +8 -0
  20. data/tools/bc-tohtmlpackage.rb +19 -13
  21. data/vendor/bundle/ruby/1.9.1/bin/bc-ancestors.rb +23 -0
  22. data/vendor/bundle/ruby/1.9.1/bin/bc-checkparams.rb +23 -0
  23. data/vendor/bundle/ruby/1.9.1/bin/bc-classes.rb +23 -0
  24. data/vendor/bundle/ruby/1.9.1/bin/bc-convert.rb +23 -0
  25. data/vendor/bundle/ruby/1.9.1/bin/bc-list.rb +23 -0
  26. data/vendor/bundle/ruby/1.9.1/bin/bc-methods.rb +23 -0
  27. data/vendor/bundle/ruby/1.9.1/bin/bc-preproc.rb +23 -0
  28. data/vendor/bundle/ruby/1.9.1/bin/bc-rdoc.rb +23 -0
  29. data/vendor/bundle/ruby/1.9.1/bin/bc-tochm.rb +23 -0
  30. data/vendor/bundle/ruby/1.9.1/bin/bc-tohtml.rb +23 -0
  31. data/vendor/bundle/ruby/1.9.1/bin/bc-tohtmlpackage.rb +23 -0
  32. data/vendor/bundle/ruby/1.9.1/bin/bitclust +23 -0
  33. data/vendor/bundle/ruby/1.9.1/bin/check-signature.rb +23 -0
  34. data/vendor/bundle/ruby/1.9.1/bin/forall-ruby.rb +23 -0
  35. data/vendor/bundle/ruby/1.9.1/bin/gencatalog.rb +23 -0
  36. data/vendor/bundle/ruby/1.9.1/bin/rackup +23 -0
  37. data/vendor/bundle/ruby/1.9.1/bin/rake +23 -0
  38. data/vendor/bundle/ruby/1.9.1/bin/refe +23 -0
  39. data/vendor/bundle/ruby/1.9.1/bin/statrefm.rb +23 -0
  40. data/vendor/bundle/ruby/1.9.1/bin/stattodo.rb +23 -0
  41. data/vendor/bundle/ruby/1.9.1/bin/update-database.rb +23 -0
  42. data/vendor/bundle/ruby/1.9.1/cache/rack-1.4.1.gem +0 -0
  43. data/vendor/bundle/ruby/1.9.1/cache/rake-0.9.2.2.gem +0 -0
  44. data/vendor/bundle/ruby/1.9.1/cache/rr-1.0.4.gem +0 -0
  45. data/vendor/bundle/ruby/1.9.1/cache/test-unit-2.4.8.gem +0 -0
  46. data/vendor/bundle/ruby/1.9.1/cache/test-unit-2.5.1.gem +0 -0
  47. data/vendor/bundle/ruby/1.9.1/cache/test-unit-notify-0.3.0.gem +0 -0
  48. data/vendor/bundle/ruby/1.9.1/cache/test-unit-rr-1.0.1.gem +0 -0
  49. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/COPYING +18 -0
  50. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/KNOWN-ISSUES +21 -0
  51. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/README.rdoc +498 -0
  52. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/Rakefile +115 -0
  53. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/SPEC +171 -0
  54. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/bin/rackup +4 -0
  55. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/contrib/rack_logo.svg +111 -0
  56. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/example/lobster.ru +4 -0
  57. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/example/protectedlobster.rb +14 -0
  58. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/example/protectedlobster.ru +8 -0
  59. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/auth/abstract/handler.rb +37 -0
  60. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/auth/abstract/request.rb +43 -0
  61. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/auth/basic.rb +58 -0
  62. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/auth/digest/md5.rb +129 -0
  63. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/auth/digest/nonce.rb +51 -0
  64. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/auth/digest/params.rb +53 -0
  65. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/auth/digest/request.rb +41 -0
  66. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/backports/uri/common_18.rb +70 -0
  67. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/backports/uri/common_192.rb +55 -0
  68. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/body_proxy.rb +29 -0
  69. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb +145 -0
  70. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/cascade.rb +41 -0
  71. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/chunked.rb +58 -0
  72. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/commonlogger.rb +51 -0
  73. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/conditionalget.rb +67 -0
  74. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/config.rb +15 -0
  75. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/content_length.rb +33 -0
  76. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/content_type.rb +29 -0
  77. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/deflater.rb +99 -0
  78. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/directory.rb +161 -0
  79. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/etag.rb +61 -0
  80. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/file.rb +142 -0
  81. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler/cgi.rb +61 -0
  82. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler/evented_mongrel.rb +8 -0
  83. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler/fastcgi.rb +98 -0
  84. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler/lsws.rb +61 -0
  85. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler/mongrel.rb +100 -0
  86. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler/scgi.rb +67 -0
  87. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler/swiftiplied_mongrel.rb +8 -0
  88. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler/thin.rb +24 -0
  89. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler/webrick.rb +80 -0
  90. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/handler.rb +94 -0
  91. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/head.rb +19 -0
  92. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/lint.rb +567 -0
  93. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/lobster.rb +65 -0
  94. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/lock.rb +25 -0
  95. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/logger.rb +18 -0
  96. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/methodoverride.rb +33 -0
  97. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/mime.rb +648 -0
  98. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/mock.rb +189 -0
  99. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/multipart/generator.rb +93 -0
  100. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/multipart/parser.rb +167 -0
  101. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/multipart/uploaded_file.rb +34 -0
  102. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/multipart.rb +34 -0
  103. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/nulllogger.rb +18 -0
  104. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/recursive.rb +61 -0
  105. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/reloader.rb +109 -0
  106. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/request.rb +341 -0
  107. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/response.rb +155 -0
  108. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/rewindable_input.rb +104 -0
  109. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/runtime.rb +27 -0
  110. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/sendfile.rb +141 -0
  111. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb +323 -0
  112. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/session/abstract/id.rb +372 -0
  113. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/session/cookie.rb +161 -0
  114. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/session/memcache.rb +93 -0
  115. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/session/pool.rb +79 -0
  116. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/showexceptions.rb +378 -0
  117. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/showstatus.rb +113 -0
  118. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/static.rb +71 -0
  119. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/urlmap.rb +75 -0
  120. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/utils.rb +547 -0
  121. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack.rb +83 -0
  122. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/rack.gemspec +37 -0
  123. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/builder/anything.rb +5 -0
  124. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/builder/comment.ru +4 -0
  125. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/builder/end.ru +5 -0
  126. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/builder/options.ru +2 -0
  127. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/cgi/lighttpd.conf +26 -0
  128. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/cgi/rackup_stub.rb +6 -0
  129. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/cgi/sample_rackup.ru +5 -0
  130. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/cgi/test +9 -0
  131. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/cgi/test+directory/test+file +1 -0
  132. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/cgi/test.fcgi +8 -0
  133. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/cgi/test.ru +5 -0
  134. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/gemloader.rb +10 -0
  135. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/bad_robots +259 -0
  136. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/binary +0 -0
  137. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/content_type_and_no_filename +6 -0
  138. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/empty +10 -0
  139. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/fail_16384_nofile +814 -0
  140. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/file1.txt +1 -0
  141. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/filename_and_modification_param +7 -0
  142. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/filename_with_escaped_quotes +6 -0
  143. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/filename_with_escaped_quotes_and_modification_param +7 -0
  144. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/filename_with_percent_escaped_quotes +6 -0
  145. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/filename_with_unescaped_percentages +6 -0
  146. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/filename_with_unescaped_percentages2 +6 -0
  147. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/filename_with_unescaped_percentages3 +6 -0
  148. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/filename_with_unescaped_quotes +6 -0
  149. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/ie +6 -0
  150. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/mixed_files +21 -0
  151. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/nested +10 -0
  152. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/none +9 -0
  153. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/semicolon +6 -0
  154. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/text +15 -0
  155. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/multipart/webkit +32 -0
  156. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/rackup/config.ru +31 -0
  157. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/registering_handler/rack/handler/registering_myself.rb +8 -0
  158. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_auth_basic.rb +73 -0
  159. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_auth_digest.rb +245 -0
  160. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_body_proxy.rb +65 -0
  161. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_builder.rb +201 -0
  162. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_cascade.rb +53 -0
  163. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_cgi.rb +102 -0
  164. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_chunked.rb +87 -0
  165. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_commonlogger.rb +57 -0
  166. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_conditionalget.rb +102 -0
  167. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_config.rb +23 -0
  168. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_content_length.rb +73 -0
  169. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_content_type.rb +35 -0
  170. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_deflater.rb +169 -0
  171. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_directory.rb +69 -0
  172. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_etag.rb +82 -0
  173. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_fastcgi.rb +107 -0
  174. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_file.rb +183 -0
  175. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_handler.rb +59 -0
  176. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_head.rb +30 -0
  177. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_lint.rb +515 -0
  178. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_lobster.rb +43 -0
  179. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_lock.rb +142 -0
  180. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_logger.rb +28 -0
  181. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_methodoverride.rb +73 -0
  182. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_mock.rb +264 -0
  183. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_mongrel.rb +182 -0
  184. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_multipart.rb +363 -0
  185. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_nulllogger.rb +12 -0
  186. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_recursive.rb +69 -0
  187. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_request.rb +938 -0
  188. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_response.rb +283 -0
  189. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_rewindable_input.rb +118 -0
  190. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_runtime.rb +39 -0
  191. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_sendfile.rb +86 -0
  192. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_server.rb +74 -0
  193. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_session_abstract_id.rb +43 -0
  194. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_session_cookie.rb +294 -0
  195. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_session_memcache.rb +319 -0
  196. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_session_pool.rb +206 -0
  197. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_showexceptions.rb +87 -0
  198. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_showstatus.rb +79 -0
  199. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_static.rb +69 -0
  200. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_thin.rb +86 -0
  201. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_urlmap.rb +213 -0
  202. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_utils.rb +524 -0
  203. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/spec_webrick.rb +143 -0
  204. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/static/index.html +1 -0
  205. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/testrequest.rb +78 -0
  206. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/unregistered_handler/rack/handler/unregistered.rb +7 -0
  207. data/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/test/unregistered_handler/rack/handler/unregistered_long_one.rb +7 -0
  208. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/CHANGES +522 -0
  209. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/MIT-LICENSE +21 -0
  210. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/README.rdoc +197 -0
  211. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/Rakefile +369 -0
  212. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/TODO +20 -0
  213. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/bin/rake +33 -0
  214. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/command_line_usage.rdoc +114 -0
  215. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/example/Rakefile1 +38 -0
  216. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/example/Rakefile2 +35 -0
  217. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/example/a.c +6 -0
  218. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/example/b.c +6 -0
  219. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/example/main.c +11 -0
  220. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/glossary.rdoc +51 -0
  221. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/jamis.rb +591 -0
  222. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/proto_rake.rdoc +127 -0
  223. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/rake.1.gz +0 -0
  224. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/rakefile.rdoc +557 -0
  225. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/rational.rdoc +151 -0
  226. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.4.14.rdoc +23 -0
  227. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.4.15.rdoc +35 -0
  228. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.5.0.rdoc +53 -0
  229. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.5.3.rdoc +78 -0
  230. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.5.4.rdoc +46 -0
  231. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.6.0.rdoc +141 -0
  232. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.7.0.rdoc +119 -0
  233. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.7.1.rdoc +59 -0
  234. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.7.2.rdoc +121 -0
  235. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.7.3.rdoc +47 -0
  236. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.0.rdoc +114 -0
  237. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.2.rdoc +165 -0
  238. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.3.rdoc +112 -0
  239. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.4.rdoc +147 -0
  240. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.5.rdoc +53 -0
  241. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.6.rdoc +55 -0
  242. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.7.rdoc +55 -0
  243. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.9.0.rdoc +112 -0
  244. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.9.1.rdoc +52 -0
  245. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/doc/release_notes/rake-0.9.2.rdoc +49 -0
  246. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/install.rb +90 -0
  247. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/alt_system.rb +109 -0
  248. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb +595 -0
  249. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/classic_namespace.rb +11 -0
  250. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/clean.rb +32 -0
  251. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/cloneable.rb +25 -0
  252. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/contrib/compositepublisher.rb +21 -0
  253. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/contrib/ftptools.rb +150 -0
  254. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/contrib/publisher.rb +73 -0
  255. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/contrib/rubyforgepublisher.rb +16 -0
  256. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/contrib/sshpublisher.rb +50 -0
  257. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/contrib/sys.rb +191 -0
  258. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/default_loader.rb +10 -0
  259. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/dsl_definition.rb +176 -0
  260. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/early_time.rb +18 -0
  261. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/ext/core.rb +27 -0
  262. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/ext/module.rb +39 -0
  263. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/ext/string.rb +167 -0
  264. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/ext/time.rb +14 -0
  265. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_creation_task.rb +24 -0
  266. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_list.rb +403 -0
  267. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_task.rb +47 -0
  268. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_utils.rb +114 -0
  269. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_utils_ext.rb +145 -0
  270. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/gempackagetask.rb +15 -0
  271. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/invocation_chain.rb +51 -0
  272. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/invocation_exception_mixin.rb +16 -0
  273. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/loaders/makefile.rb +40 -0
  274. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/multi_task.rb +16 -0
  275. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/name_space.rb +25 -0
  276. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/packagetask.rb +185 -0
  277. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/pathmap.rb +1 -0
  278. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/pseudo_status.rb +24 -0
  279. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_module.rb +29 -0
  280. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb +22 -0
  281. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/rdoctask.rb +234 -0
  282. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/ruby182_test_unit_fix.rb +25 -0
  283. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
  284. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/runtest.rb +21 -0
  285. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb +327 -0
  286. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task_argument_error.rb +7 -0
  287. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task_arguments.rb +78 -0
  288. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task_manager.rb +307 -0
  289. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/tasklib.rb +22 -0
  290. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/testtask.rb +191 -0
  291. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/version.rb +8 -0
  292. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/win32.rb +55 -0
  293. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake.rb +69 -0
  294. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/file_creation.rb +34 -0
  295. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/helper.rb +492 -0
  296. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake.rb +40 -0
  297. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_application.rb +489 -0
  298. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_application_options.rb +335 -0
  299. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_clean.rb +14 -0
  300. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_definitions.rb +80 -0
  301. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_directory_task.rb +46 -0
  302. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_dsl.rb +77 -0
  303. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_early_time.rb +31 -0
  304. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_extension.rb +59 -0
  305. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_file_creation_task.rb +56 -0
  306. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_file_list.rb +628 -0
  307. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_file_list_path_map.rb +8 -0
  308. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_file_task.rb +102 -0
  309. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_file_utils.rb +305 -0
  310. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_ftp_file.rb +59 -0
  311. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_functional.rb +450 -0
  312. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_invocation_chain.rb +52 -0
  313. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_makefile_loader.rb +44 -0
  314. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_multi_task.rb +51 -0
  315. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_name_space.rb +43 -0
  316. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_package_task.rb +79 -0
  317. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_path_map.rb +157 -0
  318. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_path_map_explode.rb +34 -0
  319. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_path_map_partial.rb +18 -0
  320. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_pseudo_status.rb +21 -0
  321. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_rake_test_loader.rb +21 -0
  322. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_rdoc_task.rb +83 -0
  323. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_require.rb +40 -0
  324. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_rules.rb +327 -0
  325. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_task.rb +267 -0
  326. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_task_argument_parsing.rb +103 -0
  327. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_task_arguments.rb +88 -0
  328. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_task_lib.rb +9 -0
  329. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_task_manager.rb +157 -0
  330. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_task_manager_argument_resolution.rb +36 -0
  331. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_task_with_arguments.rb +173 -0
  332. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_test_task.rb +120 -0
  333. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_top_level_functions.rb +111 -0
  334. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_win32.rb +72 -0
  335. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_sys.rb +20 -0
  336. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/CHANGES +266 -0
  337. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/Gemfile +12 -0
  338. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/Gemfile.lock +31 -0
  339. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/LICENSE +22 -0
  340. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/README.rdoc +392 -0
  341. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/Rakefile +88 -0
  342. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/benchmarks/rr_benchmark.rb +32 -0
  343. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/benchmarks/rspec_benchmark.rb +14 -0
  344. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/doc/0.6.0.release.markdown +81 -0
  345. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/doc/todo.txt +0 -0
  346. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/introducting_rr.txt +206 -0
  347. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/adapters/minitest.rb +31 -0
  348. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/adapters/rr_methods.rb +146 -0
  349. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/adapters/rspec.rb +61 -0
  350. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/adapters/test_unit.rb +31 -0
  351. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/blank_slate.rb +17 -0
  352. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/class_instance_method_defined.rb +9 -0
  353. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double.rb +154 -0
  354. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/child_double_definition_create.rb +27 -0
  355. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/double_definition.rb +365 -0
  356. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/double_definition_create.rb +139 -0
  357. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/double_definition_create_blank_slate.rb +26 -0
  358. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/double_injections/any_instance_of.rb +28 -0
  359. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/double_injections/instance.rb +16 -0
  360. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/strategies/double_injection/any_instance_of.rb +30 -0
  361. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/strategies/double_injection/double_injection_strategy.rb +10 -0
  362. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/strategies/double_injection/instance.rb +17 -0
  363. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/strategies/implementation/implementation_strategy.rb +10 -0
  364. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/strategies/implementation/proxy.rb +60 -0
  365. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/strategies/implementation/reimplementation.rb +14 -0
  366. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/strategies/implementation/strongly_typed_reimplementation.rb +15 -0
  367. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/strategies/strategy.rb +43 -0
  368. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/strategies/strategy_methods.rb +53 -0
  369. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/strategies/verification/dont_allow.rb +31 -0
  370. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/strategies/verification/mock.rb +42 -0
  371. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/strategies/verification/stub.rb +43 -0
  372. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_definitions/strategies/verification/verification_strategy.rb +10 -0
  373. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/double_matches.rb +42 -0
  374. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/errors/argument_equality_error.rb +6 -0
  375. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/errors/double_definition_error.rb +6 -0
  376. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/errors/double_not_found_error.rb +6 -0
  377. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/errors/double_order_error.rb +6 -0
  378. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/errors/rr_error.rb +20 -0
  379. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/errors/spy_verification_errors/double_injection_not_found_error.rb +8 -0
  380. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/errors/spy_verification_errors/invocation_count_error.rb +8 -0
  381. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/errors/spy_verification_errors/spy_verification_error.rb +8 -0
  382. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/errors/subject_does_not_implement_method_error.rb +6 -0
  383. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/errors/subject_has_different_arity_error.rb +6 -0
  384. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/errors/times_called_error.rb +6 -0
  385. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/expectations/any_argument_expectation.rb +21 -0
  386. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/expectations/argument_equality_expectation.rb +41 -0
  387. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/expectations/times_called_expectation.rb +57 -0
  388. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/hash_with_object_id_key.rb +46 -0
  389. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/injections/double_injection.rb +220 -0
  390. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/injections/injection.rb +33 -0
  391. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/injections/method_missing_injection.rb +73 -0
  392. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/injections/singleton_method_added_injection.rb +72 -0
  393. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/method_dispatches/base_method_dispatch.rb +84 -0
  394. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/method_dispatches/method_dispatch.rb +59 -0
  395. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/method_dispatches/method_missing_dispatch.rb +61 -0
  396. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/proc_from_block.rb +7 -0
  397. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/recorded_calls.rb +103 -0
  398. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/space.rb +119 -0
  399. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/spy_verification.rb +48 -0
  400. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/spy_verification_proxy.rb +13 -0
  401. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/times_called_matchers/any_times_matcher.rb +18 -0
  402. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/times_called_matchers/at_least_matcher.rb +15 -0
  403. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/times_called_matchers/at_most_matcher.rb +23 -0
  404. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/times_called_matchers/integer_matcher.rb +19 -0
  405. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/times_called_matchers/never_matcher.rb +23 -0
  406. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/times_called_matchers/non_terminal.rb +27 -0
  407. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/times_called_matchers/proc_matcher.rb +11 -0
  408. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/times_called_matchers/range_matcher.rb +21 -0
  409. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/times_called_matchers/terminal.rb +20 -0
  410. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/times_called_matchers/times_called_matcher.rb +44 -0
  411. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/wildcard_matchers/anything.rb +18 -0
  412. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/wildcard_matchers/boolean.rb +23 -0
  413. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/wildcard_matchers/duck_type.rb +32 -0
  414. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/wildcard_matchers/hash_including.rb +29 -0
  415. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/wildcard_matchers/is_a.rb +25 -0
  416. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/wildcard_matchers/numeric.rb +13 -0
  417. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/wildcard_matchers/range.rb +7 -0
  418. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/wildcard_matchers/regexp.rb +7 -0
  419. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/wildcard_matchers/satisfy.rb +26 -0
  420. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr/wildcard_matchers.rb +158 -0
  421. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/lib/rr.rb +100 -0
  422. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/rr.gemspec +37 -0
  423. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/api/any_instance_of/all_instances_of_spec.rb +12 -0
  424. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/api/any_instance_of/any_instance_of_spec.rb +47 -0
  425. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/api/any_instance_of/instance_of_spec.rb +12 -0
  426. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/api/dont_allow/dont_allow_after_stub_spec.rb +14 -0
  427. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/api/mock/mock_spec.rb +193 -0
  428. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/api/proxy/proxy_spec.rb +86 -0
  429. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/api/spy/spy_spec.rb +49 -0
  430. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/api/strong/strong_spec.rb +87 -0
  431. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/api/stub/stub_spec.rb +152 -0
  432. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/core_spec_suite.rb +19 -0
  433. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/environment_fixture_setup.rb +8 -0
  434. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/minitest_spec_suite.rb +21 -0
  435. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/proc_from_block_spec.rb +14 -0
  436. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/adapters/rr_methods_argument_matcher_spec.rb +67 -0
  437. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/adapters/rr_methods_creator_spec.rb +137 -0
  438. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/adapters/rr_methods_space_spec.rb +98 -0
  439. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/adapters/rr_methods_spec_helper.rb +11 -0
  440. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/adapters/rr_methods_times_matcher_spec.rb +13 -0
  441. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/double_definitions/child_double_definition_creator_spec.rb +112 -0
  442. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/double_definitions/double_definition_create_blank_slate_spec.rb +91 -0
  443. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/double_definitions/double_definition_create_spec.rb +443 -0
  444. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/double_injection/double_injection_spec.rb +546 -0
  445. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/double_injection/double_injection_verify_spec.rb +29 -0
  446. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/errors/rr_error_spec.rb +67 -0
  447. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/any_argument_expectation_spec.rb +47 -0
  448. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/anything_argument_equality_expectation_spec.rb +14 -0
  449. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/argument_equality_expectation_spec.rb +135 -0
  450. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/boolean_argument_equality_expectation_spec.rb +34 -0
  451. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/hash_including_argument_equality_expectation_spec.rb +82 -0
  452. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/hash_including_spec.rb +17 -0
  453. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/satisfy_argument_equality_expectation_spec.rb +59 -0
  454. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/satisfy_spec.rb +14 -0
  455. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/times_called_expectation/times_called_expectation_any_times_spec.rb +22 -0
  456. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/times_called_expectation/times_called_expectation_at_least_spec.rb +37 -0
  457. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/times_called_expectation/times_called_expectation_at_most_spec.rb +43 -0
  458. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/times_called_expectation/times_called_expectation_helper.rb +15 -0
  459. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/times_called_expectation/times_called_expectation_integer_spec.rb +58 -0
  460. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/times_called_expectation/times_called_expectation_proc_spec.rb +35 -0
  461. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/expectations/times_called_expectation/times_called_expectation_range_spec.rb +39 -0
  462. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/minitest/minitest_integration_test.rb +59 -0
  463. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/minitest/test_helper.rb +7 -0
  464. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/rspec/invocation_matcher_spec.rb +279 -0
  465. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/rspec/rspec_adapter_spec.rb +63 -0
  466. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/rspec/rspec_backtrace_tweaking_spec.rb +31 -0
  467. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/rspec/rspec_backtrace_tweaking_spec_fixture.rb +11 -0
  468. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/rspec/rspec_usage_spec.rb +86 -0
  469. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/space/hash_with_object_id_key_spec.rb +88 -0
  470. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/space/space_spec.rb +596 -0
  471. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/test_unit/test_helper.rb +7 -0
  472. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/test_unit/test_unit_backtrace_test.rb +36 -0
  473. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/test_unit/test_unit_integration_test.rb +59 -0
  474. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/times_called_matchers/any_times_matcher_spec.rb +47 -0
  475. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/times_called_matchers/at_least_matcher_spec.rb +55 -0
  476. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/times_called_matchers/at_most_matcher_spec.rb +70 -0
  477. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/times_called_matchers/integer_matcher_spec.rb +70 -0
  478. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/times_called_matchers/proc_matcher_spec.rb +55 -0
  479. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/times_called_matchers/range_matcher_spec.rb +76 -0
  480. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/times_called_matchers/times_called_matcher_spec.rb +118 -0
  481. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/wildcard_matchers/anything_spec.rb +24 -0
  482. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/wildcard_matchers/boolean_spec.rb +36 -0
  483. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/wildcard_matchers/duck_type_spec.rb +52 -0
  484. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/wildcard_matchers/is_a_spec.rb +32 -0
  485. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/wildcard_matchers/numeric_spec.rb +32 -0
  486. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/wildcard_matchers/range_spec.rb +35 -0
  487. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr/wildcard_matchers/regexp_spec.rb +43 -0
  488. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rr_spec.rb +28 -0
  489. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/rspec_spec_suite.rb +17 -0
  490. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/spec.opts +10 -0
  491. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/spec_helper.rb +41 -0
  492. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/spec_suite.rb +54 -0
  493. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/spy_verification_spec.rb +129 -0
  494. data/vendor/bundle/ruby/1.9.1/gems/rr-1.0.4/spec/test_unit_spec_suite.rb +21 -0
  495. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/COPYING +64 -0
  496. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/GPL +340 -0
  497. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/PSFL +271 -0
  498. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/README.textile +90 -0
  499. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/Rakefile +332 -0
  500. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/TODO +1 -0
  501. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/assertionfailederror.rb +25 -0
  502. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/assertions.rb +1911 -0
  503. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/attribute.rb +129 -0
  504. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/autorunner.rb +425 -0
  505. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/code-snippet-fetcher.rb +32 -0
  506. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/collector/descendant.rb +23 -0
  507. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/collector/dir.rb +108 -0
  508. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/collector/load.rb +187 -0
  509. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/collector/objectspace.rb +34 -0
  510. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/collector/xml.rb +250 -0
  511. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/collector.rb +38 -0
  512. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/color-scheme.rb +153 -0
  513. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/color.rb +123 -0
  514. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/data.rb +80 -0
  515. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/diff.rb +740 -0
  516. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/error.rb +151 -0
  517. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/exceptionhandler.rb +39 -0
  518. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/failure.rb +136 -0
  519. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/fixture.rb +227 -0
  520. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/notification.rb +133 -0
  521. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/omission.rb +191 -0
  522. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/pending.rb +150 -0
  523. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/priority.rb +182 -0
  524. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/runner/console.rb +59 -0
  525. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/runner/emacs.rb +8 -0
  526. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/runner/xml.rb +15 -0
  527. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/testcase.rb +632 -0
  528. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/testresult.rb +125 -0
  529. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/testsuite.rb +134 -0
  530. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/testsuitecreator.rb +79 -0
  531. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/ui/console/outputlevel.rb +15 -0
  532. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/ui/console/testrunner.rb +591 -0
  533. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/ui/emacs/testrunner.rb +49 -0
  534. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/ui/testrunner.rb +53 -0
  535. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/ui/testrunnermediator.rb +86 -0
  536. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  537. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/ui/xml/testrunner.rb +224 -0
  538. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/util/backtracefilter.rb +53 -0
  539. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/util/method-owner-finder.rb +28 -0
  540. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/util/observable.rb +90 -0
  541. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/util/output.rb +31 -0
  542. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/util/procwrapper.rb +48 -0
  543. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit/version.rb +5 -0
  544. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test/unit.rb +328 -0
  545. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/lib/test-unit.rb +3 -0
  546. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/sample/adder.rb +13 -0
  547. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/sample/subtracter.rb +12 -0
  548. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/sample/test_adder.rb +20 -0
  549. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/sample/test_subtracter.rb +20 -0
  550. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/sample/test_user.rb +23 -0
  551. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/collector/test-descendant.rb +133 -0
  552. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/collector/test-load.rb +442 -0
  553. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/collector/test_dir.rb +406 -0
  554. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/collector/test_objectspace.rb +100 -0
  555. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/fixtures/plus.csv +3 -0
  556. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/run-test.rb +22 -0
  557. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test-assertions.rb +1911 -0
  558. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test-attribute.rb +86 -0
  559. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test-code-snippet.rb +37 -0
  560. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test-color-scheme.rb +82 -0
  561. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test-color.rb +47 -0
  562. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test-data.rb +191 -0
  563. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test-diff.rb +518 -0
  564. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test-emacs-runner.rb +60 -0
  565. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test-fixture.rb +632 -0
  566. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test-notification.rb +33 -0
  567. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test-omission.rb +81 -0
  568. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test-pending.rb +70 -0
  569. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test-priority.rb +134 -0
  570. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test-testcase.rb +590 -0
  571. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test_error.rb +26 -0
  572. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test_failure.rb +33 -0
  573. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test_testresult.rb +113 -0
  574. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/test_testsuite.rb +137 -0
  575. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/testunit-test-util.rb +22 -0
  576. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/ui/test_testrunmediator.rb +20 -0
  577. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/util/test-method-owner-finder.rb +38 -0
  578. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/util/test-output.rb +11 -0
  579. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/util/test_backtracefilter.rb +41 -0
  580. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/util/test_observable.rb +102 -0
  581. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.4.8/test/util/test_procwrapper.rb +36 -0
  582. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/COPYING +64 -0
  583. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/GPL +340 -0
  584. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/PSFL +271 -0
  585. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/README.textile +91 -0
  586. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/Rakefile +302 -0
  587. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/TODO +1 -0
  588. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/assertionfailederror.rb +25 -0
  589. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/assertions.rb +1934 -0
  590. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/attribute.rb +129 -0
  591. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/autorunner.rb +443 -0
  592. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/code-snippet-fetcher.rb +32 -0
  593. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/collector/descendant.rb +23 -0
  594. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/collector/dir.rb +108 -0
  595. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/collector/load.rb +187 -0
  596. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/collector/objectspace.rb +34 -0
  597. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/collector/xml.rb +250 -0
  598. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/collector.rb +38 -0
  599. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/color-scheme.rb +153 -0
  600. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/color.rb +123 -0
  601. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/data.rb +80 -0
  602. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/diff.rb +740 -0
  603. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/error.rb +151 -0
  604. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/exceptionhandler.rb +39 -0
  605. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/failure.rb +136 -0
  606. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/fixture.rb +227 -0
  607. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/notification.rb +133 -0
  608. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/omission.rb +191 -0
  609. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/pending.rb +150 -0
  610. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/priority.rb +182 -0
  611. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/runner/console.rb +59 -0
  612. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/runner/emacs.rb +8 -0
  613. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/runner/xml.rb +15 -0
  614. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/testcase.rb +633 -0
  615. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/testresult.rb +125 -0
  616. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/testsuite.rb +168 -0
  617. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/testsuitecreator.rb +79 -0
  618. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/ui/console/outputlevel.rb +15 -0
  619. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/ui/console/testrunner.rb +603 -0
  620. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/ui/emacs/testrunner.rb +49 -0
  621. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/ui/testrunner.rb +53 -0
  622. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/ui/testrunnermediator.rb +100 -0
  623. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  624. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/ui/xml/testrunner.rb +224 -0
  625. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/util/backtracefilter.rb +53 -0
  626. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/util/method-owner-finder.rb +28 -0
  627. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/util/observable.rb +90 -0
  628. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/util/output.rb +31 -0
  629. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/util/procwrapper.rb +48 -0
  630. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit/version.rb +5 -0
  631. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test/unit.rb +332 -0
  632. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/lib/test-unit.rb +13 -0
  633. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/sample/adder.rb +13 -0
  634. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/sample/subtracter.rb +12 -0
  635. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/sample/test_adder.rb +20 -0
  636. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/sample/test_subtracter.rb +20 -0
  637. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/sample/test_user.rb +23 -0
  638. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/collector/test-descendant.rb +133 -0
  639. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/collector/test-load.rb +442 -0
  640. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/collector/test_dir.rb +406 -0
  641. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/collector/test_objectspace.rb +100 -0
  642. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/fixtures/plus.csv +3 -0
  643. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/run-test.rb +22 -0
  644. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test-assertions.rb +1926 -0
  645. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test-attribute.rb +86 -0
  646. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test-code-snippet.rb +37 -0
  647. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test-color-scheme.rb +82 -0
  648. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test-color.rb +47 -0
  649. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test-data.rb +191 -0
  650. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test-diff.rb +518 -0
  651. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test-emacs-runner.rb +60 -0
  652. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test-fixture.rb +632 -0
  653. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test-notification.rb +33 -0
  654. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test-omission.rb +81 -0
  655. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test-pending.rb +70 -0
  656. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test-priority.rb +134 -0
  657. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test-testcase.rb +590 -0
  658. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test_error.rb +26 -0
  659. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test_failure.rb +33 -0
  660. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test_testresult.rb +113 -0
  661. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/test_testsuite.rb +137 -0
  662. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/testunit-test-util.rb +22 -0
  663. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/ui/test_testrunmediator.rb +20 -0
  664. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/util/test-method-owner-finder.rb +38 -0
  665. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/util/test-output.rb +11 -0
  666. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/util/test_backtracefilter.rb +41 -0
  667. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/util/test_observable.rb +102 -0
  668. data/vendor/bundle/ruby/1.9.1/gems/test-unit-2.5.1/test/util/test_procwrapper.rb +36 -0
  669. data/vendor/bundle/ruby/1.9.1/gems/test-unit-notify-0.3.0/COPYING +502 -0
  670. data/vendor/bundle/ruby/1.9.1/gems/test-unit-notify-0.3.0/History.txt +31 -0
  671. data/vendor/bundle/ruby/1.9.1/gems/test-unit-notify-0.3.0/Manifest.txt +14 -0
  672. data/vendor/bundle/ruby/1.9.1/gems/test-unit-notify-0.3.0/README.txt +37 -0
  673. data/vendor/bundle/ruby/1.9.1/gems/test-unit-notify-0.3.0/Rakefile +47 -0
  674. data/vendor/bundle/ruby/1.9.1/gems/test-unit-notify-0.3.0/data/icons/kinotan/default.png +0 -0
  675. data/vendor/bundle/ruby/1.9.1/gems/test-unit-notify-0.3.0/data/icons/kinotan/error.png +0 -0
  676. data/vendor/bundle/ruby/1.9.1/gems/test-unit-notify-0.3.0/data/icons/kinotan/failure.png +0 -0
  677. data/vendor/bundle/ruby/1.9.1/gems/test-unit-notify-0.3.0/data/icons/kinotan/omission.png +0 -0
  678. data/vendor/bundle/ruby/1.9.1/gems/test-unit-notify-0.3.0/data/icons/kinotan/pass.png +0 -0
  679. data/vendor/bundle/ruby/1.9.1/gems/test-unit-notify-0.3.0/data/icons/kinotan/pending.png +0 -0
  680. data/vendor/bundle/ruby/1.9.1/gems/test-unit-notify-0.3.0/lib/test/unit/notify.rb +215 -0
  681. data/vendor/bundle/ruby/1.9.1/gems/test-unit-notify-0.3.0/screenshot/notify-on-gnome.png +0 -0
  682. data/vendor/bundle/ruby/1.9.1/gems/test-unit-notify-0.3.0/screenshot/notify-on-mac-os-x.png +0 -0
  683. data/vendor/bundle/ruby/1.9.1/gems/test-unit-rr-1.0.1/COPYING +502 -0
  684. data/vendor/bundle/ruby/1.9.1/gems/test-unit-rr-1.0.1/History.txt +12 -0
  685. data/vendor/bundle/ruby/1.9.1/gems/test-unit-rr-1.0.1/Manifest.txt +6 -0
  686. data/vendor/bundle/ruby/1.9.1/gems/test-unit-rr-1.0.1/README.txt +30 -0
  687. data/vendor/bundle/ruby/1.9.1/gems/test-unit-rr-1.0.1/Rakefile +38 -0
  688. data/vendor/bundle/ruby/1.9.1/gems/test-unit-rr-1.0.1/lib/test/unit/rr.rb +44 -0
  689. data/vendor/bundle/ruby/1.9.1/specifications/rack-1.4.1.gemspec +47 -0
  690. data/vendor/bundle/ruby/1.9.1/specifications/rake-0.9.2.2.gemspec +34 -0
  691. data/vendor/bundle/ruby/1.9.1/specifications/rr-1.0.4.gemspec +29 -0
  692. data/vendor/bundle/ruby/1.9.1/specifications/test-unit-2.4.8.gemspec +38 -0
  693. data/vendor/bundle/ruby/1.9.1/specifications/test-unit-2.5.1.gemspec +36 -0
  694. data/vendor/bundle/ruby/1.9.1/specifications/test-unit-notify-0.3.0.gemspec +35 -0
  695. data/vendor/bundle/ruby/1.9.1/specifications/test-unit-rr-1.0.1.gemspec +38 -0
  696. metadata +686 -4
  697. data/data/bitclust/catalog/ja_JP.EUC-JP +0 -78
@@ -0,0 +1 @@
1
+ Do you have it?
@@ -0,0 +1,25 @@
1
+ #--
2
+ #
3
+ # Author:: Nathaniel Talbott.
4
+ # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
5
+ # License:: Ruby license.
6
+
7
+ module Test
8
+ module Unit
9
+
10
+ # Thrown by Test::Unit::Assertions when an assertion fails.
11
+ class AssertionFailedError < StandardError
12
+ attr_accessor :expected, :actual, :user_message
13
+ attr_accessor :inspected_expected, :inspected_actual
14
+ def initialize(message=nil, options=nil)
15
+ options ||= {}
16
+ @expected = options[:expected]
17
+ @actual = options[:actual]
18
+ @inspected_expected = options[:inspected_expected]
19
+ @inspected_actual = options[:inspected_actual]
20
+ @user_message = options[:user_message]
21
+ super(message)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,1934 @@
1
+ # Author:: Nathaniel Talbott.
2
+ # Copyright:: Copyright (c) 2000-2003 Nathaniel Talbott. All rights reserved.
3
+ # Copyright (c) 2009-2010 Kouhei Sutou. All rights reserved.
4
+ # License:: Ruby license.
5
+
6
+ require 'test/unit/assertionfailederror'
7
+ require 'test/unit/util/backtracefilter'
8
+ require 'test/unit/util/method-owner-finder'
9
+ require 'test/unit/diff'
10
+
11
+ module Test
12
+ module Unit
13
+
14
+ ##
15
+ # Test::Unit::Assertions contains the standard Test::Unit assertions.
16
+ # Assertions is included in Test::Unit::TestCase.
17
+ #
18
+ # To include it in your own code and use its functionality, you simply
19
+ # need to rescue Test::Unit::AssertionFailedError. Additionally you may
20
+ # override add_assertion to get notified whenever an assertion is made.
21
+ #
22
+ # Notes:
23
+ # * The message to each assertion, if given, will be propagated with the
24
+ # failure.
25
+ # * It is easy to add your own assertions based on assert_block().
26
+ #
27
+ # = Example Custom Assertion
28
+ #
29
+ # def deny(boolean, message = nil)
30
+ # message = build_message message, '<?> is not false or nil.', boolean
31
+ # assert_block message do
32
+ # not boolean
33
+ # end
34
+ # end
35
+
36
+ module Assertions
37
+
38
+ ##
39
+ # The assertion upon which all other assertions are based. Passes if the
40
+ # block yields true.
41
+ #
42
+ # Example:
43
+ # assert_block "Couldn't do the thing" do
44
+ # do_the_thing
45
+ # end
46
+
47
+ public
48
+ def assert_block(message="assert_block failed.") # :yields:
49
+ _wrap_assertion do
50
+ if (! yield)
51
+ raise AssertionFailedError.new(message.to_s)
52
+ end
53
+ end
54
+ end
55
+
56
+ ##
57
+ # Asserts that +boolean+ is not false or nil.
58
+ #
59
+ # Example:
60
+ # assert [1, 2].include?(5)
61
+
62
+ public
63
+ def assert(boolean, message=nil)
64
+ _wrap_assertion do
65
+ assertion_message = nil
66
+ case message
67
+ when nil, String, Proc
68
+ when AssertionMessage
69
+ assertion_message = message
70
+ else
71
+ error_message = "assertion message must be String, Proc or "
72
+ error_message << "#{AssertionMessage}: "
73
+ error_message << "<#{message.inspect}>(<#{message.class}>)"
74
+ raise ArgumentError, error_message, filter_backtrace(caller)
75
+ end
76
+ assert_block("assert should not be called with a block.") do
77
+ !block_given?
78
+ end
79
+ assertion_message ||= build_message(message,
80
+ "<?> is not true.",
81
+ boolean)
82
+ assert_block(assertion_message) do
83
+ boolean
84
+ end
85
+ end
86
+ end
87
+
88
+ ##
89
+ # Passes if +expected+ == +actual+.
90
+ #
91
+ # Note that the ordering of arguments is important, since a helpful
92
+ # error message is generated when this one fails that tells you the
93
+ # values of expected and actual.
94
+ #
95
+ # Example:
96
+ # assert_equal 'MY STRING', 'my string'.upcase
97
+
98
+ public
99
+ def assert_equal(expected, actual, message=nil)
100
+ diff = AssertionMessage.delayed_diff(expected, actual)
101
+ if expected.respond_to?(:encoding) and
102
+ actual.respond_to?(:encoding) and
103
+ expected.encoding != actual.encoding
104
+ format = <<EOT
105
+ <?>(?) expected but was
106
+ <?>(?).?
107
+ EOT
108
+ full_message = build_message(message, format,
109
+ expected, expected.encoding.name,
110
+ actual, actual.encoding.name,
111
+ diff)
112
+ else
113
+ full_message = build_message(message, <<EOT, expected, actual, diff)
114
+ <?> expected but was
115
+ <?>.?
116
+ EOT
117
+ end
118
+ begin
119
+ assert_block(full_message) { expected == actual }
120
+ rescue AssertionFailedError => failure
121
+ _set_failed_information(failure, expected, actual, message)
122
+ raise failure # For JRuby. :<
123
+ end
124
+ end
125
+
126
+ ##
127
+ # Passes if the block raises one of the expected
128
+ # exceptions. When an expected exception is an Exception
129
+ # object, passes if expected_exception == actual_exception.
130
+ #
131
+ # Example:
132
+ # assert_raise(RuntimeError, LoadError) do
133
+ # raise 'Boom!!!'
134
+ # end # -> pass
135
+ #
136
+ # assert_raise do
137
+ # raise Exception, 'Any exception should be raised!!!'
138
+ # end # -> pass
139
+ #
140
+ # assert_raise(RuntimeError.new("XXX")) {raise "XXX"} # -> pass
141
+ # assert_raise(MyError.new("XXX")) {raise "XXX"} # -> fail
142
+ # assert_raise(RuntimeError.new("ZZZ")) {raise "XXX"} # -> fail
143
+ public
144
+ def assert_raise(*args, &block)
145
+ assert_expected_exception = Proc.new do |*_args|
146
+ message, assert_exception_helper, actual_exception = _args
147
+ expected = assert_exception_helper.expected_exceptions
148
+ diff = AssertionMessage.delayed_diff(expected, actual_exception)
149
+ full_message = build_message(message,
150
+ "<?> exception expected but was\n<?>.?",
151
+ expected, actual_exception, diff)
152
+ begin
153
+ assert_block(full_message) do
154
+ expected == [] or
155
+ assert_exception_helper.expected?(actual_exception)
156
+ end
157
+ rescue AssertionFailedError => failure
158
+ _set_failed_information(failure, expected, actual_exception,
159
+ message)
160
+ raise failure # For JRuby. :<
161
+ end
162
+ end
163
+ _assert_raise(assert_expected_exception, *args, &block)
164
+ end
165
+
166
+ ##
167
+ # Alias of assert_raise.
168
+ #
169
+ # Will be deprecated in 1.9, and removed in 2.0.
170
+
171
+ public
172
+ def assert_raises(*args, &block)
173
+ assert_raise(*args, &block)
174
+ end
175
+
176
+ ##
177
+ # Passes if the block raises one of the given
178
+ # exceptions or sub exceptions of the given exceptions.
179
+ #
180
+ # Example:
181
+ # assert_raise_kind_of(SystemCallError) do
182
+ # raise Errno::EACCES
183
+ # end
184
+ def assert_raise_kind_of(*args, &block)
185
+ assert_expected_exception = Proc.new do |*_args|
186
+ message, assert_exception_helper, actual_exception = _args
187
+ expected = assert_exception_helper.expected_exceptions
188
+ full_message = build_message(message,
189
+ "<?> family exception expected " +
190
+ "but was\n<?>.",
191
+ expected, actual_exception)
192
+ assert_block(full_message) do
193
+ assert_exception_helper.expected?(actual_exception, :kind_of?)
194
+ end
195
+ end
196
+ _assert_raise(assert_expected_exception, *args, &block)
197
+ end
198
+
199
+
200
+ ##
201
+ # Passes if +object+.instance_of?(+klass+). When +klass+ is
202
+ # an array of classes, it passes if any class
203
+ # satisfies +object.instance_of?(class).
204
+ #
205
+ # Example:
206
+ # assert_instance_of(String, 'foo') # -> pass
207
+ # assert_instance_of([Fixnum, NilClass], 100) # -> pass
208
+ # assert_instance_of([Numeric, NilClass], 100) # -> fail
209
+
210
+ public
211
+ def assert_instance_of(klass, object, message="")
212
+ _wrap_assertion do
213
+ klasses = nil
214
+ klasses = klass if klass.is_a?(Array)
215
+ assert_block("The first parameter to assert_instance_of should be " +
216
+ "a Class or an Array of Class.") do
217
+ if klasses
218
+ klasses.all? {|k| k.is_a?(Class)}
219
+ else
220
+ klass.is_a?(Class)
221
+ end
222
+ end
223
+ klass_message = AssertionMessage.maybe_container(klass) do |value|
224
+ "<#{value}>"
225
+ end
226
+ full_message = build_message(message, <<EOT, object, klass_message, object.class)
227
+ <?> expected to be an instance of
228
+ ? but was
229
+ <?>.
230
+ EOT
231
+ assert_block(full_message) do
232
+ if klasses
233
+ klasses.any? {|k| object.instance_of?(k)}
234
+ else
235
+ object.instance_of?(klass)
236
+ end
237
+ end
238
+ end
239
+ end
240
+
241
+ ##
242
+ # Passes if +object+ is nil.
243
+ #
244
+ # Example:
245
+ # assert_nil [1, 2].uniq!
246
+
247
+ public
248
+ def assert_nil(object, message="")
249
+ full_message = build_message(message, <<EOT, object)
250
+ <?> expected to be nil.
251
+ EOT
252
+ assert_block(full_message) { object.nil? }
253
+ end
254
+
255
+ ##
256
+ # Passes if +object+.kind_of?(+klass+). When +klass+ is
257
+ # an array of classes or modules, it passes if any
258
+ # class or module satisfies +object.kind_of?(class_or_module).
259
+ #
260
+ # Example:
261
+ # assert_kind_of(Object, 'foo') # -> pass
262
+ # assert_kind_of([Fixnum, NilClass], 100) # -> pass
263
+ # assert_kind_of([Fixnum, NilClass], "string") # -> fail
264
+
265
+ public
266
+ def assert_kind_of(klass, object, message="")
267
+ _wrap_assertion do
268
+ klasses = nil
269
+ klasses = klass if klass.is_a?(Array)
270
+ assert_block("The first parameter to assert_kind_of should be " +
271
+ "a kind_of Module or an Array of a kind_of Module.") do
272
+ if klasses
273
+ klasses.all? {|k| k.kind_of?(Module)}
274
+ else
275
+ klass.kind_of?(Module)
276
+ end
277
+ end
278
+ klass_message = AssertionMessage.maybe_container(klass) do |value|
279
+ "<#{value}>"
280
+ end
281
+ full_message = build_message(message,
282
+ "<?> expected to be kind_of\\?\n" +
283
+ "? but was\n" +
284
+ "<?>.",
285
+ object,
286
+ klass_message,
287
+ object.class)
288
+ assert_block(full_message) do
289
+ if klasses
290
+ klasses.any? {|k| object.kind_of?(k)}
291
+ else
292
+ object.kind_of?(klass)
293
+ end
294
+ end
295
+ end
296
+ end
297
+
298
+ ##
299
+ # Passes if +object+ .respond_to? +method+
300
+ #
301
+ # Example:
302
+ # assert_respond_to 'bugbear', :slice
303
+
304
+ public
305
+ def assert_respond_to(object, method, message="")
306
+ _wrap_assertion do
307
+ full_message = build_message(message,
308
+ "<?>.kind_of\\?(Symbol) or\n" +
309
+ "<?>.respond_to\\?(:to_str) expected",
310
+ method, method)
311
+ assert_block(full_message) do
312
+ method.kind_of?(Symbol) or method.respond_to?(:to_str)
313
+ end
314
+ full_message = build_message(message,
315
+ "<?>.respond_to\\?(?) expected\n" +
316
+ "(Class: <?>)",
317
+ object, method, object.class)
318
+ assert_block(full_message) {object.respond_to?(method)}
319
+ end
320
+ end
321
+
322
+ ##
323
+ # Passes if +object+ does not .respond_to? +method+.
324
+ #
325
+ # Example:
326
+ # assert_not_respond_to('bugbear', :nonexistence) # -> pass
327
+ # assert_not_respond_to('bugbear', :size) # -> fail
328
+
329
+ public
330
+ def assert_not_respond_to(object, method, message="")
331
+ _wrap_assertion do
332
+ full_message = build_message(message,
333
+ "<?>.kind_of\\?(Symbol) or\n" +
334
+ "<?>.respond_to\\?(:to_str) expected",
335
+ method, method)
336
+ assert_block(full_message) do
337
+ method.kind_of?(Symbol) or method.respond_to?(:to_str)
338
+ end
339
+ full_message = build_message(message,
340
+ "!<?>.respond_to\\?(?) expected\n" +
341
+ "(Class: <?>)",
342
+ object, method, object.class)
343
+ assert_block(full_message) {!object.respond_to?(method)}
344
+ end
345
+ end
346
+
347
+ ##
348
+ # Passes if +string+ =~ +pattern+.
349
+ #
350
+ # Example:
351
+ # assert_match(/\d+/, 'five, 6, seven')
352
+
353
+ public
354
+ def assert_match(pattern, string, message="")
355
+ _wrap_assertion do
356
+ pattern = case(pattern)
357
+ when String
358
+ Regexp.new(Regexp.escape(pattern))
359
+ else
360
+ pattern
361
+ end
362
+ full_message = build_message(message, "<?> expected to be =~\n<?>.", string, pattern)
363
+ assert_block(full_message) { string =~ pattern }
364
+ end
365
+ end
366
+
367
+ ##
368
+ # Passes if +actual+ .equal? +expected+ (i.e. they are the same
369
+ # instance).
370
+ #
371
+ # Example:
372
+ # o = Object.new
373
+ # assert_same o, o
374
+
375
+ public
376
+ def assert_same(expected, actual, message="")
377
+ full_message = build_message(message, <<EOT, expected, expected.__id__, actual, actual.__id__)
378
+ <?>
379
+ with id <?> expected to be equal\\? to
380
+ <?>
381
+ with id <?>.
382
+ EOT
383
+ assert_block(full_message) { actual.equal?(expected) }
384
+ end
385
+
386
+ ##
387
+ # Compares the +object1+ with +object2+ using +operator+.
388
+ #
389
+ # Passes if object1.__send__(operator, object2) is true.
390
+ #
391
+ # Example:
392
+ # assert_operator 5, :>=, 4
393
+
394
+ public
395
+ def assert_operator(object1, operator, object2, message="")
396
+ _wrap_assertion do
397
+ full_message = build_message(nil, "<?>\ngiven as the operator for #assert_operator must be a Symbol or #respond_to\\?(:to_str).", operator)
398
+ assert_block(full_message){operator.kind_of?(Symbol) || operator.respond_to?(:to_str)}
399
+ full_message = build_message(message, <<EOT, object1, AssertionMessage.literal(operator), object2)
400
+ <?> expected to be
401
+ ?
402
+ <?>.
403
+ EOT
404
+ assert_block(full_message) { object1.__send__(operator, object2) }
405
+ end
406
+ end
407
+
408
+ ##
409
+ # Passes if block does not raise an exception.
410
+ #
411
+ # Example:
412
+ # assert_nothing_raised do
413
+ # [1, 2].uniq
414
+ # end
415
+
416
+ public
417
+ def assert_nothing_raised(*args)
418
+ _wrap_assertion do
419
+ if args.last.is_a?(String)
420
+ message = args.pop
421
+ else
422
+ message = ""
423
+ end
424
+
425
+ assert_exception_helper = AssertExceptionHelper.new(self, args)
426
+ begin
427
+ yield
428
+ rescue Exception => e
429
+ if ((args.empty? && !e.instance_of?(AssertionFailedError)) ||
430
+ assert_exception_helper.expected?(e))
431
+ failure_message = build_message(message, "Exception raised:\n?", e)
432
+ assert_block(failure_message) {false}
433
+ else
434
+ raise
435
+ end
436
+ end
437
+ nil
438
+ end
439
+ end
440
+
441
+ ##
442
+ # Flunk always fails.
443
+ #
444
+ # Example:
445
+ # flunk 'Not done testing yet.'
446
+
447
+ public
448
+ def flunk(message="Flunked")
449
+ assert_block(build_message(message)){false}
450
+ end
451
+
452
+ ##
453
+ # Passes if ! +actual+ .equal? +expected+
454
+ #
455
+ # Example:
456
+ # assert_not_same Object.new, Object.new
457
+
458
+ public
459
+ def assert_not_same(expected, actual, message="")
460
+ full_message = build_message(message, <<EOT, expected, expected.__id__, actual, actual.__id__)
461
+ <?>
462
+ with id <?> expected to not be equal\\? to
463
+ <?>
464
+ with id <?>.
465
+ EOT
466
+ assert_block(full_message) { !actual.equal?(expected) }
467
+ end
468
+
469
+ ##
470
+ # Passes if +expected+ != +actual+
471
+ #
472
+ # Example:
473
+ # assert_not_equal 'some string', 5
474
+
475
+ public
476
+ def assert_not_equal(expected, actual, message="")
477
+ full_message = build_message(message, "<?> expected to be != to\n<?>.", expected, actual)
478
+ assert_block(full_message) { expected != actual }
479
+ end
480
+
481
+ ##
482
+ # Passes if ! +object+ .nil?
483
+ #
484
+ # Example:
485
+ # assert_not_nil '1 two 3'.sub!(/two/, '2')
486
+
487
+ public
488
+ def assert_not_nil(object, message="")
489
+ full_message = build_message(message, "<?> expected to not be nil.", object)
490
+ assert_block(full_message){!object.nil?}
491
+ end
492
+
493
+ ##
494
+ # Passes if +regexp+ !~ +string+
495
+ #
496
+ # Example:
497
+ # assert_not_match(/two/, 'one 2 three') # -> pass
498
+ # assert_not_match(/three/, 'one 2 three') # -> fail
499
+
500
+ public
501
+ def assert_not_match(regexp, string, message="")
502
+ _wrap_assertion do
503
+ assert_instance_of(Regexp, regexp,
504
+ "<REGEXP> in assert_not_match(<REGEXP>, ...) " +
505
+ "should be a Regexp.")
506
+ full_message = build_message(message,
507
+ "<?> expected to not match\n<?>.",
508
+ regexp, string)
509
+ assert_block(full_message) { regexp !~ string }
510
+ end
511
+ end
512
+
513
+ ##
514
+ # Deprecated. Use #assert_not_match instead.
515
+ #
516
+ # Passes if +regexp+ !~ +string+
517
+ #
518
+ # Example:
519
+ # assert_no_match(/two/, 'one 2 three') # -> pass
520
+ # assert_no_match(/three/, 'one 2 three') # -> fail
521
+
522
+ public
523
+ def assert_no_match(regexp, string, message="")
524
+ _wrap_assertion do
525
+ assert_instance_of(Regexp, regexp,
526
+ "The first argument to assert_no_match " +
527
+ "should be a Regexp.")
528
+ assert_not_match(regexp, string, message)
529
+ end
530
+ end
531
+
532
+ UncaughtThrow = {
533
+ NameError => /^uncaught throw \`(.+)\'$/, #`
534
+ ArgumentError => /^uncaught throw (.+)$/,
535
+ ThreadError => /^uncaught throw \`(.+)\' in thread / #`
536
+ }
537
+
538
+ ##
539
+ # Passes if the block throws +expected_object+
540
+ #
541
+ # Example:
542
+ # assert_throw(:done) do
543
+ # throw(:done)
544
+ # end
545
+
546
+ public
547
+ def assert_throw(expected_object, message="", &proc)
548
+ _wrap_assertion do
549
+ begin
550
+ catch([]) {}
551
+ rescue TypeError
552
+ assert_instance_of(Symbol, expected_object,
553
+ "assert_throws expects the symbol that should be thrown for its first argument")
554
+ end
555
+ assert_block("Should have passed a block to assert_throw.") do
556
+ block_given?
557
+ end
558
+ caught = true
559
+ begin
560
+ catch(expected_object) do
561
+ proc.call
562
+ caught = false
563
+ end
564
+ full_message = build_message(message,
565
+ "<?> should have been thrown.",
566
+ expected_object)
567
+ assert_block(full_message) {caught}
568
+ rescue NameError, ArgumentError, ThreadError => error
569
+ raise unless UncaughtThrow[error.class] =~ error.message
570
+ tag = $1
571
+ tag = tag[1..-1].intern if tag[0, 1] == ":"
572
+ full_message = build_message(message,
573
+ "<?> expected to be thrown but\n" +
574
+ "<?> was thrown.",
575
+ expected_object, tag)
576
+ flunk(full_message)
577
+ end
578
+ end
579
+ end
580
+
581
+ ##
582
+ # Alias of assert_throw.
583
+ #
584
+ # Will be deprecated in 1.9, and removed in 2.0.
585
+ def assert_throws(*args, &block)
586
+ assert_throw(*args, &block)
587
+ end
588
+
589
+ ##
590
+ # Passes if block does not throw anything.
591
+ #
592
+ # Example:
593
+ # assert_nothing_thrown do
594
+ # [1, 2].uniq
595
+ # end
596
+
597
+ public
598
+ def assert_nothing_thrown(message="", &proc)
599
+ _wrap_assertion do
600
+ assert(block_given?, "Should have passed a block to assert_nothing_thrown")
601
+ begin
602
+ proc.call
603
+ rescue NameError, ArgumentError, ThreadError => error
604
+ raise unless UncaughtThrow[error.class] =~ error.message
605
+ tag = $1
606
+ tag = tag[1..-1].intern if tag[0, 1] == ":"
607
+ full_message = build_message(message,
608
+ "<?> was thrown when nothing was expected",
609
+ tag)
610
+ flunk(full_message)
611
+ end
612
+ assert(true, "Expected nothing to be thrown")
613
+ end
614
+ end
615
+
616
+ ##
617
+ # Passes if +expected_float+ and +actual_float+ are equal
618
+ # within +delta+ tolerance.
619
+ #
620
+ # Example:
621
+ # assert_in_delta 0.05, (50000.0 / 10**6), 0.00001
622
+
623
+ public
624
+ def assert_in_delta(expected_float, actual_float, delta=0.001, message="")
625
+ _wrap_assertion do
626
+ _assert_in_delta_validate_arguments(expected_float,
627
+ actual_float,
628
+ delta)
629
+ full_message = _assert_in_delta_message(expected_float,
630
+ actual_float,
631
+ delta,
632
+ message)
633
+ assert_block(full_message) do
634
+ (expected_float.to_f - actual_float.to_f).abs <= delta.to_f
635
+ end
636
+ end
637
+ end
638
+
639
+ ##
640
+ # Passes if +expected_float+ and +actual_float+ are
641
+ # not equal within +delta+ tolerance.
642
+ #
643
+ # Example:
644
+ # assert_not_in_delta(0.05, (50000.0 / 10**6), 0.00002) # -> pass
645
+ # assert_not_in_delta(0.05, (50000.0 / 10**6), 0.00001) # -> fail
646
+
647
+ public
648
+ def assert_not_in_delta(expected_float, actual_float, delta=0.001, message="")
649
+ _wrap_assertion do
650
+ _assert_in_delta_validate_arguments(expected_float,
651
+ actual_float,
652
+ delta)
653
+ full_message = _assert_in_delta_message(expected_float,
654
+ actual_float,
655
+ delta,
656
+ message,
657
+ :negative_assertion => true)
658
+ assert_block(full_message) do
659
+ (expected_float.to_f - actual_float.to_f).abs > delta.to_f
660
+ end
661
+ end
662
+ end
663
+
664
+ # :stopdoc:
665
+ private
666
+ def _assert_in_delta_validate_arguments(expected_float,
667
+ actual_float,
668
+ delta)
669
+ {
670
+ expected_float => "first float",
671
+ actual_float => "second float",
672
+ delta => "delta"
673
+ }.each do |float, name|
674
+ assert_respond_to(float, :to_f,
675
+ "The arguments must respond to to_f; " +
676
+ "the #{name} did not")
677
+ end
678
+ delta = delta.to_f
679
+ assert_operator(delta, :>=, 0.0, "The delta should not be negative")
680
+ end
681
+
682
+ def _assert_in_delta_message(expected_float, actual_float, delta,
683
+ message, options={})
684
+ if options[:negative_assertion]
685
+ format = <<-EOT
686
+ <?> -/+ <?> expected to not include
687
+ <?>.
688
+ EOT
689
+ else
690
+ format = <<-EOT
691
+ <?> -/+ <?> expected to include
692
+ <?>.
693
+ EOT
694
+ end
695
+ arguments = [expected_float, delta, actual_float]
696
+ normalized_expected = expected_float.to_f
697
+ normalized_actual = actual_float.to_f
698
+ normalized_delta = delta.to_f
699
+ relation_format = nil
700
+ relation_arguments = nil
701
+ if normalized_actual < normalized_expected - normalized_delta
702
+ relation_format = "<<?> < <?>-<?>[?] <= <?>+<?>[?]>"
703
+ relation_arguments = [actual_float,
704
+ expected_float, delta,
705
+ normalized_expected - normalized_delta,
706
+ expected_float, delta,
707
+ normalized_expected + normalized_delta]
708
+ elsif normalized_actual <= normalized_expected + normalized_delta
709
+ relation_format = "<<?>-<?>[?] <= <?> <= <?>+<?>[?]>"
710
+ relation_arguments = [expected_float, delta,
711
+ normalized_expected - normalized_delta,
712
+ actual_float,
713
+ expected_float, delta,
714
+ normalized_expected + normalized_delta]
715
+ else
716
+ relation_format = "<<?>-<?>[?] <= <?>+<?>[?] < <?>>"
717
+ relation_arguments = [expected_float, delta,
718
+ normalized_expected - normalized_delta,
719
+ expected_float, delta,
720
+ normalized_expected + normalized_delta,
721
+ actual_float]
722
+ end
723
+
724
+ if relation_format
725
+ format << <<-EOT
726
+
727
+ Relation:
728
+ #{relation_format}
729
+ EOT
730
+ arguments.concat(relation_arguments)
731
+ end
732
+
733
+ build_message(message, format, *arguments)
734
+ end
735
+
736
+ public
737
+ # :startdoc:
738
+
739
+ ##
740
+ # Passes if +expected_float+ and +actual_float+ are equal
741
+ # within +epsilon+ relative error of +expected_float+.
742
+ #
743
+ # Example:
744
+ # assert_in_epsilon(10000.0, 9900.0, 0.1) # -> pass
745
+ # assert_in_epsilon(10000.0, 9899.0, 0.1) # -> fail
746
+
747
+ public
748
+ def assert_in_epsilon(expected_float, actual_float, epsilon=0.001,
749
+ message="")
750
+ _wrap_assertion do
751
+ _assert_in_epsilon_validate_arguments(expected_float,
752
+ actual_float,
753
+ epsilon)
754
+ full_message = _assert_in_epsilon_message(expected_float,
755
+ actual_float,
756
+ epsilon,
757
+ message)
758
+ assert_block(full_message) do
759
+ normalized_expected_float = expected_float.to_f
760
+ if normalized_expected_float.zero?
761
+ delta = epsilon.to_f ** 2
762
+ else
763
+ delta = normalized_expected_float * epsilon.to_f
764
+ end
765
+ (normalized_expected_float - actual_float.to_f).abs <= delta
766
+ end
767
+ end
768
+ end
769
+
770
+ ##
771
+ # Passes if +expected_float+ and +actual_float+ are
772
+ # not equal within +epsilon+ relative error of
773
+ # +expected_float+.
774
+ #
775
+ # Example:
776
+ # assert_not_in_epsilon(10000.0, 9900.0, 0.1) # -> fail
777
+ # assert_not_in_epsilon(10000.0, 9899.0, 0.1) # -> pass
778
+
779
+ public
780
+ def assert_not_in_epsilon(expected_float, actual_float, epsilon=0.001,
781
+ message="")
782
+ _wrap_assertion do
783
+ _assert_in_epsilon_validate_arguments(expected_float,
784
+ actual_float,
785
+ epsilon)
786
+ full_message = _assert_in_epsilon_message(expected_float,
787
+ actual_float,
788
+ epsilon,
789
+ message,
790
+ :negative_assertion => true)
791
+ assert_block(full_message) do
792
+ normalized_expected_float = expected_float.to_f
793
+ delta = normalized_expected_float * epsilon.to_f
794
+ (normalized_expected_float - actual_float.to_f).abs > delta
795
+ end
796
+ end
797
+ end
798
+
799
+ # :stopdoc:
800
+ private
801
+ def _assert_in_epsilon_validate_arguments(expected_float,
802
+ actual_float,
803
+ epsilon)
804
+ {
805
+ expected_float => "first float",
806
+ actual_float => "second float",
807
+ epsilon => "epsilon"
808
+ }.each do |float, name|
809
+ assert_respond_to(float, :to_f,
810
+ "The arguments must respond to to_f; " +
811
+ "the #{name} did not")
812
+ end
813
+ epsilon = epsilon.to_f
814
+ assert_operator(epsilon, :>=, 0.0, "The epsilon should not be negative")
815
+ end
816
+
817
+ def _assert_in_epsilon_message(expected_float, actual_float, epsilon,
818
+ message, options={})
819
+ normalized_expected = expected_float.to_f
820
+ normalized_actual = actual_float.to_f
821
+ normalized_epsilon = epsilon.to_f
822
+ delta = normalized_expected * normalized_epsilon
823
+
824
+ if options[:negative_assertion]
825
+ format = <<-EOT
826
+ <?> -/+ (<?> * <?>)[?] expected to not include
827
+ <?>.
828
+ EOT
829
+ else
830
+ format = <<-EOT
831
+ <?> -/+ (<?> * <?>)[?] expected to include
832
+ <?>.
833
+ EOT
834
+ end
835
+ arguments = [expected_float, expected_float, epsilon, delta,
836
+ actual_float]
837
+
838
+ relation_format = nil
839
+ relation_arguments = nil
840
+ if normalized_actual < normalized_expected - delta
841
+ relation_format = "<<?> < <?>-(<?>*<?>)[?] <= <?>+(<?>*<?>)[?]>"
842
+ relation_arguments = [actual_float,
843
+ expected_float, expected_float, epsilon,
844
+ normalized_expected - delta,
845
+ expected_float, expected_float, epsilon,
846
+ normalized_expected + delta]
847
+ elsif normalized_actual <= normalized_expected + delta
848
+ relation_format = "<<?>-(<?>*<?>)[?] <= <?> <= <?>+(<?>*<?>)[?]>"
849
+ relation_arguments = [expected_float, expected_float, epsilon,
850
+ normalized_expected - delta,
851
+ actual_float,
852
+ expected_float, expected_float, epsilon,
853
+ normalized_expected + delta]
854
+ else
855
+ relation_format = "<<?>-(<?>*<?>)[?] <= <?>+(<?>*<?>)[?] < <?>>"
856
+ relation_arguments = [expected_float, expected_float, epsilon,
857
+ normalized_expected - delta,
858
+ expected_float, expected_float, epsilon,
859
+ normalized_expected + delta,
860
+ actual_float]
861
+ end
862
+
863
+ if relation_format
864
+ format << <<-EOT
865
+
866
+ Relation:
867
+ #{relation_format}
868
+ EOT
869
+ arguments.concat(relation_arguments)
870
+ end
871
+
872
+ build_message(message, format, *arguments)
873
+ end
874
+
875
+ public
876
+ # :startdoc:
877
+
878
+ ##
879
+ # Passes if the method send returns a true value.
880
+ #
881
+ # +send_array+ is composed of:
882
+ # * A receiver
883
+ # * A method
884
+ # * Arguments to the method
885
+ #
886
+ # Example:
887
+ # assert_send([[1, 2], :member?, 1]) # -> pass
888
+ # assert_send([[1, 2], :member?, 4]) # -> fail
889
+
890
+ public
891
+ def assert_send(send_array, message=nil)
892
+ _wrap_assertion do
893
+ assert_instance_of(Array, send_array,
894
+ "assert_send requires an array " +
895
+ "of send information")
896
+ assert_operator(send_array.size, :>=, 2,
897
+ "assert_send requires at least a receiver " +
898
+ "and a message name")
899
+ format = <<EOT
900
+ <?> expected to respond to
901
+ <?(*?)> with a true value but was
902
+ <?>.
903
+ EOT
904
+ receiver, message_name, *arguments = send_array
905
+ result = nil
906
+ full_message =
907
+ build_message(message,
908
+ format,
909
+ receiver,
910
+ AssertionMessage.literal(message_name.to_s),
911
+ arguments,
912
+ AssertionMessage.delayed_literal {result})
913
+ assert_block(full_message) do
914
+ result = receiver.__send__(message_name, *arguments)
915
+ result
916
+ end
917
+ end
918
+ end
919
+
920
+ ##
921
+ # Passes if the method send doesn't return a true value.
922
+ #
923
+ # +send_array+ is composed of:
924
+ # * A receiver
925
+ # * A method
926
+ # * Arguments to the method
927
+ #
928
+ # Example:
929
+ # assert_not_send([[1, 2], :member?, 1]) # -> fail
930
+ # assert_not_send([[1, 2], :member?, 4]) # -> pass
931
+ def assert_not_send(send_array, message=nil)
932
+ _wrap_assertion do
933
+ assert_instance_of(Array, send_array,
934
+ "assert_not_send requires an array " +
935
+ "of send information")
936
+ assert_operator(send_array.size, :>=, 2,
937
+ "assert_not_send requires at least a receiver " +
938
+ "and a message name")
939
+ format = <<EOT
940
+ <?> expected to respond to
941
+ <?(*?)> with not a true value but was
942
+ <?>.
943
+ EOT
944
+ receiver, message_name, *arguments = send_array
945
+ result = nil
946
+ full_message =
947
+ build_message(message,
948
+ format,
949
+ receiver,
950
+ AssertionMessage.literal(message_name.to_s),
951
+ arguments,
952
+ AssertionMessage.delayed_literal {result})
953
+ assert_block(full_message) do
954
+ result = receiver.__send__(message_name, *arguments)
955
+ not result
956
+ end
957
+ end
958
+ end
959
+
960
+ ##
961
+ # Passes if +actual+ is a boolean value.
962
+ #
963
+ # Example:
964
+ # assert_boolean(true) # -> pass
965
+ # assert_boolean(nil) # -> fail
966
+ def assert_boolean(actual, message=nil)
967
+ _wrap_assertion do
968
+ assert_block(build_message(message,
969
+ "<true> or <false> expected but was\n<?>",
970
+ actual)) do
971
+ [true, false].include?(actual)
972
+ end
973
+ end
974
+ end
975
+
976
+ ##
977
+ # Passes if +actual+ is true.
978
+ #
979
+ # Example:
980
+ # assert_true(true) # -> pass
981
+ # assert_true(:true) # -> fail
982
+ def assert_true(actual, message=nil)
983
+ _wrap_assertion do
984
+ assert_block(build_message(message,
985
+ "<true> expected but was\n<?>",
986
+ actual)) do
987
+ actual == true
988
+ end
989
+ end
990
+ end
991
+
992
+ ##
993
+ # Passes if +actual+ is false.
994
+ #
995
+ # Example:
996
+ # assert_false(false) # -> pass
997
+ # assert_false(nil) # -> fail
998
+ def assert_false(actual, message=nil)
999
+ _wrap_assertion do
1000
+ assert_block(build_message(message,
1001
+ "<false> expected but was\n<?>",
1002
+ actual)) do
1003
+ actual == false
1004
+ end
1005
+ end
1006
+ end
1007
+
1008
+ ##
1009
+ # Passes if expression "+expected+ +operator+
1010
+ # +actual+" is true.
1011
+ #
1012
+ # Example:
1013
+ # assert_compare(1, "<", 10) # -> pass
1014
+ # assert_compare(1, ">=", 10) # -> fail
1015
+ def assert_compare(expected, operator, actual, message=nil)
1016
+ _wrap_assertion do
1017
+ assert_send([["<", "<=", ">", ">="], :include?, operator.to_s])
1018
+ case operator.to_s
1019
+ when "<"
1020
+ operator_description = "less than"
1021
+ when "<="
1022
+ operator_description = "less than or equal to"
1023
+ when ">"
1024
+ operator_description = "greater than"
1025
+ when ">="
1026
+ operator_description = "greater than or equal to"
1027
+ end
1028
+ template = <<-EOT
1029
+ <?> #{operator} <?> should be true
1030
+ <?> expected #{operator_description}
1031
+ <?>.
1032
+ EOT
1033
+ full_message = build_message(message, template,
1034
+ expected, actual,
1035
+ expected, actual)
1036
+ assert_block(full_message) do
1037
+ expected.__send__(operator, actual)
1038
+ end
1039
+ end
1040
+ end
1041
+
1042
+ ##
1043
+ # Passes if assertion is failed in block.
1044
+ #
1045
+ # Example:
1046
+ # assert_fail_assertion {assert_equal("A", "B")} # -> pass
1047
+ # assert_fail_assertion {assert_equal("A", "A")} # -> fail
1048
+ def assert_fail_assertion(message=nil)
1049
+ _wrap_assertion do
1050
+ full_message = build_message(message,
1051
+ "Failed assertion was expected.")
1052
+ assert_block(full_message) do
1053
+ begin
1054
+ yield
1055
+ false
1056
+ rescue AssertionFailedError
1057
+ true
1058
+ end
1059
+ end
1060
+ end
1061
+ end
1062
+
1063
+ ##
1064
+ # Passes if an exception is raised in block and its
1065
+ # message is +expected+.
1066
+ #
1067
+ # Example:
1068
+ # assert_raise_message("exception") {raise "exception"} # -> pass
1069
+ # assert_raise_message(/exc/i) {raise "exception"} # -> pass
1070
+ # assert_raise_message("exception") {raise "EXCEPTION"} # -> fail
1071
+ # assert_raise_message("exception") {} # -> fail
1072
+ def assert_raise_message(expected, message=nil)
1073
+ _wrap_assertion do
1074
+ full_message = build_message(message,
1075
+ "<?> exception message expected " +
1076
+ "but none was thrown.",
1077
+ expected)
1078
+ exception = nil
1079
+ assert_block(full_message) do
1080
+ begin
1081
+ yield
1082
+ false
1083
+ rescue Exception => exception
1084
+ true
1085
+ end
1086
+ end
1087
+
1088
+ actual = exception.message
1089
+ diff = AssertionMessage.delayed_diff(expected, actual)
1090
+ full_message =
1091
+ build_message(message,
1092
+ "<?> exception message expected but was\n" +
1093
+ "<?>.?", expected, actual, diff)
1094
+ assert_block(full_message) do
1095
+ if expected.is_a?(Regexp)
1096
+ expected =~ actual
1097
+ else
1098
+ expected == actual
1099
+ end
1100
+ end
1101
+ end
1102
+ end
1103
+
1104
+ ##
1105
+ # Passes if +object+.const_defined?(+constant_name+)
1106
+ #
1107
+ # Example:
1108
+ # assert_const_defined(Test, :Unit) # -> pass
1109
+ # assert_const_defined(Object, :Nonexistent) # -> fail
1110
+ def assert_const_defined(object, constant_name, message=nil)
1111
+ _wrap_assertion do
1112
+ full_message = build_message(message,
1113
+ "<?>.const_defined\\?(<?>) expected.",
1114
+ object, constant_name)
1115
+ assert_block(full_message) do
1116
+ object.const_defined?(constant_name)
1117
+ end
1118
+ end
1119
+ end
1120
+
1121
+ ##
1122
+ # Passes if !+object+.const_defined?(+constant_name+)
1123
+ #
1124
+ # Example:
1125
+ # assert_not_const_defined(Object, :Nonexistent) # -> pass
1126
+ # assert_not_const_defined(Test, :Unit) # -> fail
1127
+ def assert_not_const_defined(object, constant_name, message=nil)
1128
+ _wrap_assertion do
1129
+ full_message = build_message(message,
1130
+ "!<?>.const_defined\\?(<?>) expected.",
1131
+ object, constant_name)
1132
+ assert_block(full_message) do
1133
+ !object.const_defined?(constant_name)
1134
+ end
1135
+ end
1136
+ end
1137
+
1138
+ ##
1139
+ # Passes if +object+.+predicate+ is _true_.
1140
+ #
1141
+ # Example:
1142
+ # assert_predicate([], :empty?) # -> pass
1143
+ # assert_predicate([1], :empty?) # -> fail
1144
+ def assert_predicate(object, predicate, message=nil)
1145
+ _wrap_assertion do
1146
+ assert_respond_to(object, predicate, message)
1147
+ actual = object.__send__(predicate)
1148
+ full_message = build_message(message,
1149
+ "<?>.? is true value expected but was\n" +
1150
+ "<?>",
1151
+ object,
1152
+ AssertionMessage.literal(predicate),
1153
+ actual)
1154
+ assert_block(full_message) do
1155
+ actual
1156
+ end
1157
+ end
1158
+ end
1159
+
1160
+ ##
1161
+ # Passes if +object+.+predicate+ is not _true_.
1162
+ #
1163
+ # Example:
1164
+ # assert_not_predicate([1], :empty?) # -> pass
1165
+ # assert_not_predicate([], :empty?) # -> fail
1166
+ def assert_not_predicate(object, predicate, message=nil)
1167
+ _wrap_assertion do
1168
+ assert_respond_to(object, predicate, message)
1169
+ actual = object.__send__(predicate)
1170
+ full_message = build_message(message,
1171
+ "<?>.? is false value expected but was\n" +
1172
+ "<?>",
1173
+ object,
1174
+ AssertionMessage.literal(predicate),
1175
+ actual)
1176
+ assert_block(full_message) do
1177
+ not actual
1178
+ end
1179
+ end
1180
+ end
1181
+
1182
+ ##
1183
+ # Passes if +object+#+alias_name+ is an alias method of
1184
+ # +object+#+original_name+.
1185
+ #
1186
+ # Example:
1187
+ # assert_alias_method([], :length, :size) # -> pass
1188
+ # assert_alias_method([], :size, :length) # -> pass
1189
+ # assert_alias_method([], :each, :size) # -> fail
1190
+ def assert_alias_method(object, alias_name, original_name, message=nil)
1191
+ _wrap_assertion do
1192
+ find_method_failure_message = Proc.new do |method_name|
1193
+ build_message(message,
1194
+ "<?>.? doesn't exist\n" +
1195
+ "(Class: <?>)",
1196
+ object,
1197
+ AssertionMessage.literal(method_name),
1198
+ object.class)
1199
+ end
1200
+
1201
+ alias_method = original_method = nil
1202
+ assert_block(find_method_failure_message.call(alias_name)) do
1203
+ begin
1204
+ alias_method = object.method(alias_name)
1205
+ true
1206
+ rescue NameError
1207
+ false
1208
+ end
1209
+ end
1210
+ assert_block(find_method_failure_message.call(original_name)) do
1211
+ begin
1212
+ original_method = object.method(original_name)
1213
+ true
1214
+ rescue NameError
1215
+ false
1216
+ end
1217
+ end
1218
+
1219
+ full_message = build_message(message,
1220
+ "<?> is alias of\n" +
1221
+ "<?> expected",
1222
+ alias_method,
1223
+ original_method)
1224
+ assert_block(full_message) do
1225
+ alias_method == original_method
1226
+ end
1227
+ end
1228
+ end
1229
+
1230
+ ##
1231
+ # Passes if +path+ exists.
1232
+ #
1233
+ # Example:
1234
+ # assert_path_exist("/tmp") # -> pass
1235
+ # assert_path_exist("/bin/sh") # -> pass
1236
+ # assert_path_exist("/nonexistent") # -> fail
1237
+ def assert_path_exist(path, message=nil)
1238
+ _wrap_assertion do
1239
+ failure_message = build_message(message,
1240
+ "<?> expected to exist",
1241
+ path)
1242
+ assert_block(failure_message) do
1243
+ File.exist?(path)
1244
+ end
1245
+ end
1246
+ end
1247
+
1248
+ ##
1249
+ # Passes if +path+ doesn't exist.
1250
+ #
1251
+ # Example:
1252
+ # assert_path_not_exist("/nonexistent") # -> pass
1253
+ # assert_path_not_exist("/tmp") # -> fail
1254
+ # assert_path_not_exist("/bin/sh") # -> fail
1255
+ def assert_path_not_exist(path, message=nil)
1256
+ _wrap_assertion do
1257
+ failure_message = build_message(message,
1258
+ "<?> expected to not exist",
1259
+ path)
1260
+ assert_block(failure_message) do
1261
+ not File.exist?(path)
1262
+ end
1263
+ end
1264
+ end
1265
+
1266
+ ##
1267
+ # Passes if +collection+ includes +object+.
1268
+ #
1269
+ # Example:
1270
+ # assert_include([1, 10], 1) # -> pass
1271
+ # assert_include(1..10, 5) # -> pass
1272
+ # assert_include([1, 10], 5) # -> fail
1273
+ # assert_include(1..10, 20) # -> fail
1274
+ def assert_include(collection, object, message=nil)
1275
+ _wrap_assertion do
1276
+ assert_respond_to(collection, :include?,
1277
+ "The collection must respond to :include?.")
1278
+ full_message = build_message(message,
1279
+ "<?> expected to include\n<?>.",
1280
+ collection,
1281
+ object)
1282
+ assert_block(full_message) do
1283
+ collection.include?(object)
1284
+ end
1285
+ end
1286
+ end
1287
+
1288
+ ##
1289
+ # Passes if +collection+ doesn't include +object+.
1290
+ #
1291
+ # Example:
1292
+ # assert_not_include([1, 10], 5) # -> pass
1293
+ # assert_not_include(1..10, 20) # -> pass
1294
+ # assert_not_include([1, 10], 1) # -> fail
1295
+ # assert_not_include(1..10, 5) # -> fail
1296
+ def assert_not_include(collection, object, message=nil)
1297
+ _wrap_assertion do
1298
+ assert_respond_to(collection, :include?,
1299
+ "The collection must respond to :include?.")
1300
+ full_message = build_message(message,
1301
+ "<?> expected to not include\n<?>.",
1302
+ collection,
1303
+ object)
1304
+ assert_block(full_message) do
1305
+ not collection.include?(object)
1306
+ end
1307
+ end
1308
+ end
1309
+
1310
+ ##
1311
+ # Passes if +object+ is empty.
1312
+ #
1313
+ # Example:
1314
+ # assert_empty("") # -> pass
1315
+ # assert_empty([]) # -> pass
1316
+ # assert_empty({}) # -> pass
1317
+ # assert_empty(" ") # -> fail
1318
+ # assert_empty([nil]) # -> fail
1319
+ # assert_empty({1 => 2}) # -> fail
1320
+ def assert_empty(object, message=nil)
1321
+ _wrap_assertion do
1322
+ assert_respond_to(object, :empty?,
1323
+ "The object must respond to :empty?.")
1324
+ full_message = build_message(message,
1325
+ "<?> expected to be empty.",
1326
+ object)
1327
+ assert_block(full_message) do
1328
+ object.empty?
1329
+ end
1330
+ end
1331
+ end
1332
+
1333
+ ##
1334
+ # Passes if +object+ is not empty.
1335
+ #
1336
+ # Example:
1337
+ # assert_not_empty(" ") # -> pass
1338
+ # assert_not_empty([nil]) # -> pass
1339
+ # assert_not_empty({1 => 2}) # -> pass
1340
+ # assert_not_empty("") # -> fail
1341
+ # assert_not_empty([]) # -> fail
1342
+ # assert_not_empty({}) # -> fail
1343
+ def assert_not_empty(object, message=nil)
1344
+ _wrap_assertion do
1345
+ assert_respond_to(object, :empty?,
1346
+ "The object must respond to :empty?.")
1347
+ full_message = build_message(message,
1348
+ "<?> expected to not be empty.",
1349
+ object)
1350
+ assert_block(full_message) do
1351
+ not object.empty?
1352
+ end
1353
+ end
1354
+ end
1355
+
1356
+ ##
1357
+ # Builds a failure message. +head+ is added before the +template+ and
1358
+ # +arguments+ replaces the '?'s positionally in the template.
1359
+
1360
+ public
1361
+ def build_message(head, template=nil, *arguments)
1362
+ template &&= template.chomp
1363
+ return AssertionMessage.new(head, template, arguments)
1364
+ end
1365
+
1366
+ private
1367
+ def _wrap_assertion(&block)
1368
+ @_assertion_wrapped ||= false
1369
+ if @_assertion_wrapped
1370
+ block.call
1371
+ else
1372
+ @_assertion_wrapped = true
1373
+ begin
1374
+ add_assertion
1375
+ block.call
1376
+ ensure
1377
+ @_assertion_wrapped = false
1378
+ end
1379
+ end
1380
+ end
1381
+
1382
+ ##
1383
+ # Called whenever an assertion is made. Define this in classes that
1384
+ # include Test::Unit::Assertions to record assertion counts.
1385
+
1386
+ private
1387
+ def add_assertion
1388
+ end
1389
+
1390
+ ##
1391
+ # Select whether or not to use the pretty-printer. If this option is set
1392
+ # to false before any assertions are made, pp.rb will not be required.
1393
+
1394
+ public
1395
+ def self.use_pp=(value)
1396
+ AssertionMessage.use_pp = value
1397
+ end
1398
+
1399
+ # :stopdoc:
1400
+ private
1401
+ def _assert_raise(assert_expected_exception, *args, &block)
1402
+ _wrap_assertion do
1403
+ if args.last.is_a?(String)
1404
+ message = args.pop
1405
+ else
1406
+ message = ""
1407
+ end
1408
+
1409
+ assert_exception_helper = AssertExceptionHelper.new(self, args)
1410
+ expected = assert_exception_helper.expected_exceptions
1411
+ actual_exception = nil
1412
+ full_message = build_message(message,
1413
+ "<?> exception expected " +
1414
+ "but none was thrown.",
1415
+ expected)
1416
+ assert_block(full_message) do
1417
+ begin
1418
+ yield
1419
+ false
1420
+ rescue Exception => actual_exception
1421
+ true
1422
+ end
1423
+ end
1424
+ assert_expected_exception.call(message, assert_exception_helper,
1425
+ actual_exception)
1426
+ actual_exception
1427
+ end
1428
+ end
1429
+
1430
+ private
1431
+ def _set_failed_information(failure, expected, actual, user_message)
1432
+ failure.expected = expected
1433
+ failure.actual = actual
1434
+ failure.inspected_expected = AssertionMessage.convert(expected)
1435
+ failure.inspected_actual = AssertionMessage.convert(actual)
1436
+ failure.user_message = user_message
1437
+ end
1438
+
1439
+ class AssertionMessage
1440
+ @use_pp = true
1441
+ class << self
1442
+ attr_accessor :use_pp
1443
+
1444
+ def literal(value)
1445
+ Literal.new(value)
1446
+ end
1447
+
1448
+ def delayed_literal(&block)
1449
+ DelayedLiteral.new(block)
1450
+ end
1451
+
1452
+ def maybe_container(value, &formatter)
1453
+ MaybeContainer.new(value, &formatter)
1454
+ end
1455
+
1456
+ MAX_DIFF_TARGET_STRING_SIZE = 1000
1457
+ def max_diff_target_string_size
1458
+ return @@max_diff_target_string_size if @@max_diff_target_string_size
1459
+
1460
+ size = ENV["TEST_UNIT_MAX_DIFF_TARGET_STRING_SIZE"]
1461
+ if size
1462
+ begin
1463
+ size = Integer(size)
1464
+ rescue ArgumentError
1465
+ size = nil
1466
+ end
1467
+ end
1468
+ size || MAX_DIFF_TARGET_STRING_SIZE
1469
+ end
1470
+
1471
+ @@max_diff_target_string_size = nil
1472
+ def max_diff_target_string_size=(size)
1473
+ @@max_diff_target_string_size = size
1474
+ end
1475
+
1476
+ def diff_target_string?(string)
1477
+ if string.respond_to?(:bytesize)
1478
+ string.bytesize < max_diff_target_string_size
1479
+ else
1480
+ string.size < max_diff_target_string_size
1481
+ end
1482
+ end
1483
+
1484
+ def ensure_diffable_string(string)
1485
+ if string.respond_to?(:encoding) and
1486
+ !string.encoding.ascii_compatible?
1487
+ string = string.dup.force_encoding("ASCII-8BIT")
1488
+ end
1489
+ string
1490
+ end
1491
+
1492
+ def prepare_for_diff(from, to)
1493
+ if !from.is_a?(String) or !to.is_a?(String)
1494
+ from = convert(from)
1495
+ to = convert(to)
1496
+ end
1497
+
1498
+ if diff_target_string?(from) and diff_target_string?(to)
1499
+ from = ensure_diffable_string(from)
1500
+ to = ensure_diffable_string(to)
1501
+ [from, to]
1502
+ else
1503
+ [nil, nil]
1504
+ end
1505
+ end
1506
+
1507
+ def delayed_diff(from, to)
1508
+ delayed_literal do
1509
+ from, to = prepare_for_diff(from, to)
1510
+
1511
+ diff = "" if from.nil? or to.nil?
1512
+ diff ||= Diff.readable(from, to)
1513
+ if /^[-+]/ !~ diff
1514
+ diff = ""
1515
+ elsif /^[ ?]/ =~ diff or /(?:.*\n){2,}/ =~ diff
1516
+ diff = "\n\ndiff:\n#{diff}"
1517
+ else
1518
+ diff = ""
1519
+ end
1520
+
1521
+ if Diff.need_fold?(diff)
1522
+ folded_diff = Diff.folded_readable(from, to)
1523
+ diff << "\n\nfolded diff:\n#{folded_diff}"
1524
+ end
1525
+
1526
+ diff
1527
+ end
1528
+ end
1529
+
1530
+ def convert(object)
1531
+ if object.is_a?(Exception)
1532
+ object = AssertExceptionHelper::WrappedException.new(object)
1533
+ end
1534
+ inspector = Inspector.new(object)
1535
+ if use_pp
1536
+ begin
1537
+ require 'pp' unless defined?(PP)
1538
+ begin
1539
+ return PP.pp(inspector, '').chomp
1540
+ rescue NameError
1541
+ end
1542
+ rescue LoadError
1543
+ self.use_pp = false
1544
+ end
1545
+ end
1546
+ inspector.inspect
1547
+ end
1548
+ end
1549
+
1550
+ class Inspector
1551
+ include Comparable
1552
+
1553
+ class << self
1554
+ def cached_new(object, inspected_objects)
1555
+ inspected_objects[object.object_id] ||=
1556
+ new(object, inspected_objects)
1557
+ end
1558
+
1559
+ @@inspector_classes = []
1560
+ def inspector_classes
1561
+ @@inspector_classes
1562
+ end
1563
+
1564
+ def register_inspector_class(inspector_class)
1565
+ @@inspector_classes << inspector_class
1566
+ end
1567
+
1568
+ def unregister_inspector_class(inspector_class)
1569
+ @@inspector_classes.delete(inspector_class)
1570
+ end
1571
+ end
1572
+
1573
+ attr_reader :object
1574
+ def initialize(object, inspected_objects={})
1575
+ @inspected_objects = inspected_objects
1576
+ @object = object
1577
+ @inspected_objects[@object.object_id] = self
1578
+ @inspect_target = inspect_target
1579
+ end
1580
+
1581
+ alias_method :native_inspect, :inspect
1582
+ def inspect
1583
+ @inspect_target.inspect
1584
+ end
1585
+
1586
+ def pretty_print(q)
1587
+ @inspect_target.pretty_print(q)
1588
+ end
1589
+
1590
+ def pretty_print_cycle(q)
1591
+ @inspect_target.pretty_print_cycle(q)
1592
+ end
1593
+
1594
+ def <=>(other)
1595
+ if other.is_a?(self.class)
1596
+ @object <=> other.object
1597
+ else
1598
+ @object <=> other
1599
+ end
1600
+ end
1601
+
1602
+ private
1603
+ def inspect_target
1604
+ self.class.inspector_classes.each do |inspector_class|
1605
+ if inspector_class.target?(@object)
1606
+ return inspector_class.new(@object, @inspected_objects)
1607
+ end
1608
+ end
1609
+ @object
1610
+ end
1611
+ end
1612
+
1613
+ class HashInspector
1614
+ Inspector.register_inspector_class(self)
1615
+
1616
+ class << self
1617
+ def target?(object)
1618
+ object.is_a?(Hash) or object == ENV
1619
+ end
1620
+ end
1621
+
1622
+ def initialize(hash, inspected_objects)
1623
+ @inspected_objects = inspected_objects
1624
+ @hash = {}
1625
+ hash.each do |key, value|
1626
+ key = Inspector.cached_new(key, @inspected_objects)
1627
+ value = Inspector.cached_new(value, @inspected_objects)
1628
+ @hash[key] = value
1629
+ end
1630
+ end
1631
+
1632
+ def inspect
1633
+ @hash.inspect
1634
+ end
1635
+
1636
+ def pretty_print(q)
1637
+ q.group(1, '{', '}') do
1638
+ q.seplist(self, nil, :each_pair) do |k, v|
1639
+ q.group do
1640
+ q.pp(k)
1641
+ q.text('=>')
1642
+ q.group(1) do
1643
+ q.breakable('')
1644
+ q.pp(v)
1645
+ end
1646
+ end
1647
+ end
1648
+ end
1649
+ end
1650
+
1651
+ def pretty_print_cycle(q)
1652
+ @hash.pretty_print_cycle(q)
1653
+ end
1654
+
1655
+ def each_pair
1656
+ keys = @hash.keys
1657
+ begin
1658
+ keys = keys.sort # FIXME: more cleverly
1659
+ rescue ArgumentError
1660
+ end
1661
+ keys.each do |key|
1662
+ yield(key, @hash[key])
1663
+ end
1664
+ end
1665
+ end
1666
+
1667
+ class ArrayInspector
1668
+ Inspector.register_inspector_class(self)
1669
+
1670
+ class << self
1671
+ def target?(object)
1672
+ object.is_a?(Array)
1673
+ end
1674
+ end
1675
+
1676
+ def initialize(array, inspected_objects)
1677
+ @inspected_objects = inspected_objects
1678
+ @array = array.collect do |element|
1679
+ Inspector.cached_new(element, @inspected_objects)
1680
+ end
1681
+ end
1682
+
1683
+ def inspect
1684
+ @array.inspect
1685
+ end
1686
+
1687
+ def pretty_print(q)
1688
+ q.group(1, '[', ']') do
1689
+ q.seplist(self) do |v|
1690
+ q.pp(v)
1691
+ end
1692
+ end
1693
+ end
1694
+
1695
+ def pretty_print_cycle(q)
1696
+ @array.pretty_print_cycle(q)
1697
+ end
1698
+
1699
+ def each(&block)
1700
+ @array.each(&block)
1701
+ end
1702
+ end
1703
+
1704
+ class Literal
1705
+ def initialize(value)
1706
+ @value = value
1707
+ end
1708
+
1709
+ def inspect
1710
+ @value.to_s
1711
+ end
1712
+ end
1713
+
1714
+ class DelayedLiteral
1715
+ def initialize(value)
1716
+ @value = value
1717
+ end
1718
+
1719
+ def inspect
1720
+ @value.call.to_s
1721
+ end
1722
+ end
1723
+
1724
+ class MaybeContainer
1725
+ def initialize(value, &formatter)
1726
+ @value = value
1727
+ @formatter = formatter
1728
+ end
1729
+
1730
+ def inspect
1731
+ if @value.is_a?(Array)
1732
+ values = @value.collect do |value|
1733
+ @formatter.call(AssertionMessage.convert(value))
1734
+ end
1735
+ "[#{values.join(', ')}]"
1736
+ else
1737
+ @formatter.call(AssertionMessage.convert(@value))
1738
+ end
1739
+ end
1740
+ end
1741
+
1742
+ class Template
1743
+ def self.create(string)
1744
+ parts = (string ? string.scan(/(?=[^\\])\?|(?:\\\?|[^\?])+/m) : [])
1745
+ self.new(parts)
1746
+ end
1747
+
1748
+ attr_reader :count
1749
+
1750
+ def initialize(parts)
1751
+ @parts = parts
1752
+ @count = parts.find_all{|e| e == '?'}.size
1753
+ end
1754
+
1755
+ def result(parameters)
1756
+ raise "The number of parameters does not match the number of substitutions." if(parameters.size != count)
1757
+ params = parameters.dup
1758
+ expanded_template = ""
1759
+ @parts.each do |part|
1760
+ if part == '?'
1761
+ encoding_safe_concat(expanded_template, params.shift)
1762
+ else
1763
+ expanded_template << part.gsub(/\\\?/m, '?')
1764
+ end
1765
+ end
1766
+ expanded_template
1767
+ end
1768
+
1769
+ private
1770
+ if Object.const_defined?(:Encoding)
1771
+ def encoding_safe_concat(buffer, parameter)
1772
+ if Encoding.compatible?(buffer.encoding, parameter.encoding)
1773
+ buffer << parameter
1774
+ else
1775
+ buffer << parameter.dup.force_encoding(buffer.encoding)
1776
+ end
1777
+ end
1778
+ else
1779
+ def encoding_safe_concat(buffer, parameter)
1780
+ buffer << parameter
1781
+ end
1782
+ end
1783
+ end
1784
+
1785
+ include Util::BacktraceFilter
1786
+
1787
+ def initialize(head, template_string, parameters)
1788
+ @head = head
1789
+ @template_string = template_string
1790
+ @parameters = parameters
1791
+ end
1792
+
1793
+ def convert(object)
1794
+ self.class.convert(object)
1795
+ end
1796
+
1797
+ def template
1798
+ @template ||= Template.create(@template_string)
1799
+ end
1800
+
1801
+ def add_period(string)
1802
+ (string =~ /\.\Z/ ? string : string + '.')
1803
+ end
1804
+
1805
+ def to_s
1806
+ message_parts = []
1807
+ if (@head)
1808
+ head = @head.to_s
1809
+ unless(head.empty?)
1810
+ message_parts << add_period(head)
1811
+ end
1812
+ end
1813
+ tail = template.result(@parameters.collect{|e| convert(e)})
1814
+ message_parts << tail unless(tail.empty?)
1815
+ message_parts.join("\n")
1816
+ end
1817
+ end
1818
+
1819
+ class AssertExceptionHelper
1820
+ class WrappedException
1821
+ attr_reader :exception
1822
+ def initialize(exception)
1823
+ @exception = exception
1824
+ end
1825
+
1826
+ def inspect
1827
+ if default_inspect?
1828
+ "#{@exception.class.inspect}(<#{@exception.message}>)"
1829
+ else
1830
+ @exception.inspect
1831
+ end
1832
+ end
1833
+
1834
+ def method_missing(name, *args, &block)
1835
+ @exception.__send__(name, *args, &block)
1836
+ end
1837
+
1838
+ private
1839
+ def default_inspect?
1840
+ inspect_method = @exception.method(:inspect)
1841
+ if inspect_method.respond_to?(:owner) and
1842
+ inspect_method.owner == Exception
1843
+ true
1844
+ else
1845
+ default_inspect_method = Exception.instance_method(:inspect)
1846
+ default_inspect_method.bind(@exception).call == @exception.inspect
1847
+ end
1848
+ end
1849
+ end
1850
+
1851
+ def initialize(test_case, expected_exceptions)
1852
+ @test_case = test_case
1853
+ @expected_exceptions = expected_exceptions
1854
+ @expected_classes, @expected_modules, @expected_objects =
1855
+ split_expected_exceptions(expected_exceptions)
1856
+ end
1857
+
1858
+ def expected_exceptions
1859
+ exceptions = @expected_exceptions.collect do |exception|
1860
+ if exception.is_a?(Exception)
1861
+ WrappedException.new(exception)
1862
+ else
1863
+ exception
1864
+ end
1865
+ end
1866
+ if exceptions.size == 1
1867
+ exceptions[0]
1868
+ else
1869
+ exceptions
1870
+ end
1871
+ end
1872
+
1873
+ def expected?(actual_exception, equality=nil)
1874
+ equality ||= :instance_of?
1875
+ expected_class?(actual_exception, equality) or
1876
+ expected_module?(actual_exception) or
1877
+ expected_object?(actual_exception)
1878
+ end
1879
+
1880
+ private
1881
+ def split_expected_exceptions(expected_exceptions)
1882
+ exception_modules = []
1883
+ exception_objects = []
1884
+ exception_classes = []
1885
+ expected_exceptions.each do |exception_type|
1886
+ if exception_type.instance_of?(Module)
1887
+ exception_modules << exception_type
1888
+ elsif exception_type.is_a?(Exception)
1889
+ exception_objects << exception_type
1890
+ else
1891
+ @test_case.__send__(:assert,
1892
+ Exception >= exception_type,
1893
+ "Should expect a class of exception, " +
1894
+ "#{exception_type}")
1895
+ exception_classes << exception_type
1896
+ end
1897
+ end
1898
+ [exception_classes, exception_modules, exception_objects]
1899
+ end
1900
+
1901
+ def expected_class?(actual_exception, equality)
1902
+ @expected_classes.any? do |expected_class|
1903
+ actual_exception.__send__(equality, expected_class)
1904
+ end
1905
+ end
1906
+
1907
+ def expected_module?(actual_exception)
1908
+ @expected_modules.any? do |expected_module|
1909
+ actual_exception.is_a?(expected_module)
1910
+ end
1911
+ end
1912
+
1913
+ def expected_object?(actual_exception)
1914
+ @expected_objects.any? do |expected_object|
1915
+ expected_object == actual_exception or
1916
+ fallback_exception_object_equal(expected_object, actual_exception)
1917
+ end
1918
+ end
1919
+
1920
+ def fallback_exception_object_equal(expected_object, actual_exception)
1921
+ owner = Util::MethodOwnerFinder.find(expected_object, :==)
1922
+ if owner == Kernel or owner == Exception
1923
+ expected_object.class == actual_exception.class and
1924
+ expected_object.message == actual_exception.message
1925
+ else
1926
+ false
1927
+ end
1928
+ end
1929
+ end
1930
+
1931
+ # :startdoc:
1932
+ end
1933
+ end
1934
+ end