Skip to content
This repository
Browse code

Merge branch 'master' of git@github.com:acangiano/ruby-benchmark-suite

  • Loading branch information...
commit c584d9049764f751682c74bd066c15b0399bf53d 2 parents 1a63ca4 + b196df1
Roger Pack authored May 18, 2010

Showing 253 changed files with 24,181 additions and 373 deletions. Show diff stats Hide diff stats

  1. 0  benchmarks/{macro-benchmarks → micro-benchmarks}/bm_cal.rb
  2. 0  benchmarks/{macro-benchmarks → micro-benchmarks}/bm_dirp.rb
  3. 27  benchmarks/micro-benchmarks/bm_ffi_printf.rb
  4. 0  benchmarks/{macro-benchmarks → micro-benchmarks}/bm_list.rb
  5. 0  benchmarks/{macro-benchmarks → micro-benchmarks}/bm_observ.rb
  6. 0  benchmarks/{macro-benchmarks → micro-benchmarks}/bm_pi.rb
  7. 8  benchmarks/rails/TODO_LOW_PRIORITY
  8. 4  benchmarks/rails/{bm_substruct_request_root_30x.rb → bm_substruct_request_root.rb}
  9. 7  benchmarks/rails/bm_substruct_request_root_same_session.rb
  10. 7  benchmarks/rails/bm_substruct_request_root_same_session_30x.rb
  11. 11  benchmarks/rails/bm_substruct_request_root_with_larger_app_size.rb
  12. 17  benchmarks/rails/bm_substruct_test_all.rb
  13. BIN  benchmarks/rails/substruct/bin/sqlite3.dll
  14. 7  benchmarks/rails/substruct/config/boot.rb
  15. 7  benchmarks/rails/substruct/config/database.yml
  16. 4  benchmarks/rails/substruct/config/environment.rb
  17. 604  benchmarks/rails/substruct/db/schema.rb
  18. 3  benchmarks/rails/substruct/lib/mocha-0.9.8/COPYING
  19. 7  benchmarks/rails/substruct/lib/mocha-0.9.8/MIT-LICENSE
  20. 39  benchmarks/rails/substruct/lib/mocha-0.9.8/README
  21. 294  benchmarks/rails/substruct/lib/mocha-0.9.8/RELEASE
  22. 214  benchmarks/rails/substruct/lib/mocha-0.9.8/Rakefile
  23. 43  benchmarks/rails/substruct/lib/mocha-0.9.8/examples/misc.rb
  24. 25  benchmarks/rails/substruct/lib/mocha-0.9.8/examples/mocha.rb
  25. 64  benchmarks/rails/substruct/lib/mocha-0.9.8/examples/stubba.rb
  26. 3  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha.rb
  27. 59  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/any_instance_method.rb
  28. 173  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/api.rb
  29. 21  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/argument_iterator.rb
  30. 17  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/backtrace_filter.rb
  31. 95  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/cardinality.rb
  32. 27  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/central.rb
  33. 19  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/change_state_side_effect.rb
  34. 91  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/class_method.rb
  35. 79  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/configuration.rb
  36. 22  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/deprecation.rb
  37. 17  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/exception_raiser.rb
  38. 476  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/expectation.rb
  39. 15  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/expectation_error.rb
  40. 50  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/expectation_list.rb
  41. 19  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/in_state_ordering_constraint.rb
  42. 67  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/inspect.rb
  43. 16  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/instance_method.rb
  44. 38  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/integration.rb
  45. 21  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/integration/mini_test.rb
  46. 23  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/integration/mini_test/assertion_counter.rb
  47. 50  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/integration/mini_test/version_131_and_above.rb
  48. 40  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/integration/test_unit.rb
  49. 23  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/integration/test_unit/assertion_counter.rb
  50. 49  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/integration/test_unit/gem_version_200.rb
  51. 49  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/integration/test_unit/gem_version_201_and_above.rb
  52. 48  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb
  53. 50  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb
  54. 9  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/is_a.rb
  55. 15  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/logger.rb
  56. 13  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/metaclass.rb
  57. 21  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/method_matcher.rb
  58. 200  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/mock.rb
  59. 181  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/mockery.rb
  60. 16  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/module_method.rb
  61. 20  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/multiple_yields.rb
  62. 53  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/names.rb
  63. 11  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/no_yields.rb
  64. 187  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/object.rb
  65. 27  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers.rb
  66. 42  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/all_of.rb
  67. 47  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/any_of.rb
  68. 40  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/any_parameters.rb
  69. 33  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/anything.rb
  70. 15  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/base.rb
  71. 42  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/equals.rb
  72. 45  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/has_entries.rb
  73. 57  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/has_entry.rb
  74. 43  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/has_key.rb
  75. 43  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/has_value.rb
  76. 41  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/includes.rb
  77. 42  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/instance_of.rb
  78. 42  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/is_a.rb
  79. 42  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/kind_of.rb
  80. 42  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/not.rb
  81. 15  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/object.rb
  82. 55  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/optionally.rb
  83. 44  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/regexp_matches.rb
  84. 43  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/responds_with.rb
  85. 43  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameter_matchers/yaml_equivalent.rb
  86. 37  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/parameters_matcher.rb
  87. 28  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/pretty_parameters.rb
  88. 31  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/return_values.rb
  89. 42  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/sequence.rb
  90. 17  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/single_return_value.rb
  91. 18  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/single_yield.rb
  92. 1  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/standalone.rb
  93. 91  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/state_machine.rb
  94. 16  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/stubbing_error.rb
  95. 18  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/unexpected_invocation.rb
  96. 31  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha/yield_parameters.rb
  97. 2  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/mocha_standalone.rb
  98. 4  benchmarks/rails/substruct/lib/mocha-0.9.8/lib/stubba.rb
  99. 38  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/acceptance_test_helper.rb
  100. 139  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/api_test.rb
  101. 43  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/bug_18914_test.rb
  102. 34  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/bug_21465_test.rb
  103. 25  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/bug_21563_test.rb
  104. 196  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/expected_invocation_count_test.rb
  105. 64  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/failure_messages_test.rb
  106. 153  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/minitest_test.rb
  107. 98  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/mocha_example_test.rb
  108. 84  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/mocha_test_result_test.rb
  109. 100  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/mock_test.rb
  110. 51  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/mock_with_initializer_block_test.rb
  111. 78  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/mocked_methods_dispatch_test.rb
  112. 70  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/optional_parameters_test.rb
  113. 209  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/parameter_matcher_test.rb
  114. 47  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/partial_mocks_test.rb
  115. 52  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/return_value_test.rb
  116. 186  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/sequence_test.rb
  117. 70  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/states_test.rb
  118. 195  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stub_any_instance_method_test.rb
  119. 203  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stub_class_method_test.rb
  120. 56  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stub_everything_test.rb
  121. 203  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stub_instance_method_test.rb
  122. 163  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stub_module_method_test.rb
  123. 52  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stub_test.rb
  124. 102  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stubba_example_test.rb
  125. 15  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stubba_test.rb
  126. 66  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stubba_test_result_test.rb
  127. 64  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stubbing_error_backtrace_test.rb
  128. 65  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stubbing_method_unnecessarily_test.rb
  129. 130  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stubbing_non_existent_any_instance_method_test.rb
  130. 157  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stubbing_non_existent_class_method_test.rb
  131. 147  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stubbing_non_existent_instance_method_test.rb
  132. 130  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stubbing_non_public_any_instance_method_test.rb
  133. 163  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stubbing_non_public_class_method_test.rb
  134. 143  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stubbing_non_public_instance_method_test.rb
  135. 64  benchmarks/rails/substruct/lib/mocha-0.9.8/test/acceptance/stubbing_on_non_mock_object_test.rb
  136. 15  benchmarks/rails/substruct/lib/mocha-0.9.8/test/deprecation_disabler.rb
  137. 36  benchmarks/rails/substruct/lib/mocha-0.9.8/test/execution_point.rb
  138. 24  benchmarks/rails/substruct/lib/mocha-0.9.8/test/method_definer.rb
  139. 13  benchmarks/rails/substruct/lib/mocha-0.9.8/test/simple_counter.rb
  140. 15  benchmarks/rails/substruct/lib/mocha-0.9.8/test/test_helper.rb
  141. 33  benchmarks/rails/substruct/lib/mocha-0.9.8/test/test_runner.rb
  142. 126  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/any_instance_method_test.rb
  143. 16  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/array_inspect_test.rb
  144. 19  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/backtrace_filter_test.rb
  145. 56  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/cardinality_test.rb
  146. 65  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/central_test.rb
  147. 41  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/change_state_side_effect_test.rb
  148. 237  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/class_method_test.rb
  149. 38  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/configuration_test.rb
  150. 21  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/date_time_inspect_test.rb
  151. 42  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/exception_raiser_test.rb
  152. 57  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/expectation_list_test.rb
  153. 480  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/expectation_test.rb
  154. 16  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/hash_inspect_test.rb
  155. 43  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/in_state_ordering_constraint_test.rb
  156. 22  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/metaclass_test.rb
  157. 23  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/method_matcher_test.rb
  158. 302  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/mock_test.rb
  159. 149  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/mockery_test.rb
  160. 18  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/multiple_yields_test.rb
  161. 18  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/no_yields_test.rb
  162. 37  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/object_inspect_test.rb
  163. 82  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/object_test.rb
  164. 26  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/all_of_test.rb
  165. 26  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/any_of_test.rb
  166. 21  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/anything_test.rb
  167. 25  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/equals_test.rb
  168. 51  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/has_entries_test.rb
  169. 82  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/has_entry_test.rb
  170. 55  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/has_key_test.rb
  171. 57  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/has_value_test.rb
  172. 44  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/includes_test.rb
  173. 25  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/instance_of_test.rb
  174. 25  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/is_a_test.rb
  175. 25  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/kind_of_test.rb
  176. 26  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/not_test.rb
  177. 46  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/regexp_matches_test.rb
  178. 25  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/responds_with_test.rb
  179. 27  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/stub_matcher.rb
  180. 25  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameter_matchers/yaml_equivalent_test.rb
  181. 121  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/parameters_matcher_test.rb
  182. 63  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/return_values_test.rb
  183. 104  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/sequence_test.rb
  184. 14  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/single_return_value_test.rb
  185. 18  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/single_yield_test.rb
  186. 98  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/state_machine_test.rb
  187. 11  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/string_inspect_test.rb
  188. 93  benchmarks/rails/substruct/lib/mocha-0.9.8/test/unit/yield_parameters_test.rb
  189. 5  benchmarks/rails/substruct/lib/os-0.7.2/.document
  190. 21  benchmarks/rails/substruct/lib/os-0.7.2/.gitignore
  191. 38  benchmarks/rails/substruct/lib/os-0.7.2/README.rdoc
  192. 47  benchmarks/rails/substruct/lib/os-0.7.2/Rakefile
  193. 1  benchmarks/rails/substruct/lib/os-0.7.2/VERSION
  194. 160  benchmarks/rails/substruct/lib/os-0.7.2/lib/os.rb
  195. 110  benchmarks/rails/substruct/lib/os-0.7.2/spec/spec.os.rb
  196. 88  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/ChangeLog.cvs
  197. 68  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/History.txt
  198. 27  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/LICENSE
  199. 41  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/Manifest.txt
  200. 56  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/README.txt
  201. 5  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/Rakefile
  202. 10  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/ext/sqlite3_api/extconf.rb
  203. 362  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/ext/sqlite3_api/sqlite3_api.i
  204. 5,018  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/ext/sqlite3_api/sqlite3_api_wrap.c
  205. 145  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/faq/faq.rb
  206. 426  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/faq/faq.yml
  207. BIN  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/1.8/sqlite3_api.so
  208. BIN  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/1.9/sqlite3_api.so
  209. 1  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/sqlite3.rb
  210. 49  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/sqlite3/constants.rb
  211. 721  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/sqlite3/database.rb
  212. 152  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/sqlite3/driver/dl/api.rb
  213. 307  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/sqlite3/driver/dl/driver.rb
  214. 219  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/sqlite3/driver/native/driver.rb
  215. 68  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/sqlite3/errors.rb
  216. 271  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/sqlite3/pragmas.rb
  217. 180  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/sqlite3/resultset.rb
  218. 231  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/sqlite3/statement.rb
  219. 109  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/sqlite3/translator.rb
  220. 57  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/sqlite3/value.rb
  221. 16  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib/sqlite3/version.rb
  222. 1,333  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/setup.rb
  223. 9  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/tasks/benchmark.rake
  224. 9  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/tasks/faq.rake
  225. 32  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/tasks/gem.rake
  226. 35  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/tasks/native.rake
  227. 104  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/tasks/vendor_sqlite3.rake
  228. 140  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/test/bm.rb
  229. 292  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/test/driver/dl/tc_driver.rb
  230. 67  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/test/helper.rb
  231. 126  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/test/native-vs-dl.rb
  232. 217  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/test/test_database.rb
  233. 17  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/test/test_errors.rb
  234. 542  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/test/test_integration.rb
  235. 30  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/test/test_integration_open_close.rb
  236. 111  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/test/test_integration_pending.rb
  237. 159  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/test/test_integration_resultset.rb
  238. 195  benchmarks/rails/substruct/lib/sqlite3-ruby-1.2.5-x86-mingw32/test/test_integration_statement.rb
  239. 2  benchmarks/rails/substruct/request_root_15x
  240. 2  benchmarks/rails/substruct/test/test_helper.rb
  241. 2  benchmarks/rails/substruct/vendor/plugins/request_profiler/lib/action_controller/request_profiler.rb
  242. 2  benchmarks/rails/substruct/vendor/plugins/substruct/app/models/order.rb
  243. 1  benchmarks/rails/substruct/vendor/plugins/substruct/app/models/order_account.rb
  244. 56  benchmarks/rails/substruct/vendor/plugins/substruct/db/schema.rb
  245. 7  benchmarks/rails/substruct/vendor/plugins/substruct/lib/substruct.rb
  246. 2  benchmarks/rails/substruct/vendor/plugins/substruct/tasks/substruct.rake
  247. 9  benchmarks/rails/substruct/vendor/plugins/substruct/test/test_helper.rb
  248. 8  benchmarks/rails/substruct_start_and_bootstrap_if_necessary.rb
  249. 25  rakelib/bench.rake
  250. 2  utils/bench.rb
  251. 7  utils/fake_bench.rb
  252. 8  utils/monitor.rb
  253. 8  utils/timeout2.rb
0  benchmarks/macro-benchmarks/bm_cal.rb → benchmarks/micro-benchmarks/bm_cal.rb
File renamed without changes
0  benchmarks/macro-benchmarks/bm_dirp.rb → benchmarks/micro-benchmarks/bm_dirp.rb
File renamed without changes
27  benchmarks/micro-benchmarks/bm_ffi_printf.rb
... ...
@@ -0,0 +1,27 @@
  1
+begin
  2
+  require 'ffi'
  3
+rescue LoadError
  4
+  require 'rubygems' # this for MRI 1.8
  5
+  # of course, it's then not quite as fair a test, but reasonably close
  6
+  require 'ffi'
  7
+end
  8
+
  9
+module Hello
  10
+  extend FFI::Library
  11
+  # require right lib
  12
+  require 'rbconfig'
  13
+  if RbConfig::CONFIG['host_os'] =~ /mswin|mingw/
  14
+    ffi_lib 'msvcrt'
  15
+  else
  16
+    ffi_lib 'libc.so.6' # linux
  17
+  end
  18
+  attach_function 'printf', [:string, :varargs], :int
  19
+
  20
+end
  21
+
  22
+
  23
+Bench.run [100000] do |n|
  24
+  n.times do
  25
+   Hello.printf("%s%s%s", :string, "", :string, "", :string, "")
  26
+  end
  27
+end
0  benchmarks/macro-benchmarks/bm_list.rb → benchmarks/micro-benchmarks/bm_list.rb
File renamed without changes
0  benchmarks/macro-benchmarks/bm_observ.rb → benchmarks/micro-benchmarks/bm_observ.rb
File renamed without changes
0  benchmarks/macro-benchmarks/bm_pi.rb → benchmarks/micro-benchmarks/bm_pi.rb
File renamed without changes
8  benchmarks/rails/TODO_LOW_PRIORITY
... ...
@@ -1,9 +1,3 @@
1 1
 test with jruby
2 2
 
3  
-add test using ab and multiple concurrency :)
4  
-
5  
-could also do more views than just the root [like an index with lots of products {"at least x"}, and many navigation tags]
6  
-
7  
-some requests with 'extra' RAM using garbage before the rails test
8  
-
9  
-some simple threaded socket tests
  3
+add test using ab and multiple concurrency :)
4  benchmarks/rails/bm_substruct_request_root_30x.rb → benchmarks/rails/bm_substruct_request_root.rb
@@ -2,6 +2,6 @@
2 2
 
3 3
 ActionController::RequestProfiler.run(%w[-b -n1 request_root]) # warmup
4 4
 
5  
-Bench.run [100] do
6  
-    ActionController::RequestProfiler.run(%w[-b -n30 request_root])
  5
+Bench.run [90] do
  6
+    ActionController::RequestProfiler.run(%w[-b -n90 request_root])
7 7
 end
7  benchmarks/rails/bm_substruct_request_root_same_session.rb
... ...
@@ -0,0 +1,7 @@
  1
+require 'substruct_start_and_bootstrap_if_necessary.rb'
  2
+
  3
+ActionController::RequestProfiler.run(%w[-b -n1 request_root]) # warmup
  4
+
  5
+Bench.run [90] do
  6
+    ActionController::RequestProfiler.run(%w[-b -n5 request_root_15x]) # runs it 6x15 times, one is for the warmup...
  7
+end
7  benchmarks/rails/bm_substruct_request_root_same_session_30x.rb
... ...
@@ -1,7 +0,0 @@
1  
-require 'substruct_start_and_bootstrap_if_necessary.rb'
2  
-
3  
-ActionController::RequestProfiler.run(%w[-b -n1 request_root]) # warmup
4  
-
5  
-Bench.run [100] do
6  
-    ActionController::RequestProfiler.run(%w[-b -n1 request_root_15x]) # runs it 2x15 times, one for warmup
7  
-end
11  benchmarks/rails/bm_substruct_request_root_with_larger_app_size.rb
... ...
@@ -0,0 +1,11 @@
  1
+require 'substruct_start_and_bootstrap_if_necessary.rb'
  2
+
  3
+# make bigger the app size
  4
+GARBAGE = []
  5
+30_000_000.times { GARBAGE << 3}
  6
+
  7
+ActionController::RequestProfiler.run(%w[-b -n1 request_root]) # warmup
  8
+
  9
+Bench.run [200] do |n|
  10
+  ActionController::RequestProfiler.run(%w[-b -n200 request_root])
  11
+end
17  benchmarks/rails/bm_substruct_test_all.rb
... ...
@@ -0,0 +1,17 @@
  1
+ENV['PLUGIN'] = 'substruct' # must be set early
  2
+ENV['RAILS_ENV'] = 'test' # use this database
  3
+
  4
+DROP_DB_EACH_TIME = true
  5
+require 'substruct_start_and_bootstrap_if_necessary.rb'
  6
+
  7
+start = Time.now
  8
+begin
  9
+   Rake::Task['test:plugins:all'].invoke
  10
+rescue RuntimeError => e
  11
+   raise unless e.to_s =~ /Command failed with status/ # this is ok
  12
+end
  13
+total_time = Time.now - start
  14
+
  15
+Bench.run [0.1] do
  16
+ sleep total_time/10 # ughly, but cross platform
  17
+end
BIN  benchmarks/rails/substruct/bin/sqlite3.dll
Binary file not shown
7  benchmarks/rails/substruct/config/boot.rb
@@ -3,6 +3,13 @@
3 3
 
4 4
 RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
5 5
 
  6
+require RAILS_ROOT + '/lib/os-0.7.2/lib/os'
  7
+
  8
+if OS.windows? && !OS.iron_ruby?
  9
+  ENV['PATH'] += ";bin"
  10
+  $: << RAILS_ROOT + '/lib/sqlite3-ruby-1.2.5-x86-mingw32/lib' # sqlite3-ruby for MRI doze
  11
+end
  12
+
6 13
 module Rails
7 14
   class << self
8 15
     def boot!
7  benchmarks/rails/substruct/config/database.yml
@@ -15,9 +15,10 @@
15 15
 # And be sure to use new-style password hashing:
16 16
 #   http://dev.mysql.com/doc/refman/5.0/en/old-client.html
17 17
 development:
18  
-  adapter: mysql
  18
+  adapter: sqlite3
19 19
   encoding: utf8
20 20
   database: substruct_rbs_development
  21
+  
21 22
   username: root
22 23
   password:
23 24
 
@@ -25,14 +26,14 @@ development:
25 26
 # re-generated from your development database when you run 'rake'.
26 27
 # Do not set this db to the same as development or production.
27 28
 test:
28  
-  adapter: mysql
  29
+  adapter: sqlite3
29 30
   encoding: utf8
30 31
   database: substruct_rbs_test
31 32
   username: root
32 33
   password:
33 34
 
34 35
 production:
35  
-  adapter: mysql
  36
+  adapter: sqlite3
36 37
   encoding: utf8
37 38
   database: substruct_rbs_production
38 39
   username: root
4  benchmarks/rails/substruct/config/environment.rb
@@ -59,8 +59,8 @@
59 59
 
60 60
 # Include your application configuration below
61 61
 require 'rubygems'
62  
-gem 'RedCloth'
63  
-gem 'fastercsv'
  62
+#gem 'RedCloth'
  63
+#gem 'fastercsv'
64 64
 
65 65
 begin
66 66
   Preference.init_mail_settings()
604  benchmarks/rails/substruct/db/schema.rb
... ...
@@ -1,301 +1,303 @@
1  
-# This file is auto-generated from the current state of the database. Instead of editing this file, 
2  
-# please use the migrations feature of Active Record to incrementally modify your database, and
3  
-# then regenerate this schema definition.
4  
-#
5  
-# Note that this schema.rb definition is the authoritative source for your database schema. If you need
6  
-# to create the application database on another system, you should be using db:schema:load, not running
7  
-# all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
8  
-# you'll amass, the slower it'll run and the greater likelihood for issues).
9  
-#
10  
-# It's strongly recommended to check this file into your version control system.
11  
-
12  
-ActiveRecord::Schema.define(:version => 0) do
13  
-
14  
-  create_table "content_node_types", :force => true do |t|
15  
-    t.string "name", :limit => 50, :default => "", :null => false
16  
-  end
17  
-
18  
-  create_table "content_nodes", :force => true do |t|
19  
-    t.string   "name",       :limit => 200, :default => "", :null => false
20  
-    t.string   "title",      :limit => 100, :default => "", :null => false
21  
-    t.text     "content"
22  
-    t.datetime "display_on",                                :null => false
23  
-    t.datetime "created_on",                                :null => false
24  
-    t.string   "type",       :limit => 50,  :default => "", :null => false
25  
-  end
26  
-
27  
-  add_index "content_nodes", ["name"], :name => "name"
28  
-  add_index "content_nodes", ["type", "id"], :name => "type"
29  
-
30  
-  create_table "content_nodes_sections", :id => false, :force => true do |t|
31  
-    t.integer "content_node_id", :limit => 11, :default => 0, :null => false
32  
-    t.integer "section_id",      :limit => 11, :default => 0, :null => false
33  
-  end
34  
-
35  
-  add_index "content_nodes_sections", ["content_node_id", "section_id"], :name => "default"
36  
-
37  
-  create_table "countries", :force => true do |t|
38  
-    t.string  "name",        :limit => 100, :default => "",    :null => false
39  
-    t.string  "code",        :limit => 50
40  
-    t.integer "rank",        :limit => 11
41  
-    t.boolean "is_obsolete",                :default => false, :null => false
42  
-  end
43  
-
44  
-  create_table "items", :force => true do |t|
45  
-    t.string   "code",               :limit => 20,  :default => "",    :null => false
46  
-    t.string   "name",               :limit => 100, :default => "",    :null => false
47  
-    t.text     "description"
48  
-    t.float    "price",                             :default => 0.0,   :null => false
49  
-    t.datetime "date_available",                                       :null => false
50  
-    t.integer  "quantity",           :limit => 11,  :default => 0,     :null => false
51  
-    t.float    "size_width",                        :default => 0.0,   :null => false
52  
-    t.float    "size_height",                       :default => 0.0,   :null => false
53  
-    t.float    "size_depth",                        :default => 0.0,   :null => false
54  
-    t.float    "weight",                            :default => 0.0,   :null => false
55  
-    t.string   "type",               :limit => 40
56  
-    t.integer  "product_id",         :limit => 11,  :default => 0,     :null => false
57  
-    t.boolean  "is_discontinued",                   :default => false, :null => false
58  
-    t.integer  "variation_quantity", :limit => 11,  :default => 0,     :null => false
59  
-  end
60  
-
61  
-  add_index "items", ["quantity", "is_discontinued", "variation_quantity"], :name => "published"
62  
-  add_index "items", ["product_id", "type"], :name => "variation"
63  
-  add_index "items", ["date_available", "is_discontinued", "quantity", "variation_quantity", "type"], :name => "tag_view"
64  
-  add_index "items", ["name", "code", "is_discontinued", "date_available", "quantity", "variation_quantity", "type"], :name => "search"
65  
-
66  
-  create_table "order_account_types", :force => true do |t|
67  
-    t.string "name", :limit => 30, :default => "", :null => false
68  
-  end
69  
-
70  
-  create_table "order_accounts", :force => true do |t|
71  
-    t.integer "order_user_id",         :limit => 11, :default => 0, :null => false
72  
-    t.integer "order_account_type_id", :limit => 11, :default => 1, :null => false
73  
-    t.string  "cc_number"
74  
-    t.string  "account_number"
75  
-    t.integer "expiration_month",      :limit => 2
76  
-    t.integer "expiration_year",       :limit => 4
77  
-    t.integer "credit_ccv",            :limit => 5
78  
-    t.string  "routing_number",        :limit => 20
79  
-    t.string  "bank_name",             :limit => 50
80  
-  end
81  
-
82  
-  add_index "order_accounts", ["order_user_id", "order_account_type_id"], :name => "ids"
83  
-
84  
-  create_table "order_addresses", :force => true do |t|
85  
-    t.integer "order_user_id", :limit => 11, :default => 0,  :null => false
86  
-    t.string  "first_name",    :limit => 50, :default => "", :null => false
87  
-    t.string  "last_name",     :limit => 50, :default => "", :null => false
88  
-    t.string  "telephone",     :limit => 20
89  
-    t.string  "address",                     :default => "", :null => false
90  
-    t.string  "city",          :limit => 50
91  
-    t.string  "state",         :limit => 30
92  
-    t.string  "zip",           :limit => 10
93  
-    t.integer "country_id",    :limit => 11, :default => 0,  :null => false
94  
-  end
95  
-
96  
-  add_index "order_addresses", ["first_name", "last_name"], :name => "name"
97  
-  add_index "order_addresses", ["country_id", "order_user_id"], :name => "countries"
98  
-
99  
-  create_table "order_line_items", :force => true do |t|
100  
-    t.integer "item_id",    :limit => 11
101  
-    t.integer "order_id",   :limit => 11, :default => 0,   :null => false
102  
-    t.integer "quantity",   :limit => 11, :default => 0,   :null => false
103  
-    t.float   "unit_price",               :default => 0.0, :null => false
104  
-    t.string  "name",                     :default => ""
105  
-  end
106  
-
107  
-  create_table "order_shipping_types", :force => true do |t|
108  
-    t.string  "name",        :limit => 100, :default => "",   :null => false
109  
-    t.string  "code",        :limit => 50
110  
-    t.boolean "is_domestic",                :default => true, :null => false
111  
-    t.float   "price",                      :default => 0.0,  :null => false
112  
-  end
113  
-
114  
-  create_table "order_shipping_weights", :force => true do |t|
115  
-    t.integer "order_shipping_type_id", :limit => 11, :default => 0,   :null => false
116  
-    t.float   "min_weight",                           :default => 0.0, :null => false
117  
-    t.float   "max_weight",                           :default => 0.0, :null => false
118  
-    t.float   "price",                                :default => 0.0, :null => false
119  
-  end
120  
-
121  
-  create_table "order_status_codes", :force => true do |t|
122  
-    t.string "name", :limit => 30, :default => "", :null => false
123  
-  end
124  
-
125  
-  add_index "order_status_codes", ["name"], :name => "name"
126  
-
127  
-  create_table "order_users", :force => true do |t|
128  
-    t.string   "username",      :limit => 50
129  
-    t.string   "email_address", :limit => 50, :default => "", :null => false
130  
-    t.string   "password",      :limit => 20
131  
-    t.datetime "created_on"
132  
-    t.string   "first_name",    :limit => 50, :default => "", :null => false
133  
-    t.string   "last_name",     :limit => 50, :default => "", :null => false
134  
-  end
135  
-
136  
-  add_index "order_users", ["email_address"], :name => "email"
137  
-
138  
-  create_table "orders", :force => true do |t|
139  
-    t.integer  "order_number",           :limit => 11, :default => 0,   :null => false
140  
-    t.datetime "created_on"
141  
-    t.datetime "shipped_on"
142  
-    t.integer  "order_user_id",          :limit => 11
143  
-    t.integer  "order_status_code_id",   :limit => 11, :default => 1,   :null => false
144  
-    t.text     "notes"
145  
-    t.string   "referer"
146  
-    t.integer  "order_shipping_type_id", :limit => 11, :default => 1,   :null => false
147  
-    t.float    "product_cost",                         :default => 0.0
148  
-    t.float    "shipping_cost",                        :default => 0.0
149  
-    t.float    "tax",                                  :default => 0.0, :null => false
150  
-    t.string   "auth_transaction_id"
151  
-    t.integer  "promotion_id",           :limit => 11, :default => 0,   :null => false
152  
-    t.integer  "shipping_address_id",    :limit => 11, :default => 0,   :null => false
153  
-    t.integer  "billing_address_id",     :limit => 11, :default => 0,   :null => false
154  
-    t.integer  "order_account_id",       :limit => 11, :default => 0,   :null => false
155  
-  end
156  
-
157  
-  add_index "orders", ["order_number"], :name => "order_number"
158  
-  add_index "orders", ["order_user_id"], :name => "order_user_id"
159  
-  add_index "orders", ["order_status_code_id"], :name => "status"
160  
-
161  
-  create_table "plugin_schema_migrations", :id => false, :force => true do |t|
162  
-    t.string "plugin_name"
163  
-    t.string "version"
164  
-  end
165  
-
166  
-  create_table "preferences", :force => true do |t|
167  
-    t.string "name",  :default => "", :null => false
168  
-    t.string "value", :default => ""
169  
-  end
170  
-
171  
-  add_index "preferences", ["name"], :name => "namevalue"
172  
-
173  
-  create_table "product_downloads", :force => true do |t|
174  
-    t.integer "download_id", :limit => 11, :default => 0, :null => false
175  
-    t.integer "product_id",  :limit => 11, :default => 0, :null => false
176  
-    t.integer "rank",        :limit => 11
177  
-  end
178  
-
179  
-  add_index "product_downloads", ["product_id"], :name => "pid"
180  
-  add_index "product_downloads", ["download_id"], :name => "did"
181  
-
182  
-  create_table "product_images", :force => true do |t|
183  
-    t.integer "image_id",   :limit => 11, :default => 0, :null => false
184  
-    t.integer "product_id", :limit => 11, :default => 0, :null => false
185  
-    t.integer "rank",       :limit => 11
186  
-  end
187  
-
188  
-  add_index "product_images", ["product_id", "image_id"], :name => "main"
189  
-
190  
-  create_table "products_tags", :id => false, :force => true do |t|
191  
-    t.integer "product_id", :limit => 11, :default => 0, :null => false
192  
-    t.integer "tag_id",     :limit => 11, :default => 0, :null => false
193  
-  end
194  
-
195  
-  add_index "products_tags", ["product_id", "tag_id"], :name => "product_tags"
196  
-
197  
-  create_table "promotions", :force => true do |t|
198  
-    t.string   "code",               :limit => 15, :default => "",  :null => false
199  
-    t.integer  "discount_type",      :limit => 11, :default => 0,   :null => false
200  
-    t.float    "discount_amount",                  :default => 0.0, :null => false
201  
-    t.integer  "item_id",            :limit => 11
202  
-    t.datetime "start",                                             :null => false
203  
-    t.datetime "end",                                               :null => false
204  
-    t.float    "minimum_cart_value"
205  
-    t.string   "description",                      :default => "",  :null => false
206  
-  end
207  
-
208  
-  create_table "questions", :force => true do |t|
209  
-    t.string   "short_question"
210  
-    t.text     "long_question"
211  
-    t.text     "answer"
212  
-    t.integer  "rank",           :limit => 11
213  
-    t.boolean  "featured",                     :default => false, :null => false
214  
-    t.integer  "times_viewed",   :limit => 11, :default => 0,     :null => false
215  
-    t.datetime "created_on",                                      :null => false
216  
-    t.datetime "answered_on"
217  
-    t.string   "email_address",  :limit => 50
218  
-  end
219  
-
220  
-  create_table "related_products", :id => false, :force => true do |t|
221  
-    t.integer "product_id", :limit => 11, :default => 0, :null => false
222  
-    t.integer "related_id", :limit => 11, :default => 0, :null => false
223  
-  end
224  
-
225  
-  add_index "related_products", ["product_id", "related_id"], :name => "related_products"
226  
-
227  
-  create_table "rights", :force => true do |t|
228  
-    t.string "name"
229  
-    t.string "controller"
230  
-    t.string "actions"
231  
-  end
232  
-
233  
-  create_table "rights_roles", :id => false, :force => true do |t|
234  
-    t.integer "right_id", :limit => 11
235  
-    t.integer "role_id",  :limit => 11
236  
-  end
237  
-
238  
-  create_table "roles", :force => true do |t|
239  
-    t.string "name"
240  
-    t.text   "description"
241  
-  end
242  
-
243  
-  create_table "roles_users", :id => false, :force => true do |t|
244  
-    t.integer "role_id", :limit => 11
245  
-    t.integer "user_id", :limit => 11
246  
-  end
247  
-
248  
-  create_table "sections", :force => true do |t|
249  
-    t.string  "name",      :limit => 100, :default => "", :null => false
250  
-    t.integer "rank",      :limit => 11
251  
-    t.integer "parent_id", :limit => 11,  :default => 0,  :null => false
252  
-  end
253  
-
254  
-  create_table "sessions", :force => true do |t|
255  
-    t.string   "sessid",     :default => "", :null => false
256  
-    t.text     "data"
257  
-    t.datetime "updated_at"
258  
-    t.datetime "created_at"
259  
-  end
260  
-
261  
-  add_index "sessions", ["sessid"], :name => "session_index"
262  
-
263  
-  create_table "tags", :force => true do |t|
264  
-    t.string  "name",      :limit => 100, :default => "", :null => false
265  
-    t.integer "rank",      :limit => 11
266  
-    t.integer "parent_id", :limit => 11,  :default => 0,  :null => false
267  
-  end
268  
-
269  
-  add_index "tags", ["name"], :name => "name"
270  
-
271  
-  create_table "user_uploads", :force => true do |t|
272  
-    t.string   "filename"
273  
-    t.integer  "width",        :limit => 11, :default => 0, :null => false
274  
-    t.integer  "height",       :limit => 11, :default => 0, :null => false
275  
-    t.string   "type"
276  
-    t.datetime "created_on"
277  
-    t.integer  "parent_id",    :limit => 11
278  
-    t.string   "content_type"
279  
-    t.string   "thumbnail"
280  
-    t.integer  "size",         :limit => 11
281  
-  end
282  
-
283  
-  add_index "user_uploads", ["created_on", "type"], :name => "creation"
284  
-
285  
-  create_table "users", :force => true do |t|
286  
-    t.string "login",    :limit => 50, :default => "", :null => false
287  
-    t.string "password", :limit => 40
288  
-  end
289  
-
290  
-  add_index "users", ["login", "password"], :name => "login"
291  
-
292  
-  create_table "wishlist_items", :force => true do |t|
293  
-    t.integer  "order_user_id", :limit => 11, :default => 0, :null => false
294  
-    t.integer  "item_id",       :limit => 11, :default => 0, :null => false
295  
-    t.datetime "created_on"
296  
-  end
297  
-
298  
-  add_index "wishlist_items", ["order_user_id"], :name => "user"
299  
-  add_index "wishlist_items", ["item_id"], :name => "item"
300  
-
301  
-end
  1
+# This file is auto-generated from the current state of the database. Instead of editing this file, 
  2
+# please use the migrations feature of Active Record to incrementally modify your database, and
  3
+# then regenerate this schema definition.
  4
+#
  5
+# Note that this schema.rb definition is the authoritative source for your database schema. If you need
  6
+# to create the application database on another system, you should be using db:schema:load, not running
  7
+# all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
  8
+# you'll amass, the slower it'll run and the greater likelihood for issues).
  9
+#
  10
+# It's strongly recommended to check this file into your version control system.
  11
+
  12
+ActiveRecord::Schema.define(:version => 0) do
  13
+
  14
+  create_table "content_node_types", :force => true do |t|
  15
+    t.string "name", :limit => 50, :default => "", :null => false
  16
+  end
  17
+
  18
+  create_table "content_nodes", :force => true do |t|
  19
+    t.string   "name",       :limit => 200, :default => "", :null => false
  20
+    t.string   "title",      :limit => 100, :default => "", :null => false
  21
+    t.text     "content"
  22
+    t.datetime "display_on",                                :null => false
  23
+    t.datetime "created_on",                                :null => false
  24
+    t.string   "type",       :limit => 50,  :default => "", :null => false
  25
+  end
  26
+
  27
+  add_index "content_nodes", ["name"], :name => "name1"
  28
+  add_index "content_nodes", ["type", "id"], :name => "type2"
  29
+
  30
+  create_table "content_nodes_sections", :id => false, :force => true do |t|
  31
+    t.integer "content_node_id", :limit => 11, :default => 0, :null => false
  32
+    t.integer "section_id",      :limit => 11, :default => 0, :null => false
  33
+  end
  34
+
  35
+  add_index "content_nodes_sections", ["content_node_id", "section_id"], :name => "default3"
  36
+
  37
+  create_table "countries", :force => true do |t|
  38
+    t.string  "name",        :limit => 100, :default => "",    :null => false
  39
+    t.string  "code",        :limit => 50
  40
+    t.integer "rank",        :limit => 11
  41
+    t.boolean "is_obsolete",                :default => false, :null => false
  42
+  end
  43
+
  44
+  create_table "items", :force => true do |t|
  45
+    t.string   "code",               :limit => 20,  :default => "",    :null => false
  46
+    t.string   "name",               :limit => 100, :default => "",    :null => false
  47
+    t.text     "description"
  48
+    t.float    "price",                             :default => 0.0,   :null => false
  49
+    t.datetime "date_available",                                       :null => false
  50
+    t.integer  "quantity",           :limit => 11,  :default => 0,     :null => false
  51
+    t.float    "size_width",                        :default => 0.0,   :null => false
  52
+    t.float    "size_height",                       :default => 0.0,   :null => false
  53
+    t.float    "size_depth",                        :default => 0.0,   :null => false
  54
+    t.float    "weight",                            :default => 0.0,   :null => false
  55
+    t.string   "type",               :limit => 40
  56
+    t.integer  "product_id",         :limit => 11,  :default => 0,     :null => false
  57
+    t.boolean  "is_discontinued",                   :default => false, :null => false
  58
+    t.integer  "variation_quantity", :limit => 11,  :default => 0,     :null => false
  59
+  end
  60
+
  61
+  add_index "items", ["date_available", "is_discontinued", "quantity", "variation_quantity", "type"], :name => "tag_view6"
  62
+  add_index "items", ["name", "code", "is_discontinued", "date_available", "quantity", "variation_quantity", "type"], :name => "search7"
  63
+  add_index "items", ["product_id", "type"], :name => "variation5"
  64
+  add_index "items", ["quantity", "is_discontinued", "variation_quantity"], :name => "published4"
  65
+
  66
+  create_table "order_account_types", :force => true do |t|
  67
+    t.string "name", :limit => 30, :default => "", :null => false
  68
+  end
  69
+
  70
+  create_table "order_accounts", :force => true do |t|
  71
+    t.integer "order_user_id",         :limit => 11, :default => 0, :null => false
  72
+    t.string  "order_user"
  73
+    t.integer "order_account_type_id", :limit => 11, :default => 1, :null => false
  74
+    t.string  "cc_number"
  75
+    t.string  "account_number"
  76
+    t.integer "expiration_month",      :limit => 2
  77
+    t.integer "expiration_year",       :limit => 4
  78
+    t.integer "credit_ccv",            :limit => 5
  79
+    t.string  "routing_number",        :limit => 20
  80
+    t.string  "bank_name",             :limit => 50
  81
+  end
  82
+
  83
+  add_index "order_accounts", ["order_user_id", "order_account_type_id"], :name => "ids8"
  84
+
  85
+  create_table "order_addresses", :force => true do |t|
  86
+    t.integer "order_user_id", :limit => 11, :default => 0,  :null => false
  87
+    t.string  "first_name",    :limit => 50, :default => "", :null => false
  88
+    t.string  "last_name",     :limit => 50, :default => "", :null => false
  89
+    t.string  "telephone",     :limit => 20
  90
+    t.string  "address",                     :default => "", :null => false
  91
+    t.string  "city",          :limit => 50
  92
+    t.string  "state",         :limit => 30
  93
+    t.string  "zip",           :limit => 10
  94
+    t.integer "country_id",    :limit => 11, :default => 0,  :null => false
  95
+  end
  96
+
  97
+  add_index "order_addresses", ["country_id", "order_user_id"], :name => "countries10"
  98
+  add_index "order_addresses", ["first_name", "last_name"], :name => "name9"
  99
+
  100
+  create_table "order_line_items", :force => true do |t|
  101
+    t.integer "item_id",    :limit => 11
  102
+    t.integer "order_id",   :limit => 11, :default => 0,   :null => false
  103
+    t.integer "quantity",   :limit => 11, :default => 0,   :null => false
  104
+    t.float   "unit_price",               :default => 0.0, :null => false
  105
+    t.string  "name",                     :default => ""
  106
+  end
  107
+
  108
+  create_table "order_shipping_types", :force => true do |t|
  109
+    t.string  "name",        :limit => 100, :default => "",   :null => false
  110
+    t.string  "code",        :limit => 50
  111
+    t.boolean "is_domestic",                :default => true, :null => false
  112
+    t.float   "price",                      :default => 0.0,  :null => false
  113
+  end
  114
+
  115
+  create_table "order_shipping_weights", :force => true do |t|
  116
+    t.integer "order_shipping_type_id", :limit => 11, :default => 0,   :null => false
  117
+    t.float   "min_weight",                           :default => 0.0, :null => false
  118
+    t.float   "max_weight",                           :default => 0.0, :null => false
  119
+    t.float   "price",                                :default => 0.0, :null => false
  120
+  end
  121
+
  122
+  create_table "order_status_codes", :force => true do |t|
  123
+    t.string "name", :limit => 30, :default => "", :null => false
  124
+  end
  125
+
  126
+  add_index "order_status_codes", ["name"], :name => "name11"
  127
+
  128
+  create_table "order_users", :force => true do |t|
  129
+    t.string   "username",      :limit => 50
  130
+    t.string   "email_address", :limit => 50, :default => "", :null => false
  131
+    t.string   "password",      :limit => 20
  132
+    t.datetime "created_on"
  133
+    t.string   "first_name",    :limit => 50, :default => "", :null => false
  134
+    t.string   "last_name",     :limit => 50, :default => "", :null => false
  135
+  end
  136
+
  137
+  add_index "order_users", ["email_address"], :name => "email12"
  138
+
  139
+  create_table "orders", :force => true do |t|
  140
+    t.integer  "order_number",           :limit => 11, :default => 0,   :null => false
  141
+    t.datetime "created_on"
  142
+    t.datetime "shipped_on"
  143
+    t.integer  "order_user_id",          :limit => 11
  144
+    t.integer  "order_status_code_id",   :limit => 11, :default => 1,   :null => false
  145
+    t.text     "notes"
  146
+    t.string   "referer"
  147
+    t.integer  "order_shipping_type_id", :limit => 11, :default => 1,   :null => false
  148
+    t.float    "product_cost",                         :default => 0.0
  149
+    t.float    "shipping_cost",                        :default => 0.0
  150
+    t.float    "tax",                                  :default => 0.0, :null => false
  151
+    t.string   "auth_transaction_id"
  152
+    t.integer  "promotion_id",           :limit => 11, :default => 0,   :null => false
  153
+    t.integer  "shipping_address_id",    :limit => 11, :default => 0,   :null => false
  154
+    t.integer  "billing_address_id",     :limit => 11, :default => 0,   :null => false
  155
+    t.integer  "order_account_id",       :limit => 11, :default => 0,   :null => false
  156
+  end
  157
+
  158
+  add_index "orders", ["order_number"], :name => "order_number13"
  159
+  add_index "orders", ["order_status_code_id"], :name => "status15"
  160
+  add_index "orders", ["order_user_id"], :name => "order_user_id14"
  161
+
  162
+  create_table "plugin_schema_migrations", :id => false, :force => true do |t|
  163
+    t.string "plugin_name"
  164
+    t.string "version"
  165
+  end
  166
+
  167
+  create_table "preferences", :force => true do |t|
  168
+    t.string "name",  :default => "", :null => false
  169
+    t.string "value", :default => ""
  170
+  end
  171
+
  172
+  add_index "preferences", ["name"], :name => "namevalue16"
  173
+
  174
+  create_table "product_downloads", :force => true do |t|
  175
+    t.integer "download_id", :limit => 11, :default => 0, :null => false
  176
+    t.integer "product_id",  :limit => 11, :default => 0, :null => false
  177
+    t.integer "rank",        :limit => 11
  178
+  end
  179
+
  180
+  add_index "product_downloads", ["download_id"], :name => "did18"
  181
+  add_index "product_downloads", ["product_id"], :name => "pid17"
  182
+
  183
+  create_table "product_images", :force => true do |t|
  184
+    t.integer "image_id",   :limit => 11, :default => 0, :null => false
  185
+    t.integer "product_id", :limit => 11, :default => 0, :null => false
  186
+    t.integer "rank",       :limit => 11
  187
+  end
  188
+
  189
+  add_index "product_images", ["product_id", "image_id"], :name => "main19"
  190
+
  191
+  create_table "products_tags", :id => false, :force => true do |t|
  192
+    t.integer "product_id", :limit => 11, :default => 0, :null => false
  193
+    t.integer "tag_id",     :limit => 11, :default => 0, :null => false
  194
+  end
  195
+
  196
+  add_index "products_tags", ["product_id", "tag_id"], :name => "product_tags20"
  197
+
  198
+  create_table "promotions", :force => true do |t|
  199
+    t.string   "code",               :limit => 15, :default => "",  :null => false
  200
+    t.integer  "discount_type",      :limit => 11, :default => 0,   :null => false
  201
+    t.float    "discount_amount",                  :default => 0.0, :null => false
  202
+    t.integer  "item_id",            :limit => 11
  203
+    t.datetime "start",                                             :null => false
  204
+    t.datetime "end",                                               :null => false
  205
+    t.float    "minimum_cart_value"
  206
+    t.string   "description",                      :default => "",  :null => false
  207
+  end
  208
+
  209
+  create_table "questions", :force => true do |t|
  210
+    t.string   "short_question"
  211
+    t.text     "long_question"
  212
+    t.text     "answer"
  213
+    t.integer  "rank",           :limit => 11
  214
+    t.boolean  "featured",                     :default => false, :null => false
  215
+    t.integer  "times_viewed",   :limit => 11, :default => 0,     :null => false
  216
+    t.datetime "created_on",                                      :null => false
  217
+    t.datetime "answered_on"
  218
+    t.string   "email_address",  :limit => 50
  219
+  end
  220
+
  221
+  create_table "related_products", :id => false, :force => true do |t|
  222
+    t.integer "product_id", :limit => 11, :default => 0, :null => false
  223
+    t.integer "related_id", :limit => 11, :default => 0, :null => false
  224
+  end
  225
+
  226
+  add_index "related_products", ["product_id", "related_id"], :name => "related_products21"
  227
+
  228
+  create_table "rights", :force => true do |t|
  229
+    t.string "name"
  230
+    t.string "controller"
  231
+    t.string "actions"
  232
+  end
  233
+
  234
+  create_table "rights_roles", :id => false, :force => true do |t|
  235
+    t.integer "right_id", :limit => 11
  236
+    t.integer "role_id",  :limit => 11
  237
+  end
  238
+
  239
+  create_table "roles", :force => true do |t|
  240
+    t.string "name"
  241
+    t.text   "description"
  242
+  end
  243
+
  244
+  create_table "roles_users", :id => false, :force => true do |t|
  245
+    t.integer "role_id", :limit => 11
  246
+    t.integer "user_id", :limit => 11
  247
+  end
  248
+
  249
+  create_table "sections", :force => true do |t|
  250
+    t.string  "name",      :limit => 100, :default => "", :null => false
  251
+    t.integer "rank",      :limit => 11
  252
+    t.integer "parent_id", :limit => 11,  :default => 0,  :null => false
  253
+  end
  254
+
  255
+  create_table "sessions", :force => true do |t|
  256
+    t.string   "sessid",     :default => "", :null => false
  257
+    t.text     "data"
  258
+    t.datetime "updated_at"
  259
+    t.datetime "created_at"
  260
+  end
  261
+
  262
+  add_index "sessions", ["sessid"], :name => "session_index22"
  263
+
  264
+  create_table "tags", :force => true do |t|
  265
+    t.string  "name",      :limit => 100, :default => "", :null => false
  266
+    t.integer "rank",      :limit => 11
  267
+    t.integer "parent_id", :limit => 11,  :default => 0,  :null => false
  268
+  end
  269
+
  270
+  add_index "tags", ["name"], :name => "name23"
  271
+
  272
+  create_table "user_uploads", :force => true do |t|
  273
+    t.string   "filename"
  274
+    t.string   "attachment_file"
  275
+    t.integer  "width",           :limit => 11, :default => 0, :null => false
  276
+    t.integer  "height",          :limit => 11, :default => 0, :null => false
  277
+    t.string   "type"
  278
+    t.datetime "created_on"
  279
+    t.integer  "parent_id",       :limit => 11
  280
+    t.string   "content_type"
  281
+    t.string   "thumbnail"
  282
+    t.integer  "size",            :limit => 11
  283
+  end
  284
+
  285
+  add_index "user_uploads", ["created_on", "type"], :name => "creation24"
  286
+
  287
+  create_table "users", :force => true do |t|
  288
+    t.string "login",    :limit => 50, :default => "", :null => false
  289
+    t.string "password", :limit => 40
  290
+  end
  291
+
  292
+  add_index "users", ["login", "password"], :name => "login25"
  293
+
  294
+  create_table "wishlist_items", :force => true do |t|
  295
+    t.integer  "order_user_id", :limit => 11, :default => 0, :null => false
  296
+    t.integer  "item_id",       :limit => 11, :default => 0, :null => false
  297
+    t.datetime "created_on"
  298
+  end
  299
+
  300
+  add_index "wishlist_items", ["item_id"], :name => "item27"
  301
+  add_index "wishlist_items", ["order_user_id"], :name => "user26"
  302
+
  303
+end
3  benchmarks/rails/substruct/lib/mocha-0.9.8/COPYING
... ...
@@ -0,0 +1,3 @@
  1
+Copyright Revieworld Ltd. 2006
  2
+
  3
+You may use, copy and redistribute this library under the same terms as Ruby itself (see http://www.ruby-lang.org/en/LICENSE.txt) or under the MIT license (see MIT-LICENSE file).
7  benchmarks/rails/substruct/lib/mocha-0.9.8/MIT-LICENSE
... ...
@@ -0,0 +1,7 @@
  1
+Copyright (c) 2006 Revieworld Ltd.
  2
+
  3
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
  4
+
  5
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
  6
+
  7
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
39  benchmarks/rails/substruct/lib/mocha-0.9.8/README
... ...
@@ -0,0 +1,39 @@
  1
+= Mocha
  2
+
  3
+Mocha is a library for mocking and stubbing using a syntax like that of JMock[http://www.jmock.org].
  4
+
  5
+It can be used with many testing frameworks e.g. Test::Unit[http://www.ruby-doc.org/core/classes/Test/Unit.html], RSpec[http://rspec.info/], test/spec[http://chneukirchen.org/repos/testspec/README], expectations[http://expectations.rubyforge.org/], Dust[http://dust.rubyforge.org/], MiniTest[http://rubyforge.org/projects/bfts] and even JtestR[http://jtestr.codehaus.org/].
  6
+
  7
+Mocha provides a unified, simple and readable syntax for both traditional mocking and partial mocking.
  8
+
  9
+Mocha was harvested from projects at Reevoo[http://www.reevoo.com] by me (James[http://blog.floehopper.org]) and my (then) colleagues Ben[http://www.techbelly.com/], Chris[http://chrisroos.co.uk] and Paul[http://po-ru.com].
  10
+
  11
+== Download and Installation
  12
+
  13
+Install the gem with the following command...
  14
+
  15
+  $ gem install mocha
  16
+
  17
+Or install the Rails[http://www.rubyonrails.org] plugin...
  18
+
  19
+  $ script/plugin install git://github.com/floehopper/mocha.git
  20
+
  21
+Note that versions 0.9.6 & 0.9.7 of the Rails plugin were broken. As of version 0.9.8, you need to explicitly load Mocha after the test framework e.g. by adding "require 'mocha'" at the bottom of test/test_helper.rb.
  22
+
  23
+Or download Mocha...
  24
+
  25
+  http://rubyforge.org/frs/?group_id=1917
  26
+
  27
+== Examples
  28
+
  29
+* Quick Start - {Usage Examples}[link:examples/misc.html]
  30
+* Traditional mocking - {Star Trek Example}[link:examples/mocha.html]
  31
+* Setting expectations on real classes - {Order Example}[link:examples/stubba.html]
  32
+* More examples on {Floehopper's Blog}[http://blog.floehopper.org]
  33
+* {Mailing List Archives}[http://groups.google.com/group/mocha-developer]
  34
+
  35
+== License
  36
+
  37
+Copyright Revieworld Ltd. 2006
  38
+
  39
+You may use, copy and redistribute this library under the same terms as {Ruby itself}[http://www.ruby-lang.org/en/LICENSE.txt] or under the {MIT license}[http://mocha.rubyforge.org/files/MIT-LICENSE.html].
294  benchmarks/rails/substruct/lib/mocha-0.9.8/RELEASE
... ...
@@ -0,0 +1,294 @@
  1
+= 0.9.8 (645024765b2d92018efc511652e1174163844e39)
  2
+* Fixed bug "NameError raised when using Mocha as a Rails plug-in" - http://floehopper.lighthouseapp.com/projects/22289/tickets/53. Since 0.9.6 the Rails plugin has been broken. See bug report for details. You will need to explicitly load Mocha *after* the test framework has been loaded, e.g. by adding "require 'mocha'" at the bottom of test/test_helper.rb.
  3
+* Make Mocha::ParameterMatchers#regexp_matches, #includes, #has_value, #has_key more robust. Thanks to Sander Hartlage.
  4
+* Allow passing a block to Mocha::Configuration methods to only change configuration for the duration of the block. Thanks to Dan Manges.
  5
+* Fixed bug "doc generation fails in 0.9.7 gem" - http://floehopper.lighthouseapp.com/projects/22289/tickets/51.
  6
+* Remove rdoc template incorporating google analytics from source control. The file just needs to exist locally and be ignored by source control. This should stop the warning showing up on e.g. RunCodeRun build results.
  7
+
  8
+= 0.9.7 (80d816f250dc13aaf856f3f9cbd97ebe9c371839)
  9
+* Although I had provided a deprecation warning for people using Mocha::Standalone, I had assumed people wouldn't be explicitly loading the mocha/standalone.rb file. It turns out this assumption was incorrect at least in the case of Rspec. This is now fixed.
  10
+
  11
+= 0.9.6 (57f8f77d715b7f1d9efee2e1a9438f7905c0006b)
  12
+* Version 2.0.1 of the test-unit gem introduced a private 'run_test' method on TestCase which clashed with the public TestRunner#run_test method. So this latter method has been renamed to 'run_as_test'.
  13
+* Stop requiring rubygems - this should be an environmental choice for the user. http://gist.github.com/54177 - describes why requiring rubygems in your library code is a bad idea.
  14
+* It seems like overkill to vendorize coderay and meta_project when they're only needed to generate the examples for documentation and for publishing files on RubyForge. So I'm removing them and installing them locally as gems when I need them.
  15
+* Added support for 'test-unit' gem (version >= 2.0). Note that as with other versions of Test::Unit I'm completely replacing the TestCase#run method. Unfortunately in version 2.0.0 this method differs slightly from the same method in version 2.0.1 & 2.0.2, so we have to provide different implementations to ensure that the internal working of Test::Unit are not compromised by Mocha. Note also that unless the 'test-unit' gem is loaded, requiring 'test/unit' leads to a mixture of stdlib and gem classes being loaded causing errors. To avoid a dependency on rubygems, the gem is loaded only if MOCHA_OPTIONS is set to 'use_test_unit_gem' - this option is only intended for use in running Mocha's own tests. It might be worthwhile to create a shim gem like minitest_tu_shim to allow the test-unit gem to completely replace the stdlib, but that's a job for another day. The changes in the Rakefile are to make the default task run with the 'test-unit' gem (version >= 2.0).
  16
+* Renamed Mocha::Standalone to Mocha::API to better reflect its purpose. Added a deprecation warning for those who are referencing Mocha::Standalone.
  17
+* Fix exception raised by HasEntry#matches? if first param is not a Hash (thanks to Taylor Barstow).
  18
+* Ken Collins reported [1] that Mocha is always loading MiniTest if it is available and loading it causes some Rails/ActionPack tests to break. I've removed the loading of MiniTest, but this now means the user has to ensure that if they want to use MiniTest in conjunction with Mocha, he must load MiniTest before loading Mocha. [1] http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/2060
  19
+* Implemented Bacon integration (thanks to Ubiratan Pires Alberton), but this was then removed after deciding only to maintain integration with Test::Unit and MiniTest which are both Ruby standard libraries. See mailing list for details.
  20
+* Don't monkey-patch MiniTest if it's already been monkey-patched by Mocha.
  21
+* Fixed bug: MiniTest integration was counting ExpectationErrors as errors not failures. http://floehopper.lighthouseapp.com/projects/22289-mocha/tickets/41.
  22
+* Fixed bug: Some Bacon tests were failing in Ruby 1.9.1. http://floehopper.lighthouseapp.com/projects/22289-mocha/tickets/43.
  23
+* Chad Humphries pointed out that in Ruby 1.9.1, if you are not using Test::Unit or MiniTest, Mocha will attempt to load and monkey-patch Test::Unit. Mocha will now only monkey-patch Test::Unit and/or MiniTest if they have already been loaded. MiniTest tests will now run in both Ruby 1.8.6 (with MiniTest gem) and in Ruby 1.9.1 (with MiniTest std lib). See Ligthouse ticket - http://floehopper.lighthouseapp.com/projects/22289/tickets/49.
  24
+* Made Mocha compatible with minitest 1.4.0 and above (thanks to Denis Defreyne).
  25
+
  26
+= 0.9.5 (93cad010345ce5d68f31422cfc32ed9dd6de13ec)
  27
+* Fixed Lighthouse bug #32 - stub_everything should mean mock responds to anything.
  28
+* Added Expectation#twice to improve readability. Thanks to pull request from Celestino Gomes.
  29
+* In Ruby 1.9.1, requiring 'test/unit' loads a thin wrapper around MiniTest and Test::Unit::TestCase ends up inheriting from MiniTest::Unit::TestCase. So we need to avoid including the Mocha modules more than once to avoid nasty consequences. Thanks to Matthias Hennemeyer for help with this.
  30
+* Ruby 1.9 includes rake, but not rake/contrib. For the moment I've moved the sshpublisher require into the only rake task that needs it, so that I can at least run the tests in Ruby 1.9. It looks like I will need to build a rake/contrib gem or similar to get this working properly - http://intertwingly.net/blog/2008/01/07/Rake-Contrib-for-1-9
  31
+
  32
+= 0.9.4 (8a59c6ff0f99f34b02bd99f19536a7893be2b340)
  33
+* Added mocha.gemspec file generated with Chad Woolley's new rake task, so that a floehopper-mocha gem will get built on GitHub.
  34
+* Add rake task to update mocha.gemspec with unique version, which will cause gem to be auto-built on github
  35
+* As Tobias Crawley correctly pointed out in feature request #23055 "stubs(with_hash) not working with existing object" [1], following the principle of least surprise, it should be possible to call ObjectMethods#expects & ObjectMethods#stubs with a Hash of method_names vs return_values like you can with Mock#expects & Mock#stubs. I've also updated & improved the docs to reflect the changes. [1] http://rubyforge.org/tracker/index.php?func=detail&aid=23055&group_id=1917&atid=7480
  36
+* Removed deprecated gem autorequire.
  37
+
  38
+= 0.9.3 (8219bb2d2881c8529c93fc21e97a11d01203c759)
  39
+* Added support for MiniTest thanks to Jeff Smick.
  40
+* Fixed a possible bug with some of the non-default Configuration options relating to the argument to Object#respond_to?
  41
+* As per Jay Fields recommendations [1] and with further impetus from a talk at Ruby Manor, any methods added to core classes are now added by including a module. This means that Mocha is a better citizen of the Ruby world and it's behaviour is more easily extended. [1] http://blog.jayfields.com/2008/07/ruby-underuse-of-modules.html & http://blog.jayfields.com/2008/07/ruby-redefine-method-behavior.html
  42
+* Removed deprecated gem autorequire.
  43
+
  44
+= 0.9.2 (r355)
  45
+* Improved documentation to address [#22530] 'Mock methods with multiple return values not possible?'
  46
+* respond_with parameter matcher was not available in tests.
  47
+* Patch [#22630] Fix for a bug in running Rails tests with Ruby 1.8.7. Array#flatten was being called which in turn was checking whether each element responded to #to_ary. This check was using the two parameter version of #respond_to?, but Mock was only defining a one parameter version.
  48
+
  49
+= 0.9.1 (r349)
  50
+
  51
+* Fixed bug #21465 - expects & stubs should support method names as strings (as well as symbols) or fail fast. Convert all expectation method names to a symbol in case they were supplied as a string.
  52
+* By removing Mock#unexpected_method_called we reduce the number of methods vulnerable to the problem that surfaced in bug #21563.
  53
+* Fix bug #21563 - stubbing 'verified?' method is unsafe. Instance method names on the Mock class should be more obscure.
  54
+* Performance improvement. StubbaExampleTest goes twice as fast on my local machine.
  55
+* Added primitive performance test to default rake task.
  56
+* Fix format of case statements which don't work in Ruby 1.9 and make others consistent.
  57
+* There is no point in running (potentially expensive) checks if configuration is set to allow such checks to fail. This is a relatively quick fix in response to Chris McGrath's performance problems.
  58
+* Fix for bug #21161 - 'uninitialized constant Deprecation in stubba.rb'.
  59
+* It's more readable to talk about 'once' and 'twice' rather than '1 time' and '2 times'.
  60
+* Fix bug #20883 - never should raise when called to prevent follow up errors. Fail fast when there are no matching invokable expectations and handle the stub_everything case sensibly. This might not be entirely backwards compatible, but I think the benefits outweigh the risks. The most likely change is that a test that was already failing will now fail faster, which doesn't seem so awful.
  61
+
  62
+= 0.9.0 (r316)
  63
+
  64
+* Configurable warnings or errors
  65
+  * when a method on a non-public method is stubbed
  66
+  * when a method on a non-existent method is stubbed
  67
+  * when a method on a non-mock object is stubbed
  68
+  * when a method is stubbed unnecessarily (i.e. the stubbed method is not called during the test)
  69
+  
  70
+* Improved error messages
  71
+  * User-friendly list of unsatisfied expectations, satisfied expectations and state machines.
  72
+  * Improved readability of cardinality description.
  73
+  * Display sensible failure message for any_instance expectations e.g. "#<AnyInstance:Foo>.bar - expected calls: 1, actual calls: 0"
  74
+
  75
+* Parameter matchers
  76
+  * New to this release
  77
+    * optionally (allows matching of optional parameters if available)
  78
+    * yaml_equivalent (allows matching of YAML that represents the specified object)
  79
+    * responds_with (tests the quack not the duck)
  80
+  * Nesting of parameter matchers is now supported.
  81
+
  82
+* Optional block passed into mock initializer is evaluated in the context of the new mock instance and can be used as a shortcut to set up expectations.
  83
+
  84
+* Added JMock-style sequences for constraining the order of expected invocations. See Standalone#sequence and Expectation#in_sequence.
  85
+
  86
+* Added JMock-style states for constraining the order of expected invocations. See Standalone#states, Expectation#then, Expectation#when and StateMachine.
  87
+
  88
+* Compatibility with versions of Ruby
  89
+  * Compatibility with Ruby v1.9. All test errors and warnings fixed.
  90
+  * Nasty fix so that TestCaseAdaptor works consistently with earlier versions of Test::Unit as well as more recent versions.
  91
+  * Added platform to gem specification to avoid bug in rubygems 0.9.5 - see http://www.dcmanges.com/blog/rubygems-0-9-5-platform-bug and http://rubygems.org/read/chapter/20#platform.
  92
+  * Make ExpectationRaiser deal with subclasses of Interrupt which seem to need a message supplied in the raise statement in Ruby 1.8.6 (but not 1.8.4 or 1.9). Not sure this is really Mocha's responsibility.
  93
+
  94
+* Added deprecation warning in stubba.rb which is no longer needed and will be removed.
  95
+
  96
+* Supply positioning information to evals to improve any error messages. See http://ola-bini.blogspot.com/2008/01/ruby-antipattern-using-eval-without.html
  97
+
  98
+* Bug fixes
  99
+  * 18914 in revision 296 - http://rubyforge.org/tracker/index.php?func=detail&aid=18914&group_id=1917&atid=7477
  100
+  * 18917 in revision 295 - http://rubyforge.org/tracker/index.php?func=detail&aid=18917&group_id=1917&atid=7477
  101
+  * 18336 in revision 287 - http://rubyforge.org/tracker/index.php?func=detail&aid=18336&group_id=1917&atid=7477
  102
+  * 17835 in revision 255 - http://rubyforge.org/tracker/index.php?func=detail&aid=17835&group_id=1917&atid=7477
  103
+  * 17412 in revision 242 - http://rubyforge.org/tracker/index.php?func=detail&aid=17412&group_id=1917&atid=7477