guesswhat 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (446) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/CODE_OF_CONDUCT.md +49 -0
  4. data/Gemfile +4 -0
  5. data/README.md +36 -0
  6. data/Rakefile +4 -0
  7. data/bin/console +14 -0
  8. data/bin/setup +8 -0
  9. data/guesswhat.gemspec +25 -0
  10. data/lib/guesswhat/version.rb +3 -0
  11. data/lib/guesswhat.rb +5 -0
  12. data/tasks/rspec.rake +3 -0
  13. data/vendor/bundle/bin/console +23 -0
  14. data/vendor/bundle/bin/htmldiff +25 -0
  15. data/vendor/bundle/bin/ldiff +25 -0
  16. data/vendor/bundle/bin/rake +23 -0
  17. data/vendor/bundle/bin/rspec +23 -0
  18. data/vendor/bundle/bin/setup +23 -0
  19. data/vendor/bundle/cache/diff-lcs-1.2.5.gem +0 -0
  20. data/vendor/bundle/cache/rake-10.5.0.gem +0 -0
  21. data/vendor/bundle/cache/rspec-3.4.0.gem +0 -0
  22. data/vendor/bundle/cache/rspec-core-3.4.4.gem +0 -0
  23. data/vendor/bundle/cache/rspec-expectations-3.4.0.gem +0 -0
  24. data/vendor/bundle/cache/rspec-mocks-3.4.1.gem +0 -0
  25. data/vendor/bundle/cache/rspec-support-3.4.1.gem +0 -0
  26. data/vendor/bundle/gems/diff-lcs-1.2.5/.autotest +3 -0
  27. data/vendor/bundle/gems/diff-lcs-1.2.5/.gemtest +0 -0
  28. data/vendor/bundle/gems/diff-lcs-1.2.5/.hoerc +2 -0
  29. data/vendor/bundle/gems/diff-lcs-1.2.5/.rspec +2 -0
  30. data/vendor/bundle/gems/diff-lcs-1.2.5/.travis.yml +22 -0
  31. data/vendor/bundle/gems/diff-lcs-1.2.5/Contributing.rdoc +64 -0
  32. data/vendor/bundle/gems/diff-lcs-1.2.5/Gemfile +20 -0
  33. data/vendor/bundle/gems/diff-lcs-1.2.5/History.rdoc +152 -0
  34. data/vendor/bundle/gems/diff-lcs-1.2.5/License.rdoc +39 -0
  35. data/vendor/bundle/gems/diff-lcs-1.2.5/Manifest.txt +38 -0
  36. data/vendor/bundle/gems/diff-lcs-1.2.5/README.rdoc +85 -0
  37. data/vendor/bundle/gems/diff-lcs-1.2.5/Rakefile +41 -0
  38. data/vendor/bundle/gems/diff-lcs-1.2.5/autotest/discover.rb +1 -0
  39. data/vendor/bundle/gems/diff-lcs-1.2.5/bin/htmldiff +32 -0
  40. data/vendor/bundle/gems/diff-lcs-1.2.5/bin/ldiff +6 -0
  41. data/vendor/bundle/gems/diff-lcs-1.2.5/docs/COPYING.txt +339 -0
  42. data/vendor/bundle/gems/diff-lcs-1.2.5/docs/artistic.txt +127 -0
  43. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/array.rb +7 -0
  44. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/block.rb +37 -0
  45. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/callbacks.rb +322 -0
  46. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/change.rb +177 -0
  47. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/htmldiff.rb +149 -0
  48. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/hunk.rb +276 -0
  49. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/internals.rb +301 -0
  50. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/ldiff.rb +195 -0
  51. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs/string.rb +5 -0
  52. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff/lcs.rb +805 -0
  53. data/vendor/bundle/gems/diff-lcs-1.2.5/lib/diff-lcs.rb +3 -0
  54. data/vendor/bundle/gems/diff-lcs-1.2.5/spec/change_spec.rb +65 -0
  55. data/vendor/bundle/gems/diff-lcs-1.2.5/spec/diff_spec.rb +47 -0
  56. data/vendor/bundle/gems/diff-lcs-1.2.5/spec/hunk_spec.rb +72 -0
  57. data/vendor/bundle/gems/diff-lcs-1.2.5/spec/issues_spec.rb +24 -0
  58. data/vendor/bundle/gems/diff-lcs-1.2.5/spec/lcs_spec.rb +54 -0
  59. data/vendor/bundle/gems/diff-lcs-1.2.5/spec/patch_spec.rb +414 -0
  60. data/vendor/bundle/gems/diff-lcs-1.2.5/spec/sdiff_spec.rb +214 -0
  61. data/vendor/bundle/gems/diff-lcs-1.2.5/spec/spec_helper.rb +290 -0
  62. data/vendor/bundle/gems/diff-lcs-1.2.5/spec/traverse_balanced_spec.rb +310 -0
  63. data/vendor/bundle/gems/diff-lcs-1.2.5/spec/traverse_sequences_spec.rb +139 -0
  64. data/vendor/bundle/gems/rake-10.5.0/.autotest +7 -0
  65. data/vendor/bundle/gems/rake-10.5.0/.rubocop.yml +27 -0
  66. data/vendor/bundle/gems/rake-10.5.0/.togglerc +7 -0
  67. data/vendor/bundle/gems/rake-10.5.0/CONTRIBUTING.rdoc +38 -0
  68. data/vendor/bundle/gems/rake-10.5.0/History.rdoc +659 -0
  69. data/vendor/bundle/gems/rake-10.5.0/MIT-LICENSE +21 -0
  70. data/vendor/bundle/gems/rake-10.5.0/Manifest.txt +166 -0
  71. data/vendor/bundle/gems/rake-10.5.0/README.rdoc +139 -0
  72. data/vendor/bundle/gems/rake-10.5.0/Rakefile +81 -0
  73. data/vendor/bundle/gems/rake-10.5.0/bin/rake +33 -0
  74. data/vendor/bundle/gems/rake-10.5.0/doc/command_line_usage.rdoc +158 -0
  75. data/vendor/bundle/gems/rake-10.5.0/doc/example/Rakefile1 +38 -0
  76. data/vendor/bundle/gems/rake-10.5.0/doc/example/Rakefile2 +35 -0
  77. data/vendor/bundle/gems/rake-10.5.0/doc/example/a.c +6 -0
  78. data/vendor/bundle/gems/rake-10.5.0/doc/example/b.c +6 -0
  79. data/vendor/bundle/gems/rake-10.5.0/doc/example/main.c +11 -0
  80. data/vendor/bundle/gems/rake-10.5.0/doc/glossary.rdoc +42 -0
  81. data/vendor/bundle/gems/rake-10.5.0/doc/jamis.rb +591 -0
  82. data/vendor/bundle/gems/rake-10.5.0/doc/proto_rake.rdoc +127 -0
  83. data/vendor/bundle/gems/rake-10.5.0/doc/rake.1 +141 -0
  84. data/vendor/bundle/gems/rake-10.5.0/doc/rakefile.rdoc +624 -0
  85. data/vendor/bundle/gems/rake-10.5.0/doc/rational.rdoc +151 -0
  86. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
  87. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
  88. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
  89. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
  90. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
  91. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
  92. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
  93. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
  94. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
  95. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
  96. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
  97. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
  98. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
  99. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
  100. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
  101. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +37 -0
  102. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
  103. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
  104. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
  105. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
  106. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
  107. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
  108. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +60 -0
  109. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +55 -0
  110. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +64 -0
  111. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
  112. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +58 -0
  113. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +53 -0
  114. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
  115. data/vendor/bundle/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
  116. data/vendor/bundle/gems/rake-10.5.0/lib/rake/alt_system.rb +110 -0
  117. data/vendor/bundle/gems/rake-10.5.0/lib/rake/application.rb +790 -0
  118. data/vendor/bundle/gems/rake-10.5.0/lib/rake/backtrace.rb +23 -0
  119. data/vendor/bundle/gems/rake-10.5.0/lib/rake/clean.rb +76 -0
  120. data/vendor/bundle/gems/rake-10.5.0/lib/rake/cloneable.rb +16 -0
  121. data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/.document +1 -0
  122. data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +21 -0
  123. data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +137 -0
  124. data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +81 -0
  125. data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  126. data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +61 -0
  127. data/vendor/bundle/gems/rake-10.5.0/lib/rake/contrib/sys.rb +4 -0
  128. data/vendor/bundle/gems/rake-10.5.0/lib/rake/cpu_counter.rb +125 -0
  129. data/vendor/bundle/gems/rake-10.5.0/lib/rake/default_loader.rb +14 -0
  130. data/vendor/bundle/gems/rake-10.5.0/lib/rake/dsl_definition.rb +201 -0
  131. data/vendor/bundle/gems/rake-10.5.0/lib/rake/early_time.rb +21 -0
  132. data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/core.rb +25 -0
  133. data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/module.rb +2 -0
  134. data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/pathname.rb +25 -0
  135. data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/string.rb +175 -0
  136. data/vendor/bundle/gems/rake-10.5.0/lib/rake/ext/time.rb +18 -0
  137. data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_creation_task.rb +24 -0
  138. data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_list.rb +428 -0
  139. data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_task.rb +46 -0
  140. data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_utils.rb +128 -0
  141. data/vendor/bundle/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +144 -0
  142. data/vendor/bundle/gems/rake-10.5.0/lib/rake/gempackagetask.rb +4 -0
  143. data/vendor/bundle/gems/rake-10.5.0/lib/rake/invocation_chain.rb +56 -0
  144. data/vendor/bundle/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +16 -0
  145. data/vendor/bundle/gems/rake-10.5.0/lib/rake/late_time.rb +17 -0
  146. data/vendor/bundle/gems/rake-10.5.0/lib/rake/linked_list.rb +103 -0
  147. data/vendor/bundle/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +53 -0
  148. data/vendor/bundle/gems/rake-10.5.0/lib/rake/multi_task.rb +13 -0
  149. data/vendor/bundle/gems/rake-10.5.0/lib/rake/name_space.rb +38 -0
  150. data/vendor/bundle/gems/rake-10.5.0/lib/rake/packagetask.rb +199 -0
  151. data/vendor/bundle/gems/rake-10.5.0/lib/rake/pathmap.rb +3 -0
  152. data/vendor/bundle/gems/rake-10.5.0/lib/rake/phony.rb +15 -0
  153. data/vendor/bundle/gems/rake-10.5.0/lib/rake/private_reader.rb +20 -0
  154. data/vendor/bundle/gems/rake-10.5.0/lib/rake/promise.rb +99 -0
  155. data/vendor/bundle/gems/rake-10.5.0/lib/rake/pseudo_status.rb +29 -0
  156. data/vendor/bundle/gems/rake-10.5.0/lib/rake/rake_module.rb +38 -0
  157. data/vendor/bundle/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +22 -0
  158. data/vendor/bundle/gems/rake-10.5.0/lib/rake/rdoctask.rb +4 -0
  159. data/vendor/bundle/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +29 -0
  160. data/vendor/bundle/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
  161. data/vendor/bundle/gems/rake-10.5.0/lib/rake/runtest.rb +27 -0
  162. data/vendor/bundle/gems/rake-10.5.0/lib/rake/scope.rb +42 -0
  163. data/vendor/bundle/gems/rake-10.5.0/lib/rake/task.rb +383 -0
  164. data/vendor/bundle/gems/rake-10.5.0/lib/rake/task_argument_error.rb +7 -0
  165. data/vendor/bundle/gems/rake-10.5.0/lib/rake/task_arguments.rb +98 -0
  166. data/vendor/bundle/gems/rake-10.5.0/lib/rake/task_manager.rb +307 -0
  167. data/vendor/bundle/gems/rake-10.5.0/lib/rake/tasklib.rb +24 -0
  168. data/vendor/bundle/gems/rake-10.5.0/lib/rake/testtask.rb +213 -0
  169. data/vendor/bundle/gems/rake-10.5.0/lib/rake/thread_history_display.rb +48 -0
  170. data/vendor/bundle/gems/rake-10.5.0/lib/rake/thread_pool.rb +164 -0
  171. data/vendor/bundle/gems/rake-10.5.0/lib/rake/trace_output.rb +22 -0
  172. data/vendor/bundle/gems/rake-10.5.0/lib/rake/version.rb +7 -0
  173. data/vendor/bundle/gems/rake-10.5.0/lib/rake/win32.rb +56 -0
  174. data/vendor/bundle/gems/rake-10.5.0/lib/rake.rb +79 -0
  175. data/vendor/bundle/gems/rake-10.5.0/rakelib/publish.rake +20 -0
  176. data/vendor/bundle/gems/rake-10.5.0/rakelib/test_times.rake +25 -0
  177. data/vendor/bundle/gems/rake-10.5.0/test/file_creation.rb +34 -0
  178. data/vendor/bundle/gems/rake-10.5.0/test/helper.rb +129 -0
  179. data/vendor/bundle/gems/rake-10.5.0/test/support/rakefile_definitions.rb +478 -0
  180. data/vendor/bundle/gems/rake-10.5.0/test/support/ruby_runner.rb +34 -0
  181. data/vendor/bundle/gems/rake-10.5.0/test/test_private_reader.rb +42 -0
  182. data/vendor/bundle/gems/rake-10.5.0/test/test_rake.rb +40 -0
  183. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_application.rb +643 -0
  184. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_application_options.rb +468 -0
  185. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_backtrace.rb +119 -0
  186. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_clean.rb +61 -0
  187. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +68 -0
  188. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_definitions.rb +84 -0
  189. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_directory_task.rb +76 -0
  190. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_dsl.rb +40 -0
  191. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_early_time.rb +31 -0
  192. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_extension.rb +59 -0
  193. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +56 -0
  194. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_list.rb +670 -0
  195. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +8 -0
  196. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_task.rb +197 -0
  197. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_file_utils.rb +314 -0
  198. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_ftp_file.rb +74 -0
  199. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_functional.rb +482 -0
  200. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +64 -0
  201. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_late_time.rb +18 -0
  202. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_linked_list.rb +84 -0
  203. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +46 -0
  204. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_multi_task.rb +64 -0
  205. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_name_space.rb +57 -0
  206. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_package_task.rb +79 -0
  207. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_path_map.rb +168 -0
  208. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +34 -0
  209. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +18 -0
  210. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +15 -0
  211. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +21 -0
  212. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +20 -0
  213. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +26 -0
  214. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_require.rb +40 -0
  215. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_rules.rb +388 -0
  216. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_scope.rb +44 -0
  217. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task.rb +393 -0
  218. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +119 -0
  219. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_arguments.rb +127 -0
  220. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_lib.rb +9 -0
  221. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_manager.rb +178 -0
  222. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
  223. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +172 -0
  224. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_test_task.rb +146 -0
  225. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_thread_pool.rb +145 -0
  226. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +71 -0
  227. data/vendor/bundle/gems/rake-10.5.0/test/test_rake_win32.rb +72 -0
  228. data/vendor/bundle/gems/rake-10.5.0/test/test_thread_history_display.rb +101 -0
  229. data/vendor/bundle/gems/rake-10.5.0/test/test_trace_output.rb +52 -0
  230. data/vendor/bundle/gems/rspec-3.4.0/LICENSE.md +27 -0
  231. data/vendor/bundle/gems/rspec-3.4.0/README.md +39 -0
  232. data/vendor/bundle/gems/rspec-3.4.0/lib/rspec/version.rb +5 -0
  233. data/vendor/bundle/gems/rspec-3.4.0/lib/rspec.rb +3 -0
  234. data/vendor/bundle/gems/rspec-core-3.4.4/.document +5 -0
  235. data/vendor/bundle/gems/rspec-core-3.4.4/.yardopts +8 -0
  236. data/vendor/bundle/gems/rspec-core-3.4.4/Changelog.md +1972 -0
  237. data/vendor/bundle/gems/rspec-core-3.4.4/LICENSE.md +26 -0
  238. data/vendor/bundle/gems/rspec-core-3.4.4/README.md +384 -0
  239. data/vendor/bundle/gems/rspec-core-3.4.4/exe/rspec +4 -0
  240. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/autorun.rb +3 -0
  241. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/backtrace_formatter.rb +65 -0
  242. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/bisect/coordinator.rb +66 -0
  243. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/bisect/example_minimizer.rb +169 -0
  244. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/bisect/runner.rb +139 -0
  245. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/bisect/server.rb +61 -0
  246. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/configuration.rb +1869 -0
  247. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/configuration_options.rb +191 -0
  248. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/drb.rb +111 -0
  249. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/dsl.rb +96 -0
  250. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/example.rb +631 -0
  251. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/example_group.rb +816 -0
  252. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/example_status_persister.rb +235 -0
  253. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/filter_manager.rb +231 -0
  254. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/flat_map.rb +20 -0
  255. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/base_formatter.rb +70 -0
  256. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/base_text_formatter.rb +77 -0
  257. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/bisect_formatter.rb +68 -0
  258. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/bisect_progress_formatter.rb +144 -0
  259. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/console_codes.rb +65 -0
  260. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
  261. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/documentation_formatter.rb +70 -0
  262. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/exception_presenter.rb +482 -0
  263. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  264. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/helpers.rb +109 -0
  265. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/html_formatter.rb +151 -0
  266. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/html_printer.rb +414 -0
  267. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/html_snippet_extractor.rb +116 -0
  268. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/json_formatter.rb +96 -0
  269. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  270. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/progress_formatter.rb +28 -0
  271. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/protocol.rb +181 -0
  272. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters/snippet_extractor.rb +136 -0
  273. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/formatters.rb +255 -0
  274. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/hooks.rb +638 -0
  275. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/memoized_helpers.rb +532 -0
  276. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/metadata.rb +498 -0
  277. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/metadata_filter.rb +231 -0
  278. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  279. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  280. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  281. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/mocking_adapters/null.rb +14 -0
  282. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  283. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  284. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/notifications.rb +499 -0
  285. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/option_parser.rb +319 -0
  286. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/ordering.rb +158 -0
  287. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/pending.rb +165 -0
  288. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/profiler.rb +32 -0
  289. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/project_initializer/.rspec +2 -0
  290. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/project_initializer/spec/spec_helper.rb +96 -0
  291. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/project_initializer.rb +48 -0
  292. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/rake_task.rb +167 -0
  293. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/reporter.rb +236 -0
  294. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/ruby_project.rb +53 -0
  295. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/runner.rb +183 -0
  296. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/sandbox.rb +37 -0
  297. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/set.rb +49 -0
  298. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/shared_context.rb +55 -0
  299. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/shared_example_group.rb +212 -0
  300. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/shell_escape.rb +49 -0
  301. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/source/location.rb +13 -0
  302. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/source/node.rb +93 -0
  303. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/source/syntax_highlighter.rb +71 -0
  304. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/source/token.rb +86 -0
  305. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/source.rb +76 -0
  306. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  307. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/version.rb +9 -0
  308. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/warnings.rb +40 -0
  309. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core/world.rb +213 -0
  310. data/vendor/bundle/gems/rspec-core-3.4.4/lib/rspec/core.rb +181 -0
  311. data/vendor/bundle/gems/rspec-expectations-3.4.0/.document +5 -0
  312. data/vendor/bundle/gems/rspec-expectations-3.4.0/.yardopts +6 -0
  313. data/vendor/bundle/gems/rspec-expectations-3.4.0/Changelog.md +979 -0
  314. data/vendor/bundle/gems/rspec-expectations-3.4.0/LICENSE.md +25 -0
  315. data/vendor/bundle/gems/rspec-expectations-3.4.0/README.md +303 -0
  316. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/configuration.rb +164 -0
  317. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/expectation_target.rb +113 -0
  318. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/fail_with.rb +31 -0
  319. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/failure_aggregator.rb +194 -0
  320. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/handler.rb +170 -0
  321. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/minitest_integration.rb +31 -0
  322. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/syntax.rb +132 -0
  323. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations/version.rb +8 -0
  324. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/expectations.rb +81 -0
  325. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/aliased_matcher.rb +116 -0
  326. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/all.rb +85 -0
  327. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/base_matcher.rb +181 -0
  328. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be.rb +285 -0
  329. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be_between.rb +77 -0
  330. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
  331. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
  332. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/be_within.rb +72 -0
  333. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/change.rb +354 -0
  334. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/compound.rb +272 -0
  335. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/contain_exactly.rb +286 -0
  336. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/cover.rb +24 -0
  337. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/eq.rb +40 -0
  338. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/eql.rb +34 -0
  339. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/equal.rb +81 -0
  340. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/exist.rb +86 -0
  341. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/has.rb +103 -0
  342. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  343. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/include.rb +130 -0
  344. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/match.rb +106 -0
  345. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/operators.rb +128 -0
  346. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/output.rb +200 -0
  347. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/raise_error.rb +228 -0
  348. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/respond_to.rb +90 -0
  349. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/satisfy.rb +37 -0
  350. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  351. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
  352. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in/yield.rb +419 -0
  353. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/built_in.rb +52 -0
  354. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/composable.rb +185 -0
  355. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/dsl.rb +453 -0
  356. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/english_phrasing.rb +42 -0
  357. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +73 -0
  358. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/fail_matchers.rb +42 -0
  359. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/generated_descriptions.rb +42 -0
  360. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/matcher_delegator.rb +35 -0
  361. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers/matcher_protocol.rb +99 -0
  362. data/vendor/bundle/gems/rspec-expectations-3.4.0/lib/rspec/matchers.rb +1037 -0
  363. data/vendor/bundle/gems/rspec-mocks-3.4.1/.document +5 -0
  364. data/vendor/bundle/gems/rspec-mocks-3.4.1/.yardopts +6 -0
  365. data/vendor/bundle/gems/rspec-mocks-3.4.1/Changelog.md +991 -0
  366. data/vendor/bundle/gems/rspec-mocks-3.4.1/LICENSE.md +25 -0
  367. data/vendor/bundle/gems/rspec-mocks-3.4.1/README.md +445 -0
  368. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/chain.rb +110 -0
  369. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  370. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/expect_chain_chain.rb +35 -0
  371. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/expectation_chain.rb +48 -0
  372. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  373. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  374. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/recorder.rb +268 -0
  375. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/stub_chain.rb +46 -0
  376. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance/stub_chain_chain.rb +27 -0
  377. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/any_instance.rb +11 -0
  378. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/argument_list_matcher.rb +100 -0
  379. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/argument_matchers.rb +320 -0
  380. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/configuration.rb +205 -0
  381. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/error_generator.rb +367 -0
  382. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/example_methods.rb +422 -0
  383. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/instance_method_stasher.rb +135 -0
  384. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/marshal_extension.rb +41 -0
  385. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  386. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/matchers/have_received.rb +128 -0
  387. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/matchers/receive.rb +130 -0
  388. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/matchers/receive_message_chain.rb +80 -0
  389. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/matchers/receive_messages.rb +75 -0
  390. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/message_chain.rb +87 -0
  391. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/message_expectation.rb +717 -0
  392. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/method_double.rb +287 -0
  393. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/method_reference.rb +192 -0
  394. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/mutate_const.rb +335 -0
  395. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/object_reference.rb +149 -0
  396. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/order_group.rb +81 -0
  397. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/proxy.rb +484 -0
  398. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/space.rb +238 -0
  399. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/standalone.rb +3 -0
  400. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/syntax.rb +325 -0
  401. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/targets.rb +97 -0
  402. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/test_double.rb +170 -0
  403. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/verifying_double.rb +129 -0
  404. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
  405. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/verifying_proxy.rb +213 -0
  406. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks/version.rb +9 -0
  407. data/vendor/bundle/gems/rspec-mocks-3.4.1/lib/rspec/mocks.rb +126 -0
  408. data/vendor/bundle/gems/rspec-support-3.4.1/Changelog.md +151 -0
  409. data/vendor/bundle/gems/rspec-support-3.4.1/LICENSE.md +23 -0
  410. data/vendor/bundle/gems/rspec-support-3.4.1/README.md +40 -0
  411. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/caller_filter.rb +83 -0
  412. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/comparable_version.rb +46 -0
  413. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/differ.rb +215 -0
  414. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/directory_maker.rb +63 -0
  415. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/encoded_string.rb +155 -0
  416. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/fuzzy_matcher.rb +48 -0
  417. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/hunk_generator.rb +47 -0
  418. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/matcher_definition.rb +42 -0
  419. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/method_signature_verifier.rb +290 -0
  420. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/mutex.rb +73 -0
  421. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/object_formatter.rb +108 -0
  422. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/recursive_const_methods.rb +76 -0
  423. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/reentrant_mutex.rb +53 -0
  424. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/ruby_features.rb +149 -0
  425. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
  426. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/formatting_support.rb +9 -0
  427. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/in_sub_process.rb +52 -0
  428. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/library_wide_checks.rb +152 -0
  429. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/shell_out.rb +71 -0
  430. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/stderr_splitter.rb +63 -0
  431. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/string_matcher.rb +46 -0
  432. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/with_isolated_directory.rb +9 -0
  433. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  434. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/spec.rb +81 -0
  435. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/version.rb +7 -0
  436. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/version_checker.rb +53 -0
  437. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support/warnings.rb +39 -0
  438. data/vendor/bundle/gems/rspec-support-3.4.1/lib/rspec/support.rb +139 -0
  439. data/vendor/bundle/specifications/diff-lcs-1.2.5.gemspec +68 -0
  440. data/vendor/bundle/specifications/rake-10.5.0.gemspec +43 -0
  441. data/vendor/bundle/specifications/rspec-3.4.0.gemspec +42 -0
  442. data/vendor/bundle/specifications/rspec-core-3.4.4.gemspec +65 -0
  443. data/vendor/bundle/specifications/rspec-expectations-3.4.0.gemspec +50 -0
  444. data/vendor/bundle/specifications/rspec-mocks-3.4.1.gemspec +50 -0
  445. data/vendor/bundle/specifications/rspec-support-3.4.1.gemspec +41 -0
  446. metadata +532 -0
@@ -0,0 +1,484 @@
1
+ module RSpec
2
+ module Mocks
3
+ # @private
4
+ class Proxy
5
+ SpecificMessage = Struct.new(:object, :message, :args) do
6
+ def ==(expectation)
7
+ expectation.orig_object == object && expectation.matches?(message, *args)
8
+ end
9
+ end
10
+
11
+ # @private
12
+ def ensure_implemented(*_args)
13
+ # noop for basic proxies, see VerifyingProxy for behaviour.
14
+ end
15
+
16
+ # @private
17
+ def initialize(object, order_group, options={})
18
+ @object = object
19
+ @order_group = order_group
20
+ @error_generator = ErrorGenerator.new(object)
21
+ @messages_received = []
22
+ @options = options
23
+ @null_object = false
24
+ @method_doubles = Hash.new { |h, k| h[k] = MethodDouble.new(@object, k, self) }
25
+ end
26
+
27
+ # @private
28
+ attr_reader :object
29
+
30
+ # @private
31
+ def null_object?
32
+ @null_object
33
+ end
34
+
35
+ # @private
36
+ # Tells the object to ignore any messages that aren't explicitly set as
37
+ # stubs or message expectations.
38
+ def as_null_object
39
+ @null_object = true
40
+ @object
41
+ end
42
+
43
+ # @private
44
+ def original_method_handle_for(_message)
45
+ nil
46
+ end
47
+
48
+ DEFAULT_MESSAGE_EXPECTATION_OPTS = {}.freeze
49
+
50
+ # @private
51
+ def add_message_expectation(method_name, opts=DEFAULT_MESSAGE_EXPECTATION_OPTS, &block)
52
+ location = opts.fetch(:expected_from) { CallerFilter.first_non_rspec_line }
53
+ meth_double = method_double_for(method_name)
54
+
55
+ if null_object? && !block
56
+ meth_double.add_default_stub(@error_generator, @order_group, location, opts) do
57
+ @object
58
+ end
59
+ end
60
+
61
+ meth_double.add_expectation @error_generator, @order_group, location, opts, &block
62
+ end
63
+
64
+ # @private
65
+ def add_simple_expectation(method_name, response, location)
66
+ method_double_for(method_name).add_simple_expectation method_name, response, @error_generator, location
67
+ end
68
+
69
+ # @private
70
+ def build_expectation(method_name)
71
+ meth_double = method_double_for(method_name)
72
+
73
+ meth_double.build_expectation(
74
+ @error_generator,
75
+ @order_group
76
+ )
77
+ end
78
+
79
+ # @private
80
+ def replay_received_message_on(expectation, &block)
81
+ expected_method_name = expectation.message
82
+ meth_double = method_double_for(expected_method_name)
83
+
84
+ if meth_double.expectations.any?
85
+ @error_generator.raise_expectation_on_mocked_method(expected_method_name)
86
+ end
87
+
88
+ unless null_object? || meth_double.stubs.any?
89
+ @error_generator.raise_expectation_on_unstubbed_method(expected_method_name)
90
+ end
91
+
92
+ @messages_received.each do |(actual_method_name, args, received_block)|
93
+ next unless expectation.matches?(actual_method_name, *args)
94
+
95
+ expectation.safe_invoke(nil)
96
+ block.call(*args, &received_block) if block
97
+ end
98
+ end
99
+
100
+ # @private
101
+ def check_for_unexpected_arguments(expectation)
102
+ return if @messages_received.empty?
103
+
104
+ return if @messages_received.any? { |method_name, args, _| expectation.matches?(method_name, *args) }
105
+
106
+ name_but_not_args, others = @messages_received.partition do |(method_name, args, _)|
107
+ expectation.matches_name_but_not_args(method_name, *args)
108
+ end
109
+
110
+ return if name_but_not_args.empty? && !others.empty?
111
+
112
+ expectation.raise_unexpected_message_args_error(name_but_not_args.map { |args| args[1] })
113
+ end
114
+
115
+ # @private
116
+ def add_stub(method_name, opts={}, &implementation)
117
+ location = opts.fetch(:expected_from) { CallerFilter.first_non_rspec_line }
118
+ method_double_for(method_name).add_stub @error_generator, @order_group, location, opts, &implementation
119
+ end
120
+
121
+ # @private
122
+ def add_simple_stub(method_name, response)
123
+ method_double_for(method_name).add_simple_stub method_name, response
124
+ end
125
+
126
+ # @private
127
+ def remove_stub(method_name)
128
+ method_double_for(method_name).remove_stub
129
+ end
130
+
131
+ # @private
132
+ def remove_stub_if_present(method_name)
133
+ method_double_for(method_name).remove_stub_if_present
134
+ end
135
+
136
+ # @private
137
+ def verify
138
+ @method_doubles.each_value { |d| d.verify }
139
+ end
140
+
141
+ # @private
142
+ def reset
143
+ @messages_received.clear
144
+ end
145
+
146
+ # @private
147
+ def received_message?(method_name, *args, &block)
148
+ @messages_received.any? { |array| array == [method_name, args, block] }
149
+ end
150
+
151
+ # @private
152
+ def messages_arg_list
153
+ @messages_received.map { |_, args, _| args }
154
+ end
155
+
156
+ # @private
157
+ def has_negative_expectation?(message)
158
+ method_double_for(message).expectations.find { |expectation| expectation.negative_expectation_for?(message) }
159
+ end
160
+
161
+ # @private
162
+ def record_message_received(message, *args, &block)
163
+ @order_group.invoked SpecificMessage.new(object, message, args)
164
+ @messages_received << [message, args, block]
165
+ end
166
+
167
+ # @private
168
+ def message_received(message, *args, &block)
169
+ record_message_received message, *args, &block
170
+
171
+ expectation = find_matching_expectation(message, *args)
172
+ stub = find_matching_method_stub(message, *args)
173
+
174
+ if (stub && expectation && expectation.called_max_times?) || (stub && !expectation)
175
+ expectation.increase_actual_received_count! if expectation && expectation.actual_received_count_matters?
176
+ if (expectation = find_almost_matching_expectation(message, *args))
177
+ expectation.advise(*args) unless expectation.expected_messages_received?
178
+ end
179
+ stub.invoke(nil, *args, &block)
180
+ elsif expectation
181
+ expectation.unadvise(messages_arg_list)
182
+ expectation.invoke(stub, *args, &block)
183
+ elsif (expectation = find_almost_matching_expectation(message, *args))
184
+ expectation.advise(*args) if null_object? unless expectation.expected_messages_received?
185
+
186
+ if null_object? || !has_negative_expectation?(message)
187
+ expectation.raise_unexpected_message_args_error([args])
188
+ end
189
+ elsif (stub = find_almost_matching_stub(message, *args))
190
+ stub.advise(*args)
191
+ raise_missing_default_stub_error(stub, [args])
192
+ elsif Class === @object
193
+ @object.superclass.__send__(message, *args, &block)
194
+ else
195
+ @object.__send__(:method_missing, message, *args, &block)
196
+ end
197
+ end
198
+
199
+ # @private
200
+ def raise_unexpected_message_error(method_name, args)
201
+ @error_generator.raise_unexpected_message_error method_name, args
202
+ end
203
+
204
+ # @private
205
+ def raise_missing_default_stub_error(expectation, args_for_multiple_calls)
206
+ @error_generator.raise_missing_default_stub_error(expectation, args_for_multiple_calls)
207
+ end
208
+
209
+ # @private
210
+ def visibility_for(_method_name)
211
+ # This is the default (for test doubles). Subclasses override this.
212
+ :public
213
+ end
214
+
215
+ if Support::RubyFeatures.module_prepends_supported?
216
+ def self.prepended_modules_of(klass)
217
+ ancestors = klass.ancestors
218
+
219
+ # `|| 0` is necessary for Ruby 2.0, where the singleton class
220
+ # is only in the ancestor list when there are prepended modules.
221
+ singleton_index = ancestors.index(klass) || 0
222
+
223
+ ancestors[0, singleton_index]
224
+ end
225
+
226
+ def prepended_modules_of_singleton_class
227
+ @prepended_modules_of_singleton_class ||= RSpec::Mocks::Proxy.prepended_modules_of(@object.singleton_class)
228
+ end
229
+ end
230
+
231
+ private
232
+
233
+ def method_double_for(message)
234
+ @method_doubles[message.to_sym]
235
+ end
236
+
237
+ def find_matching_expectation(method_name, *args)
238
+ find_best_matching_expectation_for(method_name) do |expectation|
239
+ expectation.matches?(method_name, *args)
240
+ end
241
+ end
242
+
243
+ def find_almost_matching_expectation(method_name, *args)
244
+ find_best_matching_expectation_for(method_name) do |expectation|
245
+ expectation.matches_name_but_not_args(method_name, *args)
246
+ end
247
+ end
248
+
249
+ def find_best_matching_expectation_for(method_name)
250
+ first_match = nil
251
+
252
+ method_double_for(method_name).expectations.each do |expectation|
253
+ next unless yield expectation
254
+ return expectation unless expectation.called_max_times?
255
+ first_match ||= expectation
256
+ end
257
+
258
+ first_match
259
+ end
260
+
261
+ def find_matching_method_stub(method_name, *args)
262
+ method_double_for(method_name).stubs.find { |stub| stub.matches?(method_name, *args) }
263
+ end
264
+
265
+ def find_almost_matching_stub(method_name, *args)
266
+ method_double_for(method_name).stubs.find { |stub| stub.matches_name_but_not_args(method_name, *args) }
267
+ end
268
+ end
269
+
270
+ # @private
271
+ class TestDoubleProxy < Proxy
272
+ def reset
273
+ @method_doubles.clear
274
+ object.__disallow_further_usage!
275
+ super
276
+ end
277
+ end
278
+
279
+ # @private
280
+ class PartialDoubleProxy < Proxy
281
+ def original_method_handle_for(message)
282
+ if any_instance_class_recorder_observing_method?(@object.class, message)
283
+ message = ::RSpec::Mocks.space.
284
+ any_instance_recorder_for(@object.class).
285
+ build_alias_method_name(message)
286
+ end
287
+
288
+ ::RSpec::Support.method_handle_for(@object, message)
289
+ rescue NameError
290
+ nil
291
+ end
292
+
293
+ # @private
294
+ def add_simple_expectation(method_name, response, location)
295
+ method_double_for(method_name).configure_method
296
+ super
297
+ end
298
+
299
+ # @private
300
+ def add_simple_stub(method_name, response)
301
+ method_double_for(method_name).configure_method
302
+ super
303
+ end
304
+
305
+ # @private
306
+ def visibility_for(method_name)
307
+ # We fall back to :public because by default we allow undefined methods
308
+ # to be stubbed, and when we do so, we make them public.
309
+ MethodReference.method_visibility_for(@object, method_name) || :public
310
+ end
311
+
312
+ def reset
313
+ @method_doubles.each_value { |d| d.reset }
314
+ super
315
+ end
316
+
317
+ def message_received(message, *args, &block)
318
+ RSpec::Mocks.space.any_instance_recorders_from_ancestry_of(object).each do |subscriber|
319
+ subscriber.notify_received_message(object, message, args, block)
320
+ end
321
+ super
322
+ end
323
+
324
+ private
325
+
326
+ def any_instance_class_recorder_observing_method?(klass, method_name)
327
+ only_return_existing = true
328
+ recorder = ::RSpec::Mocks.space.any_instance_recorder_for(klass, only_return_existing)
329
+ return true if recorder && recorder.already_observing?(method_name)
330
+
331
+ superklass = klass.superclass
332
+ return false if superklass.nil?
333
+ any_instance_class_recorder_observing_method?(superklass, method_name)
334
+ end
335
+ end
336
+
337
+ # @private
338
+ # When we mock or stub a method on a class, we have to treat it a bit different,
339
+ # because normally singleton method definitions only affect the object on which
340
+ # they are defined, but on classes they affect subclasses, too. As a result,
341
+ # we need some special handling to get the original method.
342
+ module PartialClassDoubleProxyMethods
343
+ def initialize(source_space, *args)
344
+ @source_space = source_space
345
+ super(*args)
346
+ end
347
+
348
+ # Consider this situation:
349
+ #
350
+ # class A; end
351
+ # class B < A; end
352
+ #
353
+ # allow(A).to receive(:new)
354
+ # expect(B).to receive(:new).and_call_original
355
+ #
356
+ # When getting the original definition for `B.new`, we cannot rely purely on
357
+ # using `B.method(:new)` before our redefinition is defined on `B`, because
358
+ # `B.method(:new)` will return a method that will execute the stubbed version
359
+ # of the method on `A` since singleton methods on classes are in the lookup
360
+ # hierarchy.
361
+ #
362
+ # To do it properly, we need to find the original definition of `new` from `A`
363
+ # from _before_ `A` was stubbed, and we need to rebind it to `B` so that it will
364
+ # run with the proper `self`.
365
+ #
366
+ # That's what this method (together with `original_unbound_method_handle_from_ancestor_for`)
367
+ # does.
368
+ def original_method_handle_for(message)
369
+ unbound_method = superclass_proxy &&
370
+ superclass_proxy.original_unbound_method_handle_from_ancestor_for(message.to_sym)
371
+
372
+ return super unless unbound_method
373
+ unbound_method.bind(object)
374
+ # :nocov:
375
+ rescue TypeError
376
+ if RUBY_VERSION == '1.8.7'
377
+ # In MRI 1.8.7, a singleton method on a class cannot be rebound to its subclass
378
+ if unbound_method && unbound_method.owner.ancestors.first != unbound_method.owner
379
+ # This is a singleton method; we can't do anything with it
380
+ # But we can work around this using a different implementation
381
+ double = method_double_from_ancestor_for(message)
382
+ return object.method(double.method_stasher.stashed_method_name)
383
+ end
384
+ end
385
+ raise
386
+ # :nocov:
387
+ end
388
+
389
+ protected
390
+
391
+ def original_unbound_method_handle_from_ancestor_for(message)
392
+ double = method_double_from_ancestor_for(message)
393
+ double && double.original_method.unbind
394
+ end
395
+
396
+ def method_double_from_ancestor_for(message)
397
+ @method_doubles.fetch(message) do
398
+ # The fact that there is no method double for this message indicates
399
+ # that it has not been redefined by rspec-mocks. We need to continue
400
+ # looking up the ancestor chain.
401
+ return superclass_proxy &&
402
+ superclass_proxy.method_double_from_ancestor_for(message)
403
+ end
404
+ end
405
+
406
+ def superclass_proxy
407
+ return @superclass_proxy if defined?(@superclass_proxy)
408
+
409
+ if (superclass = object.superclass)
410
+ @superclass_proxy = @source_space.superclass_proxy_for(superclass)
411
+ else
412
+ @superclass_proxy = nil
413
+ end
414
+ end
415
+ end
416
+
417
+ # @private
418
+ class PartialClassDoubleProxy < PartialDoubleProxy
419
+ include PartialClassDoubleProxyMethods
420
+ end
421
+
422
+ # @private
423
+ class ProxyForNil < PartialDoubleProxy
424
+ def initialize(order_group)
425
+ set_expectation_behavior
426
+ super(nil, order_group)
427
+ end
428
+
429
+ attr_accessor :disallow_expectations
430
+ attr_accessor :warn_about_expectations
431
+
432
+ def add_message_expectation(method_name, opts={}, &block)
433
+ warn_or_raise!(method_name)
434
+ super
435
+ end
436
+
437
+ def add_negative_message_expectation(location, method_name, &implementation)
438
+ warn_or_raise!(method_name)
439
+ super
440
+ end
441
+
442
+ def add_stub(method_name, opts={}, &implementation)
443
+ warn_or_raise!(method_name)
444
+ super
445
+ end
446
+
447
+ private
448
+
449
+ def set_expectation_behavior
450
+ case RSpec::Mocks.configuration.allow_message_expectations_on_nil
451
+ when false
452
+ @warn_about_expectations = false
453
+ @disallow_expectations = true
454
+ when true
455
+ @warn_about_expectations = false
456
+ @disallow_expectations = false
457
+ else
458
+ @warn_about_expectations = true
459
+ @disallow_expectations = false
460
+ end
461
+ end
462
+
463
+ def warn_or_raise!(method_name)
464
+ # This method intentionally swallows the message when
465
+ # neither disallow_expectations nor warn_about_expectations
466
+ # are set to true.
467
+ if disallow_expectations
468
+ raise_error(method_name)
469
+ elsif warn_about_expectations
470
+ warn(method_name)
471
+ end
472
+ end
473
+
474
+ def warn(method_name)
475
+ warning_msg = @error_generator.expectation_on_nil_message(method_name)
476
+ RSpec.warning(warning_msg)
477
+ end
478
+
479
+ def raise_error(method_name)
480
+ @error_generator.raise_expectation_on_nil_error(method_name)
481
+ end
482
+ end
483
+ end
484
+ end
@@ -0,0 +1,238 @@
1
+ RSpec::Support.require_rspec_support 'reentrant_mutex'
2
+
3
+ module RSpec
4
+ module Mocks
5
+ # @private
6
+ # Provides a default space implementation for outside
7
+ # the scope of an example. Called "root" because it serves
8
+ # as the root of the space stack.
9
+ class RootSpace
10
+ def proxy_for(*_args)
11
+ raise_lifecycle_message
12
+ end
13
+
14
+ def any_instance_recorder_for(*_args)
15
+ raise_lifecycle_message
16
+ end
17
+
18
+ def any_instance_proxy_for(*_args)
19
+ raise_lifecycle_message
20
+ end
21
+
22
+ def register_constant_mutator(_mutator)
23
+ raise_lifecycle_message
24
+ end
25
+
26
+ def any_instance_recorders_from_ancestry_of(_object)
27
+ raise_lifecycle_message
28
+ end
29
+
30
+ def reset_all
31
+ end
32
+
33
+ def verify_all
34
+ end
35
+
36
+ def registered?(_object)
37
+ false
38
+ end
39
+
40
+ def superclass_proxy_for(*_args)
41
+ raise_lifecycle_message
42
+ end
43
+
44
+ def new_scope
45
+ Space.new
46
+ end
47
+
48
+ private
49
+
50
+ def raise_lifecycle_message
51
+ raise OutsideOfExampleError,
52
+ "The use of doubles or partial doubles from rspec-mocks outside of the per-test lifecycle is not supported."
53
+ end
54
+ end
55
+
56
+ # @private
57
+ class Space
58
+ attr_reader :proxies, :any_instance_recorders, :proxy_mutex, :any_instance_mutex
59
+
60
+ def initialize
61
+ @proxies = {}
62
+ @any_instance_recorders = {}
63
+ @constant_mutators = []
64
+ @expectation_ordering = OrderGroup.new
65
+ @proxy_mutex = new_mutex
66
+ @any_instance_mutex = new_mutex
67
+ end
68
+
69
+ def new_scope
70
+ NestedSpace.new(self)
71
+ end
72
+
73
+ def verify_all
74
+ proxies.values.each { |proxy| proxy.verify }
75
+ any_instance_recorders.each_value { |recorder| recorder.verify }
76
+ end
77
+
78
+ def reset_all
79
+ proxies.each_value { |proxy| proxy.reset }
80
+ @constant_mutators.reverse.each { |mut| mut.idempotently_reset }
81
+ any_instance_recorders.each_value { |recorder| recorder.stop_all_observation! }
82
+ any_instance_recorders.clear
83
+ end
84
+
85
+ def register_constant_mutator(mutator)
86
+ @constant_mutators << mutator
87
+ end
88
+
89
+ def constant_mutator_for(name)
90
+ @constant_mutators.find { |m| m.full_constant_name == name }
91
+ end
92
+
93
+ def any_instance_recorder_for(klass, only_return_existing=false)
94
+ any_instance_mutex.synchronize do
95
+ id = klass.__id__
96
+ any_instance_recorders.fetch(id) do
97
+ return nil if only_return_existing
98
+ any_instance_recorder_not_found_for(id, klass)
99
+ end
100
+ end
101
+ end
102
+
103
+ def any_instance_proxy_for(klass)
104
+ AnyInstance::Proxy.new(any_instance_recorder_for(klass), proxies_of(klass))
105
+ end
106
+
107
+ def proxies_of(klass)
108
+ proxies.values.select { |proxy| klass === proxy.object }
109
+ end
110
+
111
+ def proxy_for(object)
112
+ proxy_mutex.synchronize do
113
+ id = id_for(object)
114
+ proxies.fetch(id) { proxy_not_found_for(id, object) }
115
+ end
116
+ end
117
+
118
+ def superclass_proxy_for(klass)
119
+ proxy_mutex.synchronize do
120
+ id = id_for(klass)
121
+ proxies.fetch(id) { superclass_proxy_not_found_for(id, klass) }
122
+ end
123
+ end
124
+
125
+ alias ensure_registered proxy_for
126
+
127
+ def registered?(object)
128
+ proxies.key?(id_for object)
129
+ end
130
+
131
+ def any_instance_recorders_from_ancestry_of(object)
132
+ # Optimization: `any_instance` is a feature we generally
133
+ # recommend not using, so we can often early exit here
134
+ # without doing an O(N) linear search over the number of
135
+ # ancestors in the object's class hierarchy.
136
+ return [] if any_instance_recorders.empty?
137
+
138
+ # We access the ancestors through the singleton class, to avoid calling
139
+ # `class` in case `class` has been stubbed.
140
+ (class << object; ancestors; end).map do |klass|
141
+ any_instance_recorders[klass.__id__]
142
+ end.compact
143
+ end
144
+
145
+ private
146
+
147
+ def new_mutex
148
+ Support::ReentrantMutex.new
149
+ end
150
+
151
+ def proxy_not_found_for(id, object)
152
+ proxies[id] = case object
153
+ when NilClass then ProxyForNil.new(@expectation_ordering)
154
+ when TestDouble then object.__build_mock_proxy_unless_expired(@expectation_ordering)
155
+ when Class
156
+ class_proxy_with_callback_verification_strategy(object, CallbackInvocationStrategy.new)
157
+ else
158
+ if RSpec::Mocks.configuration.verify_partial_doubles?
159
+ VerifyingPartialDoubleProxy.new(object, @expectation_ordering)
160
+ else
161
+ PartialDoubleProxy.new(object, @expectation_ordering)
162
+ end
163
+ end
164
+ end
165
+
166
+ def superclass_proxy_not_found_for(id, object)
167
+ raise "superclass_proxy_not_found_for called with something that is not a class" unless Class === object
168
+ proxies[id] = class_proxy_with_callback_verification_strategy(object, NoCallbackInvocationStrategy.new)
169
+ end
170
+
171
+ def class_proxy_with_callback_verification_strategy(object, strategy)
172
+ if RSpec::Mocks.configuration.verify_partial_doubles?
173
+ VerifyingPartialClassDoubleProxy.new(
174
+ self,
175
+ object,
176
+ @expectation_ordering,
177
+ strategy
178
+ )
179
+ else
180
+ PartialClassDoubleProxy.new(self, object, @expectation_ordering)
181
+ end
182
+ end
183
+
184
+ def any_instance_recorder_not_found_for(id, klass)
185
+ any_instance_recorders[id] = AnyInstance::Recorder.new(klass)
186
+ end
187
+
188
+ if defined?(::BasicObject) && !::BasicObject.method_defined?(:__id__) # for 1.9.2
189
+ require 'securerandom'
190
+
191
+ def id_for(object)
192
+ id = object.__id__
193
+
194
+ return id if object.equal?(::ObjectSpace._id2ref(id))
195
+ # this suggests that object.__id__ is proxying through to some wrapped object
196
+
197
+ object.instance_exec do
198
+ @__id_for_rspec_mocks_space ||= ::SecureRandom.uuid
199
+ end
200
+ end
201
+ else
202
+ def id_for(object)
203
+ object.__id__
204
+ end
205
+ end
206
+ end
207
+
208
+ # @private
209
+ class NestedSpace < Space
210
+ def initialize(parent)
211
+ @parent = parent
212
+ super()
213
+ end
214
+
215
+ def proxies_of(klass)
216
+ super + @parent.proxies_of(klass)
217
+ end
218
+
219
+ def constant_mutator_for(name)
220
+ super || @parent.constant_mutator_for(name)
221
+ end
222
+
223
+ def registered?(object)
224
+ super || @parent.registered?(object)
225
+ end
226
+
227
+ private
228
+
229
+ def proxy_not_found_for(id, object)
230
+ @parent.proxies[id] || super
231
+ end
232
+
233
+ def any_instance_recorder_not_found_for(id, klass)
234
+ @parent.any_instance_recorders[id] || super
235
+ end
236
+ end
237
+ end
238
+ end