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,83 @@
1
+ module RSpec
2
+ module Mocks
3
+ module AnyInstance
4
+ # @private
5
+ class MessageChains
6
+ def initialize
7
+ @chains_by_method_name = Hash.new { |h, k| h[k] = [] }
8
+ end
9
+
10
+ # @private
11
+ def [](method_name)
12
+ @chains_by_method_name[method_name]
13
+ end
14
+
15
+ # @private
16
+ def add(method_name, chain)
17
+ @chains_by_method_name[method_name] << chain
18
+ chain
19
+ end
20
+
21
+ # @private
22
+ def remove_stub_chains_for!(method_name)
23
+ @chains_by_method_name[method_name].reject! do |chain|
24
+ StubChain === chain
25
+ end
26
+ end
27
+
28
+ # @private
29
+ def has_expectation?(method_name)
30
+ @chains_by_method_name[method_name].find do |chain|
31
+ ExpectationChain === chain
32
+ end
33
+ end
34
+
35
+ # @private
36
+ def each_unfulfilled_expectation_matching(method_name, *args)
37
+ @chains_by_method_name[method_name].each do |chain|
38
+ yield chain if !chain.expectation_fulfilled? && chain.matches_args?(*args)
39
+ end
40
+ end
41
+
42
+ # @private
43
+ def all_expectations_fulfilled?
44
+ @chains_by_method_name.all? do |_method_name, chains|
45
+ chains.all? { |chain| chain.expectation_fulfilled? }
46
+ end
47
+ end
48
+
49
+ # @private
50
+ def unfulfilled_expectations
51
+ @chains_by_method_name.map do |method_name, chains|
52
+ method_name.to_s if ExpectationChain === chains.last unless chains.last.expectation_fulfilled?
53
+ end.compact
54
+ end
55
+
56
+ # @private
57
+ def received_expected_message!(method_name)
58
+ @chains_by_method_name[method_name].each do |chain|
59
+ chain.expectation_fulfilled!
60
+ end
61
+ end
62
+
63
+ # @private
64
+ def playback!(instance, method_name)
65
+ raise_if_second_instance_to_receive_message(instance)
66
+ @chains_by_method_name[method_name].each do |chain|
67
+ chain.playback!(instance)
68
+ end
69
+ end
70
+
71
+ private
72
+
73
+ def raise_if_second_instance_to_receive_message(instance)
74
+ @instance_with_expectation ||= instance if ExpectationChain === instance
75
+ return unless ExpectationChain === instance
76
+ return if @instance_with_expectation.equal?(instance)
77
+
78
+ AnyInstance.error_generator.raise_second_instance_received_message_error(unfulfilled_expectations)
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,116 @@
1
+ module RSpec
2
+ module Mocks
3
+ module AnyInstance
4
+ # @private
5
+ # The `AnyInstance::Recorder` is responsible for redefining the klass's
6
+ # instance method in order to add any stubs/expectations the first time
7
+ # the method is called. It's not capable of updating a stub on an instance
8
+ # that's already been previously stubbed (either directly, or via
9
+ # `any_instance`).
10
+ #
11
+ # This proxy sits in front of the recorder and delegates both to it
12
+ # and to the `RSpec::Mocks::Proxy` for each already mocked or stubbed
13
+ # instance of the class, in order to propogates changes to the instances.
14
+ #
15
+ # Note that unlike `RSpec::Mocks::Proxy`, this proxy class is stateless
16
+ # and is not persisted in `RSpec::Mocks.space`.
17
+ #
18
+ # Proxying for the message expectation fluent interface (typically chained
19
+ # off of the return value of one of these methods) is provided by the
20
+ # `FluentInterfaceProxy` class below.
21
+ class Proxy
22
+ def initialize(recorder, target_proxies)
23
+ @recorder = recorder
24
+ @target_proxies = target_proxies
25
+ end
26
+
27
+ def klass
28
+ @recorder.klass
29
+ end
30
+
31
+ def stub(method_name_or_method_map, &block)
32
+ if Hash === method_name_or_method_map
33
+ method_name_or_method_map.each do |method_name, return_value|
34
+ stub(method_name).and_return(return_value)
35
+ end
36
+ else
37
+ perform_proxying(__method__, [method_name_or_method_map], block) do |proxy|
38
+ proxy.add_stub(method_name_or_method_map, &block)
39
+ end
40
+ end
41
+ end
42
+
43
+ def unstub(method_name)
44
+ perform_proxying(__method__, [method_name], nil) do |proxy|
45
+ proxy.remove_stub_if_present(method_name)
46
+ end
47
+ end
48
+
49
+ def stub_chain(*chain, &block)
50
+ perform_proxying(__method__, chain, block) do |proxy|
51
+ Mocks::StubChain.stub_chain_on(proxy.object, *chain, &block)
52
+ end
53
+ end
54
+
55
+ def expect_chain(*chain, &block)
56
+ perform_proxying(__method__, chain, block) do |proxy|
57
+ Mocks::ExpectChain.expect_chain_on(proxy.object, *chain, &block)
58
+ end
59
+ end
60
+
61
+ def should_receive(method_name, &block)
62
+ perform_proxying(__method__, [method_name], block) do |proxy|
63
+ # Yeah, this is a bit odd...but if we used `add_message_expectation`
64
+ # then it would act like `expect_every_instance_of(klass).to receive`.
65
+ # The any_instance recorder takes care of validating that an instance
66
+ # received the message.
67
+ proxy.add_stub(method_name, &block)
68
+ end
69
+ end
70
+
71
+ def should_not_receive(method_name, &block)
72
+ perform_proxying(__method__, [method_name], block) do |proxy|
73
+ proxy.add_message_expectation(method_name, &block).never
74
+ end
75
+ end
76
+
77
+ private
78
+
79
+ def perform_proxying(method_name, args, block, &target_proxy_block)
80
+ recorder_value = @recorder.__send__(method_name, *args, &block)
81
+ proxy_values = @target_proxies.map(&target_proxy_block)
82
+ FluentInterfaceProxy.new([recorder_value] + proxy_values)
83
+ end
84
+ end
85
+
86
+ # @private
87
+ # Delegates messages to each of the given targets in order to
88
+ # provide the fluent interface that is available off of message
89
+ # expectations when dealing with `any_instance`.
90
+ #
91
+ # `targets` will typically contain 1 of the `AnyInstance::Recorder`
92
+ # return values and N `MessageExpectation` instances (one per instance
93
+ # of the `any_instance` klass).
94
+ class FluentInterfaceProxy
95
+ def initialize(targets)
96
+ @targets = targets
97
+ end
98
+
99
+ if RUBY_VERSION.to_f > 1.8
100
+ def respond_to_missing?(method_name, include_private=false)
101
+ super || @targets.first.respond_to?(method_name, include_private)
102
+ end
103
+ else
104
+ def respond_to?(method_name, include_private=false)
105
+ super || @targets.first.respond_to?(method_name, include_private)
106
+ end
107
+ end
108
+
109
+ def method_missing(*args, &block)
110
+ return_values = @targets.map { |t| t.__send__(*args, &block) }
111
+ FluentInterfaceProxy.new(return_values)
112
+ end
113
+ end
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,268 @@
1
+ module RSpec
2
+ module Mocks
3
+ module AnyInstance
4
+ # Given a class `TheClass`, `TheClass.any_instance` returns a `Recorder`,
5
+ # which records stubs and message expectations for later playback on
6
+ # instances of `TheClass`.
7
+ #
8
+ # Further constraints are stored in instances of [Chain](Chain).
9
+ #
10
+ # @see AnyInstance
11
+ # @see Chain
12
+ class Recorder
13
+ # @private
14
+ attr_reader :message_chains, :stubs, :klass
15
+
16
+ def initialize(klass)
17
+ @message_chains = MessageChains.new
18
+ @stubs = Hash.new { |hash, key| hash[key] = [] }
19
+ @observed_methods = []
20
+ @played_methods = {}
21
+ @backed_up_method_owner = {}
22
+ @klass = klass
23
+ @expectation_set = false
24
+ end
25
+
26
+ # Initializes the recording a stub to be played back against any
27
+ # instance of this object that invokes the submitted method.
28
+ #
29
+ # @see Methods#stub
30
+ def stub(method_name, &block)
31
+ observe!(method_name)
32
+ message_chains.add(method_name, StubChain.new(self, method_name, &block))
33
+ end
34
+
35
+ # Initializes the recording a stub chain to be played back against any
36
+ # instance of this object that invokes the method matching the first
37
+ # argument.
38
+ #
39
+ # @see Methods#stub_chain
40
+ def stub_chain(*method_names_and_optional_return_values, &block)
41
+ normalize_chain(*method_names_and_optional_return_values) do |method_name, args|
42
+ observe!(method_name)
43
+ message_chains.add(method_name, StubChainChain.new(self, *args, &block))
44
+ end
45
+ end
46
+
47
+ # @private
48
+ def expect_chain(*method_names_and_optional_return_values, &block)
49
+ @expectation_set = true
50
+ normalize_chain(*method_names_and_optional_return_values) do |method_name, args|
51
+ observe!(method_name)
52
+ message_chains.add(method_name, ExpectChainChain.new(self, *args, &block))
53
+ end
54
+ end
55
+
56
+ # Initializes the recording a message expectation to be played back
57
+ # against any instance of this object that invokes the submitted
58
+ # method.
59
+ #
60
+ # @see Methods#should_receive
61
+ def should_receive(method_name, &block)
62
+ @expectation_set = true
63
+ observe!(method_name)
64
+ message_chains.add(method_name, PositiveExpectationChain.new(self, method_name, &block))
65
+ end
66
+
67
+ # The opposite of `should_receive`
68
+ #
69
+ # @see Methods#should_not_receive
70
+ def should_not_receive(method_name, &block)
71
+ should_receive(method_name, &block).never
72
+ end
73
+
74
+ # Removes any previously recorded stubs, stub_chains or message
75
+ # expectations that use `method_name`.
76
+ #
77
+ # @see Methods#unstub
78
+ def unstub(method_name)
79
+ unless @observed_methods.include?(method_name.to_sym)
80
+ AnyInstance.error_generator.raise_method_not_stubbed_error(method_name)
81
+ end
82
+ message_chains.remove_stub_chains_for!(method_name)
83
+ stubs[method_name].clear
84
+ stop_observing!(method_name) unless message_chains.has_expectation?(method_name)
85
+ end
86
+
87
+ # @api private
88
+ #
89
+ # Used internally to verify that message expectations have been
90
+ # fulfilled.
91
+ def verify
92
+ return unless @expectation_set
93
+ return if message_chains.all_expectations_fulfilled?
94
+
95
+ AnyInstance.error_generator.raise_second_instance_received_message_error(message_chains.unfulfilled_expectations)
96
+ end
97
+
98
+ # @private
99
+ def stop_all_observation!
100
+ @observed_methods.each { |method_name| restore_method!(method_name) }
101
+ end
102
+
103
+ # @private
104
+ def playback!(instance, method_name)
105
+ RSpec::Mocks.space.ensure_registered(instance)
106
+ message_chains.playback!(instance, method_name)
107
+ @played_methods[method_name] = instance
108
+ received_expected_message!(method_name) if message_chains.has_expectation?(method_name)
109
+ end
110
+
111
+ # @private
112
+ def instance_that_received(method_name)
113
+ @played_methods[method_name]
114
+ end
115
+
116
+ # @private
117
+ def build_alias_method_name(method_name)
118
+ "__#{method_name}_without_any_instance__"
119
+ end
120
+
121
+ # @private
122
+ def already_observing?(method_name)
123
+ @observed_methods.include?(method_name) || super_class_observing?(method_name)
124
+ end
125
+
126
+ # @private
127
+ def notify_received_message(_object, message, args, _blk)
128
+ has_expectation = false
129
+
130
+ message_chains.each_unfulfilled_expectation_matching(message, *args) do |expectation|
131
+ has_expectation = true
132
+ expectation.expectation_fulfilled!
133
+ end
134
+
135
+ return unless has_expectation
136
+
137
+ restore_method!(message)
138
+ mark_invoked!(message)
139
+ end
140
+
141
+ protected
142
+
143
+ def stop_observing!(method_name)
144
+ restore_method!(method_name)
145
+ @observed_methods.delete(method_name)
146
+ super_class_observers_for(method_name).each do |ancestor|
147
+ ::RSpec::Mocks.space.
148
+ any_instance_recorder_for(ancestor).stop_observing!(method_name)
149
+ end
150
+ end
151
+
152
+ private
153
+
154
+ def ancestor_is_an_observer?(method_name)
155
+ lambda do |ancestor|
156
+ unless ancestor == @klass
157
+ ::RSpec::Mocks.space.
158
+ any_instance_recorder_for(ancestor).already_observing?(method_name)
159
+ end
160
+ end
161
+ end
162
+
163
+ def super_class_observers_for(method_name)
164
+ @klass.ancestors.select(&ancestor_is_an_observer?(method_name))
165
+ end
166
+
167
+ def super_class_observing?(method_name)
168
+ @klass.ancestors.any?(&ancestor_is_an_observer?(method_name))
169
+ end
170
+
171
+ def normalize_chain(*args)
172
+ args.shift.to_s.split('.').map { |s| s.to_sym }.reverse.each { |a| args.unshift a }
173
+ yield args.first, args
174
+ end
175
+
176
+ def received_expected_message!(method_name)
177
+ message_chains.received_expected_message!(method_name)
178
+ restore_method!(method_name)
179
+ mark_invoked!(method_name)
180
+ end
181
+
182
+ def restore_method!(method_name)
183
+ if public_protected_or_private_method_defined?(build_alias_method_name(method_name))
184
+ restore_original_method!(method_name)
185
+ else
186
+ remove_dummy_method!(method_name)
187
+ end
188
+ end
189
+
190
+ def restore_original_method!(method_name)
191
+ return unless @klass.instance_method(method_name).owner == @klass
192
+
193
+ alias_method_name = build_alias_method_name(method_name)
194
+ @klass.class_exec(@backed_up_method_owner) do |backed_up_method_owner|
195
+ remove_method method_name
196
+ alias_method method_name, alias_method_name if backed_up_method_owner[method_name.to_sym] == self
197
+ remove_method alias_method_name
198
+ end
199
+ end
200
+
201
+ def remove_dummy_method!(method_name)
202
+ @klass.class_exec do
203
+ remove_method method_name
204
+ end
205
+ end
206
+
207
+ def backup_method!(method_name)
208
+ return unless public_protected_or_private_method_defined?(method_name)
209
+
210
+ alias_method_name = build_alias_method_name(method_name)
211
+ @backed_up_method_owner[method_name.to_sym] ||= @klass.instance_method(method_name).owner
212
+ @klass.class_exec do
213
+ alias_method alias_method_name, method_name
214
+ end
215
+ end
216
+
217
+ def public_protected_or_private_method_defined?(method_name)
218
+ MethodReference.method_defined_at_any_visibility?(@klass, method_name)
219
+ end
220
+
221
+ def observe!(method_name)
222
+ allow_no_prepended_module_definition_of(method_name)
223
+
224
+ if RSpec::Mocks.configuration.verify_partial_doubles?
225
+ unless public_protected_or_private_method_defined?(method_name)
226
+ AnyInstance.error_generator.raise_does_not_implement_error(@klass, method_name)
227
+ end
228
+ end
229
+
230
+ stop_observing!(method_name) if already_observing?(method_name)
231
+ @observed_methods << method_name
232
+ backup_method!(method_name)
233
+ recorder = self
234
+ @klass.__send__(:define_method, method_name) do |*args, &blk|
235
+ recorder.playback!(self, method_name)
236
+ __send__(method_name, *args, &blk)
237
+ end
238
+ end
239
+
240
+ def mark_invoked!(method_name)
241
+ backup_method!(method_name)
242
+ recorder = self
243
+ @klass.__send__(:define_method, method_name) do |*_args, &_blk|
244
+ invoked_instance = recorder.instance_that_received(method_name)
245
+ inspect = "#<#{self.class}:#{object_id} #{instance_variables.map { |name| "#{name}=#{instance_variable_get name}" }.join(', ')}>"
246
+ AnyInstance.error_generator.raise_message_already_received_by_other_instance_error(
247
+ method_name, inspect, invoked_instance
248
+ )
249
+ end
250
+ end
251
+
252
+ if Support::RubyFeatures.module_prepends_supported?
253
+ def allow_no_prepended_module_definition_of(method_name)
254
+ prepended_modules = RSpec::Mocks::Proxy.prepended_modules_of(@klass)
255
+ problem_mod = prepended_modules.find { |mod| mod.method_defined?(method_name) }
256
+ return unless problem_mod
257
+
258
+ AnyInstance.error_generator.raise_not_supported_with_prepend_error(method_name, problem_mod)
259
+ end
260
+ else
261
+ def allow_no_prepended_module_definition_of(_method_name)
262
+ # nothing to do; prepends aren't supported on this version of ruby
263
+ end
264
+ end
265
+ end
266
+ end
267
+ end
268
+ end
@@ -0,0 +1,46 @@
1
+ module RSpec
2
+ module Mocks
3
+ module AnyInstance
4
+ # @private
5
+ class StubChain < Chain
6
+ # @private
7
+ def expectation_fulfilled?
8
+ true
9
+ end
10
+
11
+ private
12
+
13
+ def create_message_expectation_on(instance)
14
+ proxy = ::RSpec::Mocks.space.proxy_for(instance)
15
+ method_name, opts = @expectation_args
16
+ opts = (opts || {}).merge(:expected_form => IGNORED_BACKTRACE_LINE)
17
+
18
+ stub = proxy.add_stub(method_name, opts, &@expectation_block)
19
+ @recorder.stubs[stub.message] << stub
20
+
21
+ if RSpec::Mocks.configuration.yield_receiver_to_any_instance_implementation_blocks?
22
+ stub.and_yield_receiver_to_implementation
23
+ end
24
+
25
+ stub
26
+ end
27
+
28
+ def invocation_order
29
+ @invocation_order ||= {
30
+ :with => [nil],
31
+ :and_return => [:with, nil],
32
+ :and_raise => [:with, nil],
33
+ :and_yield => [:with, nil],
34
+ :and_call_original => [:with, nil],
35
+ :and_wrap_original => [:with, nil]
36
+ }
37
+ end
38
+
39
+ def verify_invocation_order(rspec_method_name, *_args, &_block)
40
+ return if invocation_order[rspec_method_name].include?(last_message)
41
+ raise NoMethodError, "Undefined method #{rspec_method_name}"
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,27 @@
1
+ module RSpec
2
+ module Mocks
3
+ module AnyInstance
4
+ # @private
5
+ class StubChainChain < StubChain
6
+ def initialize(*args)
7
+ super
8
+ @expectation_fulfilled = false
9
+ end
10
+
11
+ private
12
+
13
+ def create_message_expectation_on(instance)
14
+ ::RSpec::Mocks::StubChain.stub_chain_on(instance, *@expectation_args, &@expectation_block)
15
+ end
16
+
17
+ def invocation_order
18
+ @invocation_order ||= {
19
+ :and_return => [nil],
20
+ :and_raise => [nil],
21
+ :and_yield => [nil]
22
+ }
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,11 @@
1
+ %w[
2
+ any_instance/chain
3
+ any_instance/error_generator
4
+ any_instance/stub_chain
5
+ any_instance/stub_chain_chain
6
+ any_instance/expect_chain_chain
7
+ any_instance/expectation_chain
8
+ any_instance/message_chains
9
+ any_instance/recorder
10
+ any_instance/proxy
11
+ ].each { |f| RSpec::Support.require_rspec_mocks(f) }
@@ -0,0 +1,100 @@
1
+ # We intentionally do not use the `RSpec::Support.require...` methods
2
+ # here so that this file can be loaded individually, as documented
3
+ # below.
4
+ require 'rspec/mocks/argument_matchers'
5
+ require 'rspec/support/fuzzy_matcher'
6
+
7
+ module RSpec
8
+ module Mocks
9
+ # Wrapper for matching arguments against a list of expected values. Used by
10
+ # the `with` method on a `MessageExpectation`:
11
+ #
12
+ # expect(object).to receive(:message).with(:a, 'b', 3)
13
+ # object.message(:a, 'b', 3)
14
+ #
15
+ # Values passed to `with` can be literal values or argument matchers that
16
+ # match against the real objects .e.g.
17
+ #
18
+ # expect(object).to receive(:message).with(hash_including(:a => 'b'))
19
+ #
20
+ # Can also be used directly to match the contents of any `Array`. This
21
+ # enables 3rd party mocking libs to take advantage of rspec's argument
22
+ # matching without using the rest of rspec-mocks.
23
+ #
24
+ # require 'rspec/mocks/argument_list_matcher'
25
+ # include RSpec::Mocks::ArgumentMatchers
26
+ #
27
+ # arg_list_matcher = RSpec::Mocks::ArgumentListMatcher.new(123, hash_including(:a => 'b'))
28
+ # arg_list_matcher.args_match?(123, :a => 'b')
29
+ #
30
+ # This class is immutable.
31
+ #
32
+ # @see ArgumentMatchers
33
+ class ArgumentListMatcher
34
+ # @private
35
+ attr_reader :expected_args
36
+
37
+ # @api public
38
+ # @param [Array] expected_args a list of expected literals and/or argument matchers
39
+ #
40
+ # Initializes an `ArgumentListMatcher` with a collection of literal
41
+ # values and/or argument matchers.
42
+ #
43
+ # @see ArgumentMatchers
44
+ # @see #args_match?
45
+ def initialize(*expected_args)
46
+ @expected_args = expected_args
47
+ ensure_expected_args_valid!
48
+ end
49
+
50
+ # @api public
51
+ # @param [Array] args
52
+ #
53
+ # Matches each element in the `expected_args` against the element in the same
54
+ # position of the arguments passed to `new`.
55
+ #
56
+ # @see #initialize
57
+ def args_match?(*args)
58
+ Support::FuzzyMatcher.values_match?(resolve_expected_args_based_on(args), args)
59
+ end
60
+
61
+ # @private
62
+ # Resolves abstract arg placeholders like `no_args` and `any_args` into
63
+ # a more concrete arg list based on the provided `actual_args`.
64
+ def resolve_expected_args_based_on(actual_args)
65
+ return [] if [ArgumentMatchers::NoArgsMatcher::INSTANCE] == expected_args
66
+
67
+ any_args_index = expected_args.index { |a| ArgumentMatchers::AnyArgsMatcher::INSTANCE == a }
68
+ return expected_args unless any_args_index
69
+
70
+ replace_any_args_with_splat_of_anything(any_args_index, actual_args.count)
71
+ end
72
+
73
+ private
74
+
75
+ def replace_any_args_with_splat_of_anything(before_count, actual_args_count)
76
+ any_args_count = actual_args_count - expected_args.count + 1
77
+ after_count = expected_args.count - before_count - 1
78
+
79
+ any_args = 1.upto(any_args_count).map { ArgumentMatchers::AnyArgMatcher::INSTANCE }
80
+ expected_args.first(before_count) + any_args + expected_args.last(after_count)
81
+ end
82
+
83
+ def ensure_expected_args_valid!
84
+ if expected_args.count { |a| ArgumentMatchers::AnyArgsMatcher::INSTANCE == a } > 1
85
+ raise ArgumentError, "`any_args` can only be passed to " \
86
+ "`with` once but you have passed it multiple times."
87
+ elsif expected_args.count > 1 && expected_args.any? { |a| ArgumentMatchers::NoArgsMatcher::INSTANCE == a }
88
+ raise ArgumentError, "`no_args` can only be passed as a " \
89
+ "singleton argument to `with` (i.e. `with(no_args)`), " \
90
+ "but you have passed additional arguments."
91
+ end
92
+ end
93
+
94
+ # Value that will match all argument lists.
95
+ #
96
+ # @private
97
+ MATCH_ALL = new(ArgumentMatchers::AnyArgsMatcher::INSTANCE)
98
+ end
99
+ end
100
+ end