bitclust-core 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,1911 @@
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
+ @parts.collect{|e| e == '?' ? params.shift : e.gsub(/\\\?/m, '?')}.join('')
1759
+ end
1760
+ end
1761
+
1762
+ include Util::BacktraceFilter
1763
+
1764
+ def initialize(head, template_string, parameters)
1765
+ @head = head
1766
+ @template_string = template_string
1767
+ @parameters = parameters
1768
+ end
1769
+
1770
+ def convert(object)
1771
+ self.class.convert(object)
1772
+ end
1773
+
1774
+ def template
1775
+ @template ||= Template.create(@template_string)
1776
+ end
1777
+
1778
+ def add_period(string)
1779
+ (string =~ /\.\Z/ ? string : string + '.')
1780
+ end
1781
+
1782
+ def to_s
1783
+ message_parts = []
1784
+ if (@head)
1785
+ head = @head.to_s
1786
+ unless(head.empty?)
1787
+ message_parts << add_period(head)
1788
+ end
1789
+ end
1790
+ tail = template.result(@parameters.collect{|e| convert(e)})
1791
+ message_parts << tail unless(tail.empty?)
1792
+ message_parts.join("\n")
1793
+ end
1794
+ end
1795
+
1796
+ class AssertExceptionHelper
1797
+ class WrappedException
1798
+ attr_reader :exception
1799
+ def initialize(exception)
1800
+ @exception = exception
1801
+ end
1802
+
1803
+ def inspect
1804
+ if default_inspect?
1805
+ "#{@exception.class.inspect}(<#{@exception.message}>)"
1806
+ else
1807
+ @exception.inspect
1808
+ end
1809
+ end
1810
+
1811
+ def method_missing(name, *args, &block)
1812
+ @exception.__send__(name, *args, &block)
1813
+ end
1814
+
1815
+ private
1816
+ def default_inspect?
1817
+ inspect_method = @exception.method(:inspect)
1818
+ if inspect_method.respond_to?(:owner) and
1819
+ inspect_method.owner == Exception
1820
+ true
1821
+ else
1822
+ default_inspect_method = Exception.instance_method(:inspect)
1823
+ default_inspect_method.bind(@exception).call == @exception.inspect
1824
+ end
1825
+ end
1826
+ end
1827
+
1828
+ def initialize(test_case, expected_exceptions)
1829
+ @test_case = test_case
1830
+ @expected_exceptions = expected_exceptions
1831
+ @expected_classes, @expected_modules, @expected_objects =
1832
+ split_expected_exceptions(expected_exceptions)
1833
+ end
1834
+
1835
+ def expected_exceptions
1836
+ exceptions = @expected_exceptions.collect do |exception|
1837
+ if exception.is_a?(Exception)
1838
+ WrappedException.new(exception)
1839
+ else
1840
+ exception
1841
+ end
1842
+ end
1843
+ if exceptions.size == 1
1844
+ exceptions[0]
1845
+ else
1846
+ exceptions
1847
+ end
1848
+ end
1849
+
1850
+ def expected?(actual_exception, equality=nil)
1851
+ equality ||= :instance_of?
1852
+ expected_class?(actual_exception, equality) or
1853
+ expected_module?(actual_exception) or
1854
+ expected_object?(actual_exception)
1855
+ end
1856
+
1857
+ private
1858
+ def split_expected_exceptions(expected_exceptions)
1859
+ exception_modules = []
1860
+ exception_objects = []
1861
+ exception_classes = []
1862
+ expected_exceptions.each do |exception_type|
1863
+ if exception_type.instance_of?(Module)
1864
+ exception_modules << exception_type
1865
+ elsif exception_type.is_a?(Exception)
1866
+ exception_objects << exception_type
1867
+ else
1868
+ @test_case.__send__(:assert,
1869
+ Exception >= exception_type,
1870
+ "Should expect a class of exception, " +
1871
+ "#{exception_type}")
1872
+ exception_classes << exception_type
1873
+ end
1874
+ end
1875
+ [exception_classes, exception_modules, exception_objects]
1876
+ end
1877
+
1878
+ def expected_class?(actual_exception, equality)
1879
+ @expected_classes.any? do |expected_class|
1880
+ actual_exception.__send__(equality, expected_class)
1881
+ end
1882
+ end
1883
+
1884
+ def expected_module?(actual_exception)
1885
+ @expected_modules.any? do |expected_module|
1886
+ actual_exception.is_a?(expected_module)
1887
+ end
1888
+ end
1889
+
1890
+ def expected_object?(actual_exception)
1891
+ @expected_objects.any? do |expected_object|
1892
+ expected_object == actual_exception or
1893
+ fallback_exception_object_equal(expected_object, actual_exception)
1894
+ end
1895
+ end
1896
+
1897
+ def fallback_exception_object_equal(expected_object, actual_exception)
1898
+ owner = Util::MethodOwnerFinder.find(expected_object, :==)
1899
+ if owner == Kernel or owner == Exception
1900
+ expected_object.class == actual_exception.class and
1901
+ expected_object.message == actual_exception.message
1902
+ else
1903
+ false
1904
+ end
1905
+ end
1906
+ end
1907
+
1908
+ # :startdoc:
1909
+ end
1910
+ end
1911
+ end