hatena_bookmark_client_for_ruby 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 (453) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +7 -0
  5. data/Gemfile +4 -0
  6. data/Gemfile.lock +35 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +39 -0
  9. data/Rakefile +6 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/hatena_bookmark_client_for_ruby.gemspec +30 -0
  13. data/lib/hatena_bookmark_client_for_ruby.rb +10 -0
  14. data/lib/hatena_bookmark_client_for_ruby/version.rb +3 -0
  15. data/shell/exe/sample +5 -0
  16. data/vendor/bundle/ruby/2.6.0/bin/htmldiff +29 -0
  17. data/vendor/bundle/ruby/2.6.0/bin/ldiff +29 -0
  18. data/vendor/bundle/ruby/2.6.0/bin/rake +27 -0
  19. data/vendor/bundle/ruby/2.6.0/bin/rspec +27 -0
  20. data/vendor/bundle/ruby/2.6.0/cache/diff-lcs-1.3.gem +0 -0
  21. data/vendor/bundle/ruby/2.6.0/cache/rake-10.5.0.gem +0 -0
  22. data/vendor/bundle/ruby/2.6.0/cache/rspec-3.8.0.gem +0 -0
  23. data/vendor/bundle/ruby/2.6.0/cache/rspec-core-3.8.0.gem +0 -0
  24. data/vendor/bundle/ruby/2.6.0/cache/rspec-expectations-3.8.2.gem +0 -0
  25. data/vendor/bundle/ruby/2.6.0/cache/rspec-mocks-3.8.0.gem +0 -0
  26. data/vendor/bundle/ruby/2.6.0/cache/rspec-support-3.8.0.gem +0 -0
  27. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/.rspec +1 -0
  28. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/Code-of-Conduct.md +74 -0
  29. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/Contributing.md +83 -0
  30. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/History.md +220 -0
  31. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/License.md +39 -0
  32. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/Manifest.txt +37 -0
  33. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/README.rdoc +84 -0
  34. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/Rakefile +57 -0
  35. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/autotest/discover.rb +1 -0
  36. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/bin/htmldiff +32 -0
  37. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/bin/ldiff +6 -0
  38. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/docs/COPYING.txt +339 -0
  39. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/docs/artistic.txt +127 -0
  40. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff-lcs.rb +3 -0
  41. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs.rb +725 -0
  42. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +7 -0
  43. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +37 -0
  44. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +322 -0
  45. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +181 -0
  46. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +149 -0
  47. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +276 -0
  48. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +307 -0
  49. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +167 -0
  50. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +5 -0
  51. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/change_spec.rb +65 -0
  52. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/diff_spec.rb +47 -0
  53. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +50 -0
  54. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +51 -0
  55. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/hunk_spec.rb +72 -0
  56. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/issues_spec.rb +49 -0
  57. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/lcs_spec.rb +56 -0
  58. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/ldiff_spec.rb +47 -0
  59. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/patch_spec.rb +422 -0
  60. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/sdiff_spec.rb +214 -0
  61. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/spec_helper.rb +321 -0
  62. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +310 -0
  63. data/vendor/bundle/ruby/2.6.0/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +139 -0
  64. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/.autotest +7 -0
  65. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/.rubocop.yml +27 -0
  66. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/.togglerc +7 -0
  67. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/CONTRIBUTING.rdoc +38 -0
  68. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/History.rdoc +659 -0
  69. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/MIT-LICENSE +21 -0
  70. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/Manifest.txt +166 -0
  71. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/README.rdoc +139 -0
  72. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/Rakefile +81 -0
  73. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/bin/rake +33 -0
  74. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/command_line_usage.rdoc +158 -0
  75. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/example/Rakefile1 +38 -0
  76. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/example/Rakefile2 +35 -0
  77. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/example/a.c +6 -0
  78. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/example/b.c +6 -0
  79. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/example/main.c +11 -0
  80. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/glossary.rdoc +42 -0
  81. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/jamis.rb +591 -0
  82. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/proto_rake.rdoc +127 -0
  83. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/rake.1 +141 -0
  84. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/rakefile.rdoc +624 -0
  85. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/rational.rdoc +151 -0
  86. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
  87. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
  88. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
  89. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
  90. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
  91. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
  92. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
  93. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
  94. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
  95. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
  96. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
  97. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
  98. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
  99. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
  100. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
  101. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +37 -0
  102. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
  103. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
  104. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
  105. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
  106. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
  107. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
  108. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +60 -0
  109. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +55 -0
  110. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +64 -0
  111. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
  112. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +58 -0
  113. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +53 -0
  114. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
  115. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
  116. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake.rb +79 -0
  117. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/alt_system.rb +110 -0
  118. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/application.rb +790 -0
  119. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/backtrace.rb +23 -0
  120. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/clean.rb +76 -0
  121. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/cloneable.rb +16 -0
  122. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/contrib/.document +1 -0
  123. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +21 -0
  124. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +137 -0
  125. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +81 -0
  126. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  127. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +61 -0
  128. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/contrib/sys.rb +4 -0
  129. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/cpu_counter.rb +125 -0
  130. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/default_loader.rb +14 -0
  131. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/dsl_definition.rb +201 -0
  132. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/early_time.rb +21 -0
  133. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/ext/core.rb +25 -0
  134. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/ext/module.rb +2 -0
  135. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/ext/pathname.rb +25 -0
  136. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/ext/string.rb +175 -0
  137. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/ext/time.rb +18 -0
  138. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/file_creation_task.rb +24 -0
  139. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/file_list.rb +428 -0
  140. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/file_task.rb +46 -0
  141. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/file_utils.rb +128 -0
  142. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +144 -0
  143. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/gempackagetask.rb +4 -0
  144. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/invocation_chain.rb +56 -0
  145. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +16 -0
  146. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/late_time.rb +17 -0
  147. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/linked_list.rb +103 -0
  148. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +53 -0
  149. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/multi_task.rb +13 -0
  150. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/name_space.rb +38 -0
  151. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/packagetask.rb +199 -0
  152. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/pathmap.rb +3 -0
  153. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/phony.rb +15 -0
  154. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/private_reader.rb +20 -0
  155. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/promise.rb +99 -0
  156. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/pseudo_status.rb +29 -0
  157. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/rake_module.rb +38 -0
  158. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +22 -0
  159. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/rdoctask.rb +4 -0
  160. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +29 -0
  161. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
  162. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/runtest.rb +27 -0
  163. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/scope.rb +42 -0
  164. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/task.rb +383 -0
  165. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/task_argument_error.rb +7 -0
  166. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/task_arguments.rb +98 -0
  167. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/task_manager.rb +307 -0
  168. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/tasklib.rb +24 -0
  169. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/testtask.rb +213 -0
  170. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/thread_history_display.rb +48 -0
  171. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/thread_pool.rb +164 -0
  172. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/trace_output.rb +22 -0
  173. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/version.rb +7 -0
  174. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/lib/rake/win32.rb +56 -0
  175. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/rakelib/publish.rake +20 -0
  176. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/rakelib/test_times.rake +25 -0
  177. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/file_creation.rb +34 -0
  178. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/helper.rb +129 -0
  179. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/support/rakefile_definitions.rb +478 -0
  180. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/support/ruby_runner.rb +34 -0
  181. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_private_reader.rb +42 -0
  182. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake.rb +40 -0
  183. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_application.rb +643 -0
  184. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_application_options.rb +468 -0
  185. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_backtrace.rb +119 -0
  186. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_clean.rb +61 -0
  187. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +68 -0
  188. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_definitions.rb +84 -0
  189. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_directory_task.rb +76 -0
  190. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_dsl.rb +40 -0
  191. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_early_time.rb +31 -0
  192. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_extension.rb +59 -0
  193. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +56 -0
  194. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_file_list.rb +670 -0
  195. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +8 -0
  196. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_file_task.rb +197 -0
  197. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_file_utils.rb +314 -0
  198. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_ftp_file.rb +74 -0
  199. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_functional.rb +482 -0
  200. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +64 -0
  201. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_late_time.rb +18 -0
  202. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_linked_list.rb +84 -0
  203. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +46 -0
  204. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_multi_task.rb +64 -0
  205. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_name_space.rb +57 -0
  206. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_package_task.rb +79 -0
  207. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_path_map.rb +168 -0
  208. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +34 -0
  209. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +18 -0
  210. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +15 -0
  211. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +21 -0
  212. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +20 -0
  213. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +26 -0
  214. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_require.rb +40 -0
  215. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_rules.rb +388 -0
  216. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_scope.rb +44 -0
  217. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_task.rb +393 -0
  218. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +119 -0
  219. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_task_arguments.rb +127 -0
  220. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_task_lib.rb +9 -0
  221. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_task_manager.rb +178 -0
  222. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
  223. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +172 -0
  224. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_test_task.rb +146 -0
  225. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_thread_pool.rb +145 -0
  226. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +71 -0
  227. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_rake_win32.rb +72 -0
  228. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_thread_history_display.rb +101 -0
  229. data/vendor/bundle/ruby/2.6.0/gems/rake-10.5.0/test/test_trace_output.rb +52 -0
  230. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.8.0/LICENSE.md +27 -0
  231. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.8.0/README.md +43 -0
  232. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.8.0/lib/rspec.rb +3 -0
  233. data/vendor/bundle/ruby/2.6.0/gems/rspec-3.8.0/lib/rspec/version.rb +5 -0
  234. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/.document +5 -0
  235. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/.yardopts +8 -0
  236. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/Changelog.md +2221 -0
  237. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/LICENSE.md +26 -0
  238. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/README.md +384 -0
  239. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/exe/rspec +4 -0
  240. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/autorun.rb +3 -0
  241. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core.rb +185 -0
  242. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/backtrace_formatter.rb +65 -0
  243. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/bisect/coordinator.rb +62 -0
  244. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/bisect/example_minimizer.rb +173 -0
  245. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/bisect/fork_runner.rb +134 -0
  246. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/bisect/server.rb +61 -0
  247. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/bisect/shell_command.rb +126 -0
  248. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/bisect/shell_runner.rb +73 -0
  249. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/bisect/utilities.rb +58 -0
  250. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/configuration.rb +2289 -0
  251. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/configuration_options.rb +233 -0
  252. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/drb.rb +113 -0
  253. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/dsl.rb +98 -0
  254. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb +653 -0
  255. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb +885 -0
  256. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/example_status_persister.rb +235 -0
  257. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/filter_manager.rb +231 -0
  258. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/flat_map.rb +20 -0
  259. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters.rb +269 -0
  260. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
  261. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/base_formatter.rb +70 -0
  262. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
  263. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
  264. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
  265. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/console_codes.rb +68 -0
  266. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
  267. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/documentation_formatter.rb +70 -0
  268. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/exception_presenter.rb +497 -0
  269. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  270. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/helpers.rb +110 -0
  271. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/html_formatter.rb +153 -0
  272. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/html_printer.rb +414 -0
  273. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
  274. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/json_formatter.rb +102 -0
  275. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/profile_formatter.rb +68 -0
  276. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/progress_formatter.rb +29 -0
  277. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/protocol.rb +182 -0
  278. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
  279. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  280. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb +624 -0
  281. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/invocations.rb +87 -0
  282. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/memoized_helpers.rb +535 -0
  283. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/metadata.rb +499 -0
  284. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/metadata_filter.rb +255 -0
  285. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
  286. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  287. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  288. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/null.rb +14 -0
  289. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  290. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  291. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/notifications.rb +521 -0
  292. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/option_parser.rb +309 -0
  293. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/ordering.rb +158 -0
  294. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/output_wrapper.rb +29 -0
  295. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/pending.rb +165 -0
  296. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/profiler.rb +34 -0
  297. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/project_initializer.rb +48 -0
  298. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/project_initializer/.rspec +1 -0
  299. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
  300. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/rake_task.rb +168 -0
  301. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/reporter.rb +257 -0
  302. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/ruby_project.rb +53 -0
  303. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb +199 -0
  304. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/sandbox.rb +37 -0
  305. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/set.rb +54 -0
  306. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/shared_context.rb +55 -0
  307. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/shared_example_group.rb +269 -0
  308. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/shell_escape.rb +49 -0
  309. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  310. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/version.rb +9 -0
  311. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/warnings.rb +40 -0
  312. data/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.8.0/lib/rspec/core/world.rb +275 -0
  313. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/.document +5 -0
  314. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/.yardopts +6 -0
  315. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/Changelog.md +1120 -0
  316. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/LICENSE.md +25 -0
  317. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/README.md +305 -0
  318. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/expectations.rb +82 -0
  319. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
  320. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/expectations/configuration.rb +215 -0
  321. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/expectations/expectation_target.rb +127 -0
  322. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/expectations/fail_with.rb +39 -0
  323. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/expectations/failure_aggregator.rb +194 -0
  324. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/expectations/handler.rb +170 -0
  325. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/expectations/minitest_integration.rb +58 -0
  326. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/expectations/syntax.rb +132 -0
  327. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/expectations/version.rb +8 -0
  328. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers.rb +1034 -0
  329. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/aliased_matcher.rb +116 -0
  330. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in.rb +52 -0
  331. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/all.rb +85 -0
  332. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/base_matcher.rb +193 -0
  333. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/be.rb +288 -0
  334. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/be_between.rb +77 -0
  335. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
  336. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
  337. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/be_within.rb +72 -0
  338. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/change.rb +426 -0
  339. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/compound.rb +271 -0
  340. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/contain_exactly.rb +302 -0
  341. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/cover.rb +24 -0
  342. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/eq.rb +40 -0
  343. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/eql.rb +34 -0
  344. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/equal.rb +81 -0
  345. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/exist.rb +90 -0
  346. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/has.rb +103 -0
  347. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
  348. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/include.rb +149 -0
  349. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/match.rb +106 -0
  350. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/operators.rb +128 -0
  351. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/output.rb +200 -0
  352. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/raise_error.rb +230 -0
  353. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/respond_to.rb +165 -0
  354. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/satisfy.rb +60 -0
  355. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
  356. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
  357. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/built_in/yield.rb +432 -0
  358. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/composable.rb +171 -0
  359. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/dsl.rb +527 -0
  360. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/english_phrasing.rb +58 -0
  361. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +73 -0
  362. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/fail_matchers.rb +42 -0
  363. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/generated_descriptions.rb +41 -0
  364. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/matcher_delegator.rb +35 -0
  365. data/vendor/bundle/ruby/2.6.0/gems/rspec-expectations-3.8.2/lib/rspec/matchers/matcher_protocol.rb +99 -0
  366. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/.document +5 -0
  367. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/.yardopts +6 -0
  368. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/Changelog.md +1100 -0
  369. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/LICENSE.md +25 -0
  370. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/README.md +460 -0
  371. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks.rb +130 -0
  372. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance.rb +11 -0
  373. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/chain.rb +110 -0
  374. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  375. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
  376. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
  377. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
  378. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  379. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/recorder.rb +289 -0
  380. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
  381. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
  382. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/argument_list_matcher.rb +100 -0
  383. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/argument_matchers.rb +320 -0
  384. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/configuration.rb +212 -0
  385. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/error_generator.rb +369 -0
  386. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/example_methods.rb +434 -0
  387. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/instance_method_stasher.rb +146 -0
  388. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/marshal_extension.rb +41 -0
  389. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  390. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/have_received.rb +134 -0
  391. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/receive.rb +132 -0
  392. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
  393. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
  394. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/message_chain.rb +87 -0
  395. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/message_expectation.rb +741 -0
  396. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/method_double.rb +287 -0
  397. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/method_reference.rb +202 -0
  398. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/minitest_integration.rb +68 -0
  399. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/mutate_const.rb +339 -0
  400. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/object_reference.rb +149 -0
  401. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/order_group.rb +81 -0
  402. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/proxy.rb +485 -0
  403. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/space.rb +238 -0
  404. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/standalone.rb +3 -0
  405. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/syntax.rb +325 -0
  406. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/targets.rb +124 -0
  407. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/test_double.rb +171 -0
  408. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/verifying_double.rb +129 -0
  409. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
  410. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/verifying_proxy.rb +220 -0
  411. data/vendor/bundle/ruby/2.6.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/version.rb +9 -0
  412. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/Changelog.md +242 -0
  413. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/LICENSE.md +23 -0
  414. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/README.md +40 -0
  415. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support.rb +149 -0
  416. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/caller_filter.rb +83 -0
  417. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/comparable_version.rb +46 -0
  418. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/differ.rb +215 -0
  419. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/directory_maker.rb +63 -0
  420. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/encoded_string.rb +165 -0
  421. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/fuzzy_matcher.rb +48 -0
  422. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/hunk_generator.rb +47 -0
  423. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/matcher_definition.rb +42 -0
  424. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/method_signature_verifier.rb +426 -0
  425. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/mutex.rb +73 -0
  426. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/object_formatter.rb +275 -0
  427. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/recursive_const_methods.rb +76 -0
  428. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/reentrant_mutex.rb +53 -0
  429. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/ruby_features.rb +176 -0
  430. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/source.rb +75 -0
  431. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/source/location.rb +21 -0
  432. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/source/node.rb +110 -0
  433. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/source/token.rb +87 -0
  434. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/spec.rb +81 -0
  435. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
  436. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/formatting_support.rb +9 -0
  437. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/in_sub_process.rb +69 -0
  438. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/library_wide_checks.rb +150 -0
  439. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/shell_out.rb +84 -0
  440. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/stderr_splitter.rb +63 -0
  441. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/string_matcher.rb +46 -0
  442. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
  443. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  444. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/version.rb +7 -0
  445. data/vendor/bundle/ruby/2.6.0/gems/rspec-support-3.8.0/lib/rspec/support/warnings.rb +39 -0
  446. data/vendor/bundle/ruby/2.6.0/specifications/diff-lcs-1.3.gemspec +61 -0
  447. data/vendor/bundle/ruby/2.6.0/specifications/rake-10.5.0.gemspec +43 -0
  448. data/vendor/bundle/ruby/2.6.0/specifications/rspec-3.8.0.gemspec +42 -0
  449. data/vendor/bundle/ruby/2.6.0/specifications/rspec-core-3.8.0.gemspec +62 -0
  450. data/vendor/bundle/ruby/2.6.0/specifications/rspec-expectations-3.8.2.gemspec +50 -0
  451. data/vendor/bundle/ruby/2.6.0/specifications/rspec-mocks-3.8.0.gemspec +50 -0
  452. data/vendor/bundle/ruby/2.6.0/specifications/rspec-support-3.8.0.gemspec +41 -0
  453. metadata +536 -0
@@ -0,0 +1,30 @@
1
+ require 'test/unit/assertions'
2
+
3
+ module RSpec
4
+ module Core
5
+ # @private
6
+ module TestUnitAssertionsAdapter
7
+ include ::Test::Unit::Assertions
8
+
9
+ # If using test/unit from Ruby core with Ruby 1.9+, it includes
10
+ # MiniTest::Assertions by default. Note the upcasing of 'Test'.
11
+ #
12
+ # If the test/unit gem is being loaded, it will not include any minitest
13
+ # assertions.
14
+ #
15
+ # Only if Minitest 5.x is included / loaded do we need to worry about
16
+ # adding a shim for the new updates. Thus instead of checking on the
17
+ # RUBY_VERSION we need to check ancestors.
18
+ begin
19
+ # MiniTest is 4.x.
20
+ # Minitest is 5.x.
21
+ if ancestors.include?(::Minitest::Assertions)
22
+ require 'rspec/core/minitest_assertions_adapter'
23
+ include ::RSpec::Core::MinitestAssertionsAdapter
24
+ end
25
+ rescue NameError
26
+ # No-op. Minitest 5.x was not loaded.
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,9 @@
1
+ module RSpec
2
+ module Core
3
+ # Version information for RSpec Core.
4
+ module Version
5
+ # Current version of RSpec Core, in semantic versioning format.
6
+ STRING = '3.8.0'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,40 @@
1
+ require "rspec/support/warnings"
2
+
3
+ module RSpec
4
+ module Core
5
+ # @private
6
+ module Warnings
7
+ # @private
8
+ #
9
+ # Used internally to print deprecation warnings.
10
+ def deprecate(deprecated, data={})
11
+ RSpec.configuration.reporter.deprecation(
12
+ {
13
+ :deprecated => deprecated,
14
+ :call_site => CallerFilter.first_non_rspec_line
15
+ }.merge(data)
16
+ )
17
+ end
18
+
19
+ # @private
20
+ #
21
+ # Used internally to print deprecation warnings.
22
+ def warn_deprecation(message, opts={})
23
+ RSpec.configuration.reporter.deprecation opts.merge(:message => message)
24
+ end
25
+
26
+ # @private
27
+ def warn_with(message, options={})
28
+ if options[:use_spec_location_as_call_site]
29
+ message += "." unless message.end_with?(".")
30
+
31
+ if RSpec.current_example
32
+ message += " Warning generated from spec at `#{RSpec.current_example.location}`."
33
+ end
34
+ end
35
+
36
+ super(message, options)
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,275 @@
1
+ module RSpec
2
+ module Core
3
+ # @api private
4
+ #
5
+ # Internal container for global non-configuration data.
6
+ class World
7
+ # @private
8
+ attr_reader :example_groups, :filtered_examples
9
+
10
+ # Used internally to determine what to do when a SIGINT is received.
11
+ attr_accessor :wants_to_quit
12
+
13
+ # Used internally to signal that a failure outside of an example
14
+ # has occurred, and that therefore the exit status should indicate
15
+ # the run failed.
16
+ # @private
17
+ attr_accessor :non_example_failure
18
+
19
+ def initialize(configuration=RSpec.configuration)
20
+ @configuration = configuration
21
+ configuration.world = self
22
+ @example_groups = []
23
+ @example_group_counts_by_spec_file = Hash.new(0)
24
+ prepare_example_filtering
25
+ end
26
+
27
+ # @api public
28
+ #
29
+ # Prepares filters so that they apply to example groups when they run.
30
+ #
31
+ # This is a separate method so that filters can be modified/replaced and
32
+ # examples refiltered during a process's lifetime, which can be useful for
33
+ # a custom runner.
34
+ def prepare_example_filtering
35
+ @filtered_examples = Hash.new do |hash, group|
36
+ hash[group] = filter_manager.prune(group.examples)
37
+ end
38
+ end
39
+
40
+ # @api private
41
+ #
42
+ # Apply ordering strategy from configuration to example groups.
43
+ def ordered_example_groups
44
+ ordering_strategy = @configuration.ordering_registry.fetch(:global)
45
+ ordering_strategy.order(@example_groups)
46
+ end
47
+
48
+ # @api private
49
+ #
50
+ # Reset world to 'scratch' before running suite.
51
+ def reset
52
+ RSpec::ExampleGroups.remove_all_constants
53
+ example_groups.clear
54
+ @sources_by_path.clear if defined?(@sources_by_path)
55
+ @syntax_highlighter = nil
56
+ end
57
+
58
+ # @private
59
+ def filter_manager
60
+ @configuration.filter_manager
61
+ end
62
+
63
+ # @private
64
+ def registered_example_group_files
65
+ @example_group_counts_by_spec_file.keys
66
+ end
67
+
68
+ # @api private
69
+ #
70
+ # Records an example group.
71
+ def record(example_group)
72
+ @configuration.on_example_group_definition_callbacks.each { |block| block.call(example_group) }
73
+ @example_group_counts_by_spec_file[example_group.metadata[:absolute_file_path]] += 1
74
+ end
75
+
76
+ # @private
77
+ def num_example_groups_defined_in(file)
78
+ @example_group_counts_by_spec_file[file]
79
+ end
80
+
81
+ # @private
82
+ def shared_example_group_registry
83
+ @shared_example_group_registry ||= SharedExampleGroup::Registry.new
84
+ end
85
+
86
+ # @private
87
+ def inclusion_filter
88
+ @configuration.inclusion_filter
89
+ end
90
+
91
+ # @private
92
+ def exclusion_filter
93
+ @configuration.exclusion_filter
94
+ end
95
+
96
+ # @api private
97
+ #
98
+ # Get count of examples to be run.
99
+ def example_count(groups=example_groups)
100
+ FlatMap.flat_map(groups) { |g| g.descendants }.
101
+ inject(0) { |a, e| a + e.filtered_examples.size }
102
+ end
103
+
104
+ # @private
105
+ def all_example_groups
106
+ FlatMap.flat_map(example_groups) { |g| g.descendants }
107
+ end
108
+
109
+ # @private
110
+ def all_examples
111
+ FlatMap.flat_map(all_example_groups) { |g| g.examples }
112
+ end
113
+
114
+ # @private
115
+ # Traverses the tree of each top level group.
116
+ # For each it yields the group, then the children, recursively.
117
+ # Halts the traversal of a branch of the tree as soon as the passed block returns true.
118
+ # Note that siblings groups and their sub-trees will continue to be explored.
119
+ # This is intended to make it easy to find the top-most group that satisfies some
120
+ # condition.
121
+ def traverse_example_group_trees_until(&block)
122
+ example_groups.each do |group|
123
+ group.traverse_tree_until(&block)
124
+ end
125
+ end
126
+
127
+ # @api private
128
+ #
129
+ # Find line number of previous declaration.
130
+ def preceding_declaration_line(absolute_file_name, filter_line)
131
+ line_numbers = descending_declaration_line_numbers_by_file.fetch(absolute_file_name) do
132
+ return nil
133
+ end
134
+
135
+ line_numbers.find { |num| num <= filter_line }
136
+ end
137
+
138
+ # @private
139
+ def reporter
140
+ @configuration.reporter
141
+ end
142
+
143
+ # @private
144
+ def source_from_file(path)
145
+ unless defined?(@sources_by_path)
146
+ RSpec::Support.require_rspec_support 'source'
147
+ @sources_by_path = {}
148
+ end
149
+
150
+ @sources_by_path[path] ||= Support::Source.from_file(path)
151
+ end
152
+
153
+ # @private
154
+ def syntax_highlighter
155
+ @syntax_highlighter ||= Formatters::SyntaxHighlighter.new(@configuration)
156
+ end
157
+
158
+ # @api private
159
+ #
160
+ # Notify reporter of filters.
161
+ def announce_filters
162
+ fail_if_config_and_cli_options_invalid
163
+ filter_announcements = []
164
+
165
+ announce_inclusion_filter filter_announcements
166
+ announce_exclusion_filter filter_announcements
167
+
168
+ unless filter_manager.empty?
169
+ if filter_announcements.length == 1
170
+ report_filter_message("Run options: #{filter_announcements[0]}")
171
+ else
172
+ report_filter_message("Run options:\n #{filter_announcements.join("\n ")}")
173
+ end
174
+ end
175
+
176
+ if @configuration.run_all_when_everything_filtered? && example_count.zero? && !@configuration.only_failures?
177
+ report_filter_message("#{everything_filtered_message}; ignoring #{inclusion_filter.description}")
178
+ filtered_examples.clear
179
+ inclusion_filter.clear
180
+ end
181
+
182
+ return unless example_count.zero?
183
+
184
+ example_groups.clear
185
+ if filter_manager.empty?
186
+ report_filter_message("No examples found.")
187
+ elsif exclusion_filter.empty? || inclusion_filter.empty?
188
+ report_filter_message(everything_filtered_message)
189
+ end
190
+ end
191
+
192
+ # @private
193
+ def report_filter_message(message)
194
+ reporter.message(message) unless @configuration.silence_filter_announcements?
195
+ end
196
+
197
+ # @private
198
+ def everything_filtered_message
199
+ "\nAll examples were filtered out"
200
+ end
201
+
202
+ # @api private
203
+ #
204
+ # Add inclusion filters to announcement message.
205
+ def announce_inclusion_filter(announcements)
206
+ return if inclusion_filter.empty?
207
+
208
+ announcements << "include #{inclusion_filter.description}"
209
+ end
210
+
211
+ # @api private
212
+ #
213
+ # Add exclusion filters to announcement message.
214
+ def announce_exclusion_filter(announcements)
215
+ return if exclusion_filter.empty?
216
+
217
+ announcements << "exclude #{exclusion_filter.description}"
218
+ end
219
+
220
+ private
221
+
222
+ def descending_declaration_line_numbers_by_file
223
+ @descending_declaration_line_numbers_by_file ||= begin
224
+ declaration_locations = FlatMap.flat_map(example_groups, &:declaration_locations)
225
+ hash_of_arrays = Hash.new { |h, k| h[k] = [] }
226
+
227
+ # TODO: change `inject` to `each_with_object` when we drop 1.8.7 support.
228
+ line_nums_by_file = declaration_locations.inject(hash_of_arrays) do |hash, (file_name, line_number)|
229
+ hash[file_name] << line_number
230
+ hash
231
+ end
232
+
233
+ line_nums_by_file.each_value do |list|
234
+ list.sort!
235
+ list.reverse!
236
+ end
237
+ end
238
+ end
239
+
240
+ def fail_if_config_and_cli_options_invalid
241
+ return unless @configuration.only_failures_but_not_configured?
242
+
243
+ reporter.abort_with(
244
+ "\nTo use `--only-failures`, you must first set " \
245
+ "`config.example_status_persistence_file_path`.",
246
+ 1 # exit code
247
+ )
248
+ end
249
+
250
+ # @private
251
+ # Provides a null implementation for initial use by configuration.
252
+ module Null
253
+ def self.non_example_failure; end
254
+ def self.non_example_failure=(_); end
255
+
256
+ def self.registered_example_group_files
257
+ []
258
+ end
259
+
260
+ def self.traverse_example_group_trees_until
261
+ end
262
+
263
+ # :nocov:
264
+ def self.example_groups
265
+ []
266
+ end
267
+
268
+ def self.all_example_groups
269
+ []
270
+ end
271
+ # :nocov:
272
+ end
273
+ end
274
+ end
275
+ end
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ -
3
+ README.md
4
+ LICENSE.md
5
+ Changelog.md
@@ -0,0 +1,6 @@
1
+ --exclude features
2
+ --no-private
3
+ --markup markdown
4
+ -
5
+ Changelog.md
6
+ LICENSE.md
@@ -0,0 +1,1120 @@
1
+ ### 3.8.2 / 2018-10-09
2
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.8.1...v3.8.2)
3
+
4
+ Bug Fixes:
5
+
6
+ * Change `include` matcher to rely on a `respond_to?(:include?)` check rather than a direct
7
+ Hash comparison before calling `to_hash` to convert to a hash. (Jordan Owens, #1073)
8
+ * Prevent unexpected call stack jumps from causing an obscure error (`IndexError`), and
9
+ replace that error with a proper informative message. (Jon Rowe, #1076)
10
+
11
+ ### 3.8.1 / 2018-08-06
12
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.8.0...v3.8.1)
13
+
14
+ Bug Fixes:
15
+
16
+ * Fix regression in `include` matcher so stopped
17
+ `expect(hash.with_indifferent_access).to include(:symbol_key)`
18
+ from working. (Eito Katagiri, #1069)
19
+
20
+ ### 3.8.0 / 2018-08-04
21
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.7.0...v3.8.0)
22
+
23
+ Enhancements:
24
+
25
+ * Improve failure message of `change(receiver, :message)` by including the
26
+ receiver as `SomeClass#some_message`. (Tomohiro Hashidate, #1005)
27
+ * Improve `change` matcher so that it can correctly detect changes in
28
+ deeply nested mutable objects (such as arrays-of-hashes-of-arrays).
29
+ The improved logic uses the before/after `hash` value to see if the
30
+ object has been mutated, rather than shallow duping the object.
31
+ (Myron Marston, #1034)
32
+ * Improve `include` matcher so that pseudo-hash objects (e.g. objects
33
+ that decorate a hash using a `SimpleDelegator` or similar) are treated
34
+ as a hash, as long as they implement `to_hash`. (Pablo Brasero, #1012)
35
+ * Add `max_formatted_output_length=` to configuration, allowing changing
36
+ the length at which we truncate large output strings.
37
+ (Sam Phippen #951, Benoit Tigeot #1056)
38
+ * Improve error message when passing a matcher that doesn't support block
39
+ expectations to a block based `expect`. (@nicktime, #1066)
40
+
41
+ ### 3.7.0 / 2017-10-17
42
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.6.0...v3.7.0)
43
+
44
+ Enhancements:
45
+
46
+ * Improve compatibility with `--enable-frozen-string-literal` option
47
+ on Ruby 2.3+. (Pat Allan, #997)
48
+
49
+ ### 3.6.0 / 2017-05-04
50
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.6.0.beta2...v3.6.0)
51
+
52
+ Enhancements:
53
+
54
+ * Treat NoMethodError as a failure for comparison matchers. (Jon Rowe, #972)
55
+ * Allow for scoped aliased and negated matchers--just call
56
+ `alias_matcher` or `define_negated_matcher` from within an example
57
+ group. (Markus Reiter, #974)
58
+ * Improve failure message of `change` matcher with block and `satisfy` matcher
59
+ by including the block snippet instead of just describing it as `result` or
60
+ `block` when Ripper is available. (Yuji Nakayama, #987)
61
+
62
+ Bug Fixes:
63
+
64
+ * Fix `yield_with_args` and `yield_successive_args` matchers so that
65
+ they compare expected to actual args at the time the args are yielded
66
+ instead of at the end, in case the method that is yielding mutates the
67
+ arguments after yielding. (Alyssa Ross, #965)
68
+
69
+ ### 3.6.0.beta2 / 2016-12-12
70
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.6.0.beta1...v3.6.0.beta2)
71
+
72
+ Bug Fixes:
73
+
74
+ * Using the exist matcher on `File` no longer produces a deprecation warning.
75
+ (Jon Rowe, #954)
76
+
77
+ ### 3.6.0.beta1 / 2016-10-09
78
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0...v3.6.0.beta1)
79
+
80
+ Bug Fixes:
81
+
82
+ * Fix `contain_exactly` to work correctly with ranges. (Myron Marston, #940)
83
+ * Fix `change` to work correctly with sets. (Marcin Gajewski, #939)
84
+
85
+ ### 3.5.0 / 2016-07-01
86
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0.beta4...v3.5.0)
87
+
88
+ Enhancements:
89
+
90
+ * Add support for keyword arguments to the `respond_to` matcher. (Rob Smith, #915).
91
+
92
+ ### 3.5.0.beta4 / 2016-06-05
93
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0.beta3...v3.5.0.beta4)
94
+
95
+ Bug Fixes:
96
+
97
+ * Fix `include` matcher so that it provides a valid diff for hashes. (Yuji Nakayama, #916)
98
+
99
+ ### 3.5.0.beta3 / 2016-04-02
100
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0.beta2...v3.5.0.beta3)
101
+
102
+ Enhancements:
103
+
104
+ * Make `rspec/expectations/minitest_integration` work on Minitest::Spec
105
+ 5.6+. (Myron Marston, #904)
106
+ * Add an alias `having_attributes` for `have_attributes` matcher.
107
+ (Yuji Nakayama, #905)
108
+ * Improve `change` matcher error message when block is mis-used.
109
+ (Alex Altair, #908)
110
+
111
+ ### 3.5.0.beta2 / 2016-03-10
112
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0.beta1...v3.5.0.beta2)
113
+
114
+ Enhancements:
115
+
116
+ * Add the ability to raise an error on encountering false positives via
117
+ `RSpec::Configuration#on_potential_false_positives = :raise`. (Jon Rowe, #900)
118
+ * When using the custom matcher DSL, support new
119
+ `notify_expectation_failures: true` option for the `match` method to
120
+ allow expectation failures to be raised as normal instead of being
121
+ converted into a `false` return value for `matches?`. (Jon Rowe, #892)
122
+
123
+ Bug Fixes:
124
+
125
+ * Allow `should` deprecation check to work on `BasicObject`s. (James Coleman, #898)
126
+
127
+ ### 3.5.0.beta1 / 2016-02-06
128
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.4.0...v3.5.0.beta1)
129
+
130
+ Enhancements:
131
+
132
+ * Make `match_when_negated` in custom matcher DSL support use of
133
+ expectations within the match logic. (Chris Arcand, #789)
134
+
135
+ Bug Fixes:
136
+
137
+ * Return `true` as expected from passing negated expectations
138
+ (such as `expect("foo").not_to eq "bar"`), so they work
139
+ properly when used within a `match` or `match_when_negated`
140
+ block. (Chris Arcand, #789)
141
+
142
+ ### 3.4.0 / 2015-11-11
143
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.3.1...v3.4.0)
144
+
145
+ Enhancements:
146
+
147
+ * Warn when `RSpec::Matchers` is included in a superclass after it has
148
+ already been included in a subclass on MRI 1.9, since that situation
149
+ can cause uses of `super` to trigger infinite recursion. (Myron Marston, #816)
150
+ * Stop rescuing `NoMemoryError`, `SignalExcepetion`, `Interrupt` and
151
+ `SystemExit`. It is dangerous to interfere with these. (Myron Marston, #845)
152
+ * Add `#with_captures` to the
153
+ [match matcher](https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers/match-matcher)
154
+ which allows a user to specify expected captures when matching a regex
155
+ against a string. (Sam Phippen, #848)
156
+ * Always print compound failure messages in the multi-line form. Trying
157
+ to print it all on a single line didn't read very well. (Myron Marston, #859)
158
+
159
+ Bug Fixes:
160
+
161
+ * Fix failure message from dynamic predicate matchers when the object
162
+ does not respond to the predicate so that it is inspected rather
163
+ than relying upon its `to_s` -- that way for `nil`, `"nil"` is
164
+ printed rather than an empty string. (Myron Marston, #841)
165
+ * Fix SystemStackError raised when diffing an Enumerable object
166
+ whose `#each` includes the object itself. (Yuji Nakayama, #857)
167
+
168
+ ### 3.3.1 / 2015-07-15
169
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.3.0...v3.3.1)
170
+
171
+ Bug Fixes:
172
+
173
+ * Fix `be >`, `be <`, etc so that it fails rather than allowing an
174
+ argument error to be raised when compared against an object of the
175
+ wrong type. This allows it to be used in composed matcher expressions
176
+ against heterogeneous objects. (Dennis Günnewig, #809)
177
+ * Fix `respond_to` to work properly on target objects
178
+ that redefine the `method` method. (unmanbearpig, #821)
179
+
180
+ ### 3.3.0 / 2015-06-12
181
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.2.1...v3.3.0)
182
+
183
+ Enhancements:
184
+
185
+ * Expose `RSpec::Matchers::EnglishPhrasing` to make it easier to write
186
+ nice failure messages in custom matchers. (Jared Beck, #736)
187
+ * Add `RSpec::Matchers::FailMatchers`, a mixin which provides
188
+ `fail`, `fail_with` and `fail_including` matchers for use in
189
+ specifying that an expectation fails for use by
190
+ extension/plugin authors. (Charlie Rudolph, #729)
191
+ * Avoid loading `tempfile` (and its dependencies) unless
192
+ it is absolutely needed. (Myron Marston, #735)
193
+ * Improve failure output when attempting to use `be_true` or `be_false`.
194
+ (Tim Wade, #744)
195
+ * Define `RSpec::Matchers#respond_to_missing?` so that
196
+ `RSpec::Matchers#respond_to?` and `RSpec::Matchers#method` handle
197
+ dynamic predicate matchers. (Andrei Botalov, #751)
198
+ * Use custom Time/DateTime/BigDecimal formatting for all matchers
199
+ so they are consistently represented in failure messages.
200
+ (Gavin Miller, #740)
201
+ * Add configuration to turn off warnings about matcher combinations that
202
+ may cause false positives. (Jon Rowe, #768)
203
+ * Warn when using a bare `raise_error` matcher that you may be subject to
204
+ false positives. (Jon Rowe, #768)
205
+ * Warn rather than raise when using the`raise_error` matcher in negative
206
+ expectations that may be subject to false positives. (Jon Rowe, #775)
207
+ * Improve failure message for `include(a, b, c)` so that if `a` and `b`
208
+ are included the failure message only mentions `c`. (Chris Arcand, #780)
209
+ * Allow `satisfy` matcher to take an optional description argument
210
+ that will be used in the `description`, `failure_message` and
211
+ `failure_message_when_negated` in place of the undescriptive
212
+ "sastify block". (Chris Arcand, #783)
213
+ * Add new `aggregate_failures` API that allows multiple independent
214
+ expectations to all fail and be listed in the failure output, rather
215
+ than the example aborting on the first failure. (Myron Marston, #776)
216
+ * Improve `raise_error` matcher so that it can accept a matcher as a single argument
217
+ that matches the message. (Time Wade, #782)
218
+
219
+ Bug Fixes:
220
+
221
+ * Make `contain_exactly` / `match_array` work with strict test doubles
222
+ that have not defined `<=>`. (Myron Marston, #758)
223
+ * Fix `include` matcher so that it omits the diff when it would
224
+ confusingly highlight items that are actually included but are not
225
+ an exact match in a line-by-line diff. (Tim Wade, #763)
226
+ * Fix `match` matcher so that it does not blow up when matching a string
227
+ or regex against another matcher (rather than a string or regex).
228
+ (Myron Marston, #772)
229
+ * Silence whitespace-only diffs. (Myron Marston, #801)
230
+
231
+ ### 3.2.1 / 2015-04-06
232
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.2.0...v3.2.1)
233
+
234
+ Bug Fixes:
235
+
236
+ * Prevent `Range`s from being enumerated when generating matcher
237
+ descriptions. (Jon Rowe, #755)
238
+ * Ensure exception messages are compared as strings in the `raise_error`
239
+ matcher. (Jon Rowe, #755)
240
+
241
+ ### 3.2.0 / 2015-02-03
242
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.1.2...v3.2.0)
243
+
244
+ Enhancements:
245
+
246
+ * Add `block_arg` method to custom matcher API, which allows you to
247
+ access the block passed to a custom matcher, if there is one.
248
+ (Mike Dalton, #645)
249
+ * Provide more detail in failure message of `yield_control` matcher.
250
+ (Jon Rowe, #650)
251
+ * Add a shorthand syntax for `chain` in the matcher DSL which assigns values
252
+ for use elsewhere, for example `chain :and_smaller_than, :small_value`
253
+ creates an `attr_reader` for `small_value` (Tom Stuart, #644)
254
+ * Provide a more helpful deprecation message when using the `should` syntax.
255
+ (Elia Schito, #663)
256
+ * Provide more detail in the `have_attributes` matcher failure message.
257
+ (Jon Rowe, #668)
258
+ * Make the `have_attributes` matcher diffable.
259
+ (Jon Rowe, Alexey Fedorov, #668)
260
+ * Add `output(...).to_std(out|err)_from_any_process` as alternatives
261
+ to `output(...).to_std(out|err)`. The latter doesn't work when a sub
262
+ process writes to the named stream but is much faster.
263
+ (Alex Genco, #700)
264
+ * Improve compound matchers (created by `and` and `or`) so that diffs
265
+ are included in failures when one or more of their matchers
266
+ are diffable. (Alexey Fedorov, #713)
267
+
268
+ Bug Fixes:
269
+
270
+ * Avoid calling `private_methods` from the `be` predicate matcher on
271
+ the target object if the object publicly responds to the predicate
272
+ method. This avoids a possible error that can occur if the object
273
+ raises errors from `private_methods` (which can happen with celluloid
274
+ objects). (@chapmajs, #670)
275
+ * Make `yield_control` (with no modifier) default to
276
+ `at_least(:once)` rather than raising a confusing error
277
+ when multiple yields are encountered.
278
+ (Myron Marston, #675)
279
+ * Fix "instance variable @color not initialized" warning when using
280
+ rspec-expectations outside of an rspec-core context. (Myron Marston, #689)
281
+ * Fix `start_with` and `end_with` to work properly when checking a
282
+ string against an array of strings. (Myron Marston, #690)
283
+ * Don't use internally delegated matchers when generating descriptions
284
+ for examples without doc strings. (Myron Marston, #692)
285
+
286
+ ### 3.1.2 / 2014-09-26
287
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.1.1...v3.1.2)
288
+
289
+ Bug Fixes:
290
+
291
+ * Fix `define_negated_matcher` so that matchers that support fluent
292
+ interfaces continue to be negated after you use the chained method.
293
+ (Myron Marston, #656)
294
+ * Fix `define_negated_matcher` so that the matchers fail with an
295
+ appropriate failure message. (Myron Marston, #659)
296
+
297
+ ### 3.1.1 / 2014-09-15
298
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.1.0...v3.1.1)
299
+
300
+ Bug Fixes:
301
+
302
+ * Fix regression in `all` matcher in 3.1.0 that prevented it from
303
+ working on objects that are not `Enumerable` but do implement
304
+ `each_with_index` (such as an ActiveRecord proxy). (Jori Hardman, #647)
305
+
306
+ ### 3.1.0 / 2014-09-04
307
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.4...v3.1.0)
308
+
309
+ Enhancements:
310
+
311
+ * Add `have_attributes` matcher, that passes if actual's attribute
312
+ values match the expected attributes hash:
313
+ `Person = Struct.new(:name, :age)`
314
+ `person = Person.new("Bob", 32)`
315
+ `expect(person).to have_attributes(:name => "Bob", :age => 32)`.
316
+ (Adam Farhi, #571)
317
+ * Extended compound matcher support to block matchers, for cases like:
318
+ `expect { ... }.to change { x }.to(3).and change { y }.to(4)`. (Myron
319
+ Marston, #567)
320
+ * Include chained methods in custom matcher description and failure message
321
+ when new `include_chain_clauses_in_custom_matcher_descriptions` config
322
+ option is enabled. (Dan Oved, #600)
323
+ * Add `thrice` modifier to `yield_control` matcher as a synonym for
324
+ `exactly(3).times`. (Dennis Taylor, #615)
325
+ * Add `RSpec::Matchers.define_negated_matcher`, which defines a negated
326
+ version of the named matcher. (Adam Farhi, Myron Marston, #618)
327
+ * Document and support negation of `contain_exactly`/`match_array`.
328
+ (Jon Rowe, #626).
329
+
330
+ Bug Fixes:
331
+
332
+ * Rename private `LegacyMacherAdapter` constant to `LegacyMatcherAdapter`
333
+ to fix typo. (Abdelkader Boudih, #563)
334
+ * Fix `all` matcher so that it fails properly (rather than raising a
335
+ `NoMethodError`) when matched against a non-enumerable. (Hao Su, #622)
336
+
337
+ ### 3.0.4 / 2014-08-14
338
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.3...v3.0.4)
339
+
340
+ Bug Fixes:
341
+
342
+ * Fix `start_with` and `end_with` so that they work properly with
343
+ structs. (Myron Marston, #620)
344
+ * Fix failure message generation so that structs are printed properly
345
+ in failures. Previously failure messages would represent them as
346
+ an array. (Myron Marston, #620)
347
+ * Fix composable matcher support so that it does not wrongly treat
348
+ structs as arrays. (Myron Marston, #620)
349
+
350
+ ### 3.0.3 / 2014-07-21
351
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.2...v3.0.3)
352
+
353
+ Bug Fixes:
354
+
355
+ * Fix issue with detection of generic operator matchers so they work
356
+ correctly when undefined. (Myron Marston, #597)
357
+ * Don't inadvertently define `BasicObject` in 1.8.7. (Chris Griego, #603)
358
+ * Fix `include` matcher so that it fails gracefully when matched against
359
+ an object that does not respond to `include?`. (Myron Marston, #607)
360
+
361
+ ### 3.0.2 / 2014-06-19
362
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.1...v3.0.2)
363
+
364
+ Bug Fixes:
365
+
366
+ * Fix regression in `contain_exactly` (AKA `match_array`) that caused it
367
+ to wrongly pass when the expected array was empty. (Myron Marston, #581)
368
+ * Provide a better error message when you use the `change(obj, :msg)`
369
+ form of the change matcher but forget the message argument. (Alex
370
+ Sunderland, #585)
371
+ * Make the `contain_exactly` matcher work with arrays that contain hashes in
372
+ arbitrary ordering. (Sam Phippen, #578)
373
+
374
+ ### 3.0.1 / 2014-06-12
375
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.0...v3.0.1)
376
+
377
+ Bug Fixes:
378
+
379
+ * Add a missing `require` that would cause the `respond_to` matcher to
380
+ fail when used in a project where the rest of RSpec (e.g. core and
381
+ expecatations) weren't being used. (Myron Marston, #566)
382
+ * Structs are no longer treated as arrays when diffed. (Jon Rowe, #576)
383
+
384
+ ### 3.0.0 / 2014-06-01
385
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.0.rc1...v3.0.0)
386
+
387
+ No code changes. Just taking it out of pre-release.
388
+
389
+ ### 3.0.0.rc1 / 2014-05-18
390
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.0.beta2...v3.0.0.rc1)
391
+
392
+ Breaking Changes for 3.0.0:
393
+
394
+ * Remove `matcher_execution_context` attribute from DSL-defined
395
+ custom matchers. (Myron Marston)
396
+ * Remove `RSpec::Matchers::Pretty#_pretty_print`. (Myron Marston)
397
+ * Remove `RSpec::Matchers::Pretty#expected_to_sentence`. (Myron Marston)
398
+ * Rename `RSpec::Matchers::Configuration` constant to
399
+ `RSpec::Expectations::Configuration`. (Myron Marston)
400
+ * Prevent `have_xyz` predicate matchers using private methods.
401
+ (Adrian Gonzalez)
402
+ * Block matchers must now implement `supports_block_expectations?`.
403
+ (Myron Marston)
404
+ * Stop supporting `require 'rspec-expectations'`.
405
+ Use `require 'rspec/expectations'` instead. (Myron Marston)
406
+
407
+ Bug Fixes:
408
+
409
+ * Fix `NoMethodError` triggered by beta2 when `YARD` was loaded in
410
+ the test environment. (Myron Marston)
411
+ * Fix `be_xyz` matcher to accept a `do...end` block. (Myron Marston)
412
+ * Fix composable matcher failure message generation logic
413
+ so that it does not blow up when given `$stdout` or `$stderr`.
414
+ (Myron Marston)
415
+ * Fix `change` matcher to work properly with `IO` objects.
416
+ (Myron Marston)
417
+ * Fix `exist` matcher so that it can be used in composed matcher
418
+ expressions involving objects that do not implement `exist?` or
419
+ `exists?`. (Daniel Fone)
420
+ * Fix composable matcher match logic so that it clones matchers
421
+ before using them in order to work properly with matchers
422
+ that use internal memoization based on a given `actual` value.
423
+ (Myron Marston)
424
+ * Fix `be_xyz` and `has_xyz` predicate matchers so that they can
425
+ be used in composed matcher expressions involving objects that
426
+ do not implement the predicate method. (Daniel Fone)
427
+
428
+ Enhancements:
429
+
430
+ * Document the remaining public APIs. rspec-expectations now has 100% of
431
+ the public API documented and will remain that way (as new undocumented
432
+ methods will fail the build). (Myron Marston)
433
+ * Improve the formatting of BigDecimal objects in `eq` matcher failure
434
+ messages. (Daniel Fone)
435
+ * Improve the failure message for `be_xyz` predicate matchers so
436
+ that it includes the `inspect` output of the receiver.
437
+ (Erik Michaels-Ober, Sam Phippen)
438
+ * Add `all` matcher, to allow you to specify that a given matcher
439
+ matches all elements in a collection:
440
+ `expect([1, 3, 5]).to all( be_odd )`. (Adam Farhi)
441
+ * Add boolean aliases (`&`/`|`) for compound operators (`and`/`or`). (Adam Farhi)
442
+ * Give users a clear error when they wrongly use a value matcher
443
+ in a block expectation expression (e.g. `expect { 3 }.to eq(3)`)
444
+ or vice versa. (Myron Marston)
445
+
446
+ ### 3.0.0.beta2 / 2014-02-17
447
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.0.beta1...v3.0.0.beta2)
448
+
449
+ Breaking Changes for 3.0.0:
450
+
451
+ * Remove deprecated support for accessing the `RSpec` constant using
452
+ `Rspec` or `Spec`. (Myron Marston)
453
+ * Remove deprecated `RSpec::Expectations.differ=`. (Myron Marston)
454
+ * Remove support for deprecated `expect(...).should`. (Myron Marston)
455
+ * Explicitly disallow `expect { }.not_to change { }` with `by`,
456
+ `by_at_least`, `by_at_most` or `to`. These have never been supported
457
+ but did not raise explicit errors. (Myron Marston)
458
+ * Provide `===` rather than `==` as an alias of `matches?` for
459
+ all matchers. The semantics of `===` are closer to an RSpec
460
+ matcher than `==`. (Myron Marston)
461
+ * Remove deprecated `RSpec::Matchers::OperatorMatcher` constant.
462
+ (Myron Marston)
463
+ * Make `RSpec::Expectations::ExpectationNotMetError` subclass
464
+ `Exception` rather than `StandardError` so they can bypass
465
+ a bare `rescue` in end-user code (e.g. when an expectation is
466
+ set from within a rspec-mocks stub implementation). (Myron Marston)
467
+ * Remove Test::Unit and Minitest 4.x integration. (Myron Marston)
468
+
469
+ Enhancements:
470
+
471
+ * Simplify the failure message of the `be` matcher when matching against:
472
+ `true`, `false` and `nil`. (Sam Phippen)
473
+ * Update matcher protocol and custom matcher DSL to better align
474
+ with the newer `expect` syntax. If you want your matchers to
475
+ maintain compatibility with multiple versions of RSpec, you can
476
+ alias the new names to the old. (Myron Marston)
477
+ * `failure_message_for_should` => `failure_message`
478
+ * `failure_message_for_should_not` => `failure_message_when_negated`
479
+ * `match_for_should` => `match`
480
+ * `match_for_should_not` => `match_when_negated`
481
+ * Improve generated descriptions from `change` matcher. (Myron Marston)
482
+ * Add support for compound matcher expressions using `and` and `or`.
483
+ Simply chain them off of any existing matcher to create an expression
484
+ like `expect(alphabet).to start_with("a").and end_with("z")`.
485
+ (Eloy Espinaco)
486
+ * Add `contain_exactly` as a less ambiguous version of `match_array`.
487
+ Note that it expects the expected array to be splatted as
488
+ individual args: `expect(array).to contain_exactly(1, 2)` is
489
+ the same as `expect(array).to match_array([1, 2])`. (Myron Marston)
490
+ * Update `contain_exactly`/`match_array` so that it can match against
491
+ other non-array collections (such as a `Set`). (Myron Marston)
492
+ * Update built-in matchers so that they can accept matchers as arguments
493
+ to allow you to compose matchers in arbitrary ways. (Myron Marston)
494
+ * Add `RSpec::Matchers::Composable` mixin that can be used to make
495
+ a custom matcher composable as well. Note that custom matchers
496
+ defined via `RSpec::Matchers.define` already have this. (Myron
497
+ Marston)
498
+ * Define noun-phrase aliases for built-in matchers, which can be
499
+ used when creating composed matcher expressions that read better
500
+ and provide better failure messages. (Myron Marston)
501
+ * Add `RSpec::Matchers.alias_matcher` so users can define their own
502
+ matcher aliases. The `description` of the matcher will reflect the
503
+ alternate matcher name. (Myron Marston)
504
+ * Add explicit `be_between` matcher. `be_between` has worked for a
505
+ long time as a dynamic predicate matcher, but the failure message
506
+ was suboptimal. The new matcher provides a much better failure
507
+ message. (Erik Michaels-Ober)
508
+ * Enhance the `be_between` matcher to allow for `inclusive` or `exclusive`
509
+ comparison (e.g. inclusive of min/max or exclusive of min/max).
510
+ (Pedro Gimenez)
511
+ * Make failure message for `not_to be #{operator}` less confusing by
512
+ only saying it's confusing when comparison operators are used.
513
+ (Prathamesh Sonpatki)
514
+ * Improve failure message of `eq` matcher when `Time` or `DateTime`
515
+ objects are used so that the full sub-second precision is included.
516
+ (Thomas Holmes, Jeff Wallace)
517
+ * Add `output` matcher for expecting that a block outputs `to_stdout`
518
+ or `to_stderr`. (Luca Pette, Matthias Günther)
519
+ * Forward a provided block on to the `has_xyz?` method call when
520
+ the `have_xyz` matcher is used. (Damian Galarza)
521
+ * Provide integration with Minitest 5.x. Require
522
+ `rspec/expectations/minitest_integration` after loading minitest
523
+ to use rspec-expectations with minitest. (Myron Marston)
524
+
525
+ Bug Fixes:
526
+
527
+ * Fix wrong matcher descriptions with falsey expected value (yujinakayama)
528
+ * Fix `expect { }.not_to change { }.from(x)` so that the matcher only
529
+ passes if the starting value is `x`. (Tyler Rick, Myron Marston)
530
+ * Fix hash diffing, so that it colorizes properly and doesn't consider trailing
531
+ commas when performing the diff. (Jared Norman)
532
+ * Fix built-in matchers to fail normally rather than raising
533
+ `ArgumentError` when given an object of the wrong type to match
534
+ against, so that they work well in composite matcher expressions like
535
+ `expect([1.51, "foo"]).to include(a_string_matching(/foo/), a_value_within(0.1).of(1.5))`.
536
+ (Myron Marston)
537
+
538
+ Deprecations:
539
+
540
+ * Retain support for RSpec 2 matcher protocol (e.g. for matchers
541
+ in 3rd party extension gems like `shoulda`), but it will print
542
+ a deprecation warning. (Myron Marston)
543
+
544
+ ### 3.0.0.beta1 / 2013-11-07
545
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.99.2...v3.0.0.beta1)
546
+
547
+ Breaking Changes for 3.0.0:
548
+
549
+ * Remove explicit support for 1.8.6. (Jon Rowe)
550
+ * Remove the deprecated `be_close` matcher, preferring `be_within` instead.
551
+ (Sam Phippen)
552
+ * Remove the deprecated `have`, `have_at_least` and `have_at_most` matchers.
553
+ You can continue using those matchers through https://github.com/rspec/rspec-collection_matchers,
554
+ or you can rewrite your expectations with something like
555
+ `expect(your_object.size).to eq(num)`. (Hugo Baraúna)
556
+ * Rename `be_true` and `be_false` to `be_truthy` and `be_falsey`. (Sam Phippen)
557
+ * Make `expect { }.to_not raise_error(SomeSpecificClass, message)`,
558
+ `expect { }.to_not raise_error(SomeSpecificClass)` and
559
+ `expect { }.to_not raise_error(message)` invalid, since they are prone
560
+ to hiding failures. Instead, use `expect { }.to_not raise_error` (with no
561
+ args). (Sam Phippen)
562
+ * Within `RSpec::Matchers.define` blocks, helper methods made available
563
+ either via `def self.helper` or `extend HelperModule` are no longer
564
+ available to the `match` block (or any of the others). Instead
565
+ `include` your helper module and define the helper method as an
566
+ instance method. (Myron Marston)
567
+ * Force upgrading Diff::LCS for encoding compatability with diffs. (Jon Rowe)
568
+
569
+ Enhancements:
570
+
571
+ * Support `do..end` style block with `raise_error` matcher. (Yuji Nakayama)
572
+ * Rewrote custom matcher DSL to simplify its implementation and solve a
573
+ few issues. (Myron Marston)
574
+ * Allow early `return` from within custom matcher DSL blocks. (Myron
575
+ Marston)
576
+ * The custom matcher DSL's `chain` can now accept a block. (Myron
577
+ Marston)
578
+ * Support setting an expectation on a `raise_error` matcher via a chained
579
+ `with_message` method call. (Sam Phippen)
580
+
581
+ Bug Fixes:
582
+
583
+ * Allow `include` and `match` matchers to be used from within a
584
+ DSL-defined custom matcher's `match` block. (Myron Marston)
585
+ * Correct encoding error message on diff failure (Jon Rowe)
586
+
587
+ Deprecations:
588
+
589
+ * Using the old `:should` syntax without explicitly configuring it is deprecated.
590
+ It will continue to work but will emit a deprecation warning in RSpec 3 if
591
+ you do not explicitly enable it. (Sam Phippen)
592
+
593
+ ### 2.99.2 / 2014-07-21
594
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.99.1...v2.99.2)
595
+
596
+ Bug Fixes:
597
+
598
+ * Fix regression in `Expectations#method_handle_for` where proxy objects
599
+ with method delegated would wrongly not return a method handle.
600
+ (Jon Rowe, #594)
601
+ * Fix issue with detection of generic operator matchers so they work
602
+ correctly when undefined. (Myron Marston, #597)
603
+
604
+ ### 2.99.1 / 2014-06-19
605
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.99.0...v2.99.1)
606
+
607
+ Bug Fixes:
608
+
609
+ * Fix typo in custom matcher `expected` deprecation warning -- it's
610
+ `expected_as_array`, not `expected_array`. (Frederick Cheung, #562)
611
+
612
+ ### 2.99.0 / 2014-06-01
613
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.99.0.rc1...v2.99.0)
614
+
615
+ Enhancements:
616
+
617
+ * Special case deprecation message for `errors_on` with `rspec-rails` to be more useful.
618
+ (Aaron Kromer)
619
+
620
+ ### 2.99.0.rc1 / 2014-05-18
621
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.99.0.beta2...2.99.0.rc1)
622
+
623
+ Deprecations:
624
+
625
+ * Deprecate `matcher_execution_context` attribute on DSL-defined
626
+ custom matchers. (Myron Marston)
627
+ * Deprecate `RSpec::Matchers::Pretty#_pretty_print`. (Myron Marston)
628
+ * Deprecate `RSpec::Matchers::Pretty#expected_to_sentence`. (Myron Marston)
629
+ * Deprecate `RSpec::Matchers::Configuration` in favor of
630
+ `RSpec::Expectations::Configuration`. (Myron Marston)
631
+ * Deprecate `be_xyz` predicate matcher on an object that doesn't respond to
632
+ `xyz?` or `xyzs?`. (Daniel Fone)
633
+ * Deprecate `have_xyz` matcher on an object that doesn't respond to `has_xyz?`.
634
+ (Daniel Fone)
635
+ * Deprecate `have_xyz` matcher on an object that has a private method `has_xyz?`.
636
+ (Jon Rowe)
637
+ * Issue a deprecation warning when a block expectation expression is
638
+ used with a matcher that doesn't explicitly support block expectations
639
+ via `supports_block_expectations?`. (Myron Marston)
640
+ * Deprecate `require 'rspec-expectations'`. Use
641
+ `require 'rspec/expectations'` instead. (Myron Marston)
642
+
643
+ ### 2.99.0.beta2 / 2014-02-17
644
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.99.0.beta1...v2.99.0.beta2)
645
+
646
+ Deprecations:
647
+
648
+ * Deprecate chaining `by`, `by_at_least`, `by_at_most` or `to` off of
649
+ `expect { }.not_to change { }`. The docs have always said these are
650
+ not supported for the negative form but now they explicitly raise
651
+ errors in RSpec 3. (Myron Marston)
652
+ * Change the semantics of `expect { }.not_to change { x }.from(y)`.
653
+ In RSpec 2.x, this expectation would only fail if `x` started with
654
+ the value of `y` and changed. If it started with a different value
655
+ and changed, it would pass. In RSpec 3, it will pass only if the
656
+ value starts at `y` and it does not change. (Myron Marston)
657
+ * Deprecate `matcher == value` as an alias for `matcher.matches?(value)`,
658
+ in favor of `matcher === value`. (Myron Marston)
659
+ * Deprecate `RSpec::Matchers::OperatorMatcher` in favor of
660
+ `RSpec::Matchers::BuiltIn::OperatorMatcher`. (Myron Marston)
661
+ * Deprecate auto-integration with Test::Unit and minitest.
662
+ Instead, include `RSpec::Matchers` in the appropriate test case
663
+ base class yourself. (Myron Marston)
664
+ * Deprecate treating `#expected` on a DSL-generated custom matcher
665
+ as an array when only 1 argument is passed to the matcher method.
666
+ In RSpec 3 it will be the single value in order to make diffs
667
+ work properly. (Jon Rowe)
668
+
669
+ ### 2.99.0.beta1 / 2013-11-07
670
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.14.4...v2.99.0.beta1)
671
+
672
+ Deprecations
673
+
674
+ * Deprecate `have`, `have_at_least` and `have_at_most`. You can continue using those
675
+ matchers through https://github.com/rspec/rspec-collection_matchers, or
676
+ you can rewrite your expectations with something like
677
+ `expect(your_object.size).to eq(num)`. (Hugo Baraúna)
678
+ * Deprecate `be_xyz` predicate matcher when `xyz?` is a private method.
679
+ (Jon Rowe)
680
+ * Deprecate `be_true`/`be_false` in favour of `be_truthy`/`be_falsey`
681
+ (for Ruby's conditional semantics) or `be true`/`be false`
682
+ (for exact equality). (Sam Phippen)
683
+ * Deprecate calling helper methods from a custom matcher with the wrong
684
+ scope. (Myron Marston)
685
+ * `def self.foo` / `extend Helper` can be used to add macro methods
686
+ (e.g. methods that call the custom matcher DSL methods), but should
687
+ not be used to define helper methods called from within the DSL
688
+ blocks.
689
+ * `def foo` / `include Helper` is the opposite: it's for helper methods
690
+ callable from within a DSL block, but not for defining macros.
691
+ * RSpec 2.x allowed helper methods defined either way to be used for
692
+ either purpose, but RSpec 3.0 will not.
693
+
694
+ ### 2.14.5 / 2014-02-01
695
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.14.4...v2.14.5)
696
+
697
+ Bug fixes
698
+
699
+ * Fix wrong matcher descriptions with falsey expected value
700
+ (yujinakayama)
701
+
702
+ ### 2.14.4 / 2013-11-06
703
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.14.3...v2.14.4)
704
+
705
+ Bug fixes
706
+
707
+ * Make the `match` matcher produce a diff output. (Jon Rowe, Ben Moss)
708
+ * Choose encoding for diff's more intelligently, and when all else fails fall
709
+ back to default internal encoding with replacing characters. (Jon Rowe)
710
+
711
+ ### 2.14.3 / 2013-09-22
712
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.14.2...v2.14.3)
713
+
714
+ Bug fixes
715
+
716
+ * Fix operator matchers (`should` syntax) when `method` is redefined on target.
717
+ (Brandon Turner)
718
+ * Fix diffing of hashes with object based keys. (Jon Rowe)
719
+ * Fix operator matchers (`should` syntax) when operator is defined via
720
+ `method_missing` (Jon Rowe)
721
+
722
+ ### 2.14.2 / 2013-08-14
723
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.14.1...v2.14.2)
724
+
725
+ Bug fixes
726
+
727
+ * Fix `be_<predicate>` matcher to not support operator chaining like the
728
+ `be` matcher does (e.g. `be == 5`). This led to some odd behaviors
729
+ since `be_<predicate> == anything` returned a `BeComparedTo` matcher
730
+ and was thus always truthy. This was a consequence of the implementation
731
+ (e.g. subclassing the basic `Be` matcher) and was not intended behavior.
732
+ (Myron Marston).
733
+ * Fix `change` matcher to compare using `==` in addition to `===`. This
734
+ is important for an expression like:
735
+ `expect {}.to change { a.class }.from(ClassA).to(ClassB)` because
736
+ `SomeClass === SomeClass` returns false. (Myron Marston)
737
+
738
+ ### 2.14.1 / 2013-08-08
739
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.14.0...2.14.1)
740
+
741
+ Bug fixes
742
+
743
+ * Ensure diff output uses the same encoding as the encoding of
744
+ the string being diff'd to prevent `Encoding::UndefinedConversionError`
745
+ errors (Jon Rowe).
746
+
747
+ ### 2.14.0 / 2013-07-06
748
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.14.0.rc1...v2.14.0)
749
+
750
+ Bug fixes
751
+
752
+ * Values that are not matchers use `#inspect`, rather than `#description` for
753
+ documentation output (Andy Lindeman, Sam Phippen).
754
+ * Make `expect(a).to be_within(x).percent_of(y)` work with negative y
755
+ (Katsuhiko Nishimra).
756
+ * Make the `be_predicate` matcher work as expected used with `expect{...}.to
757
+ change...` (Sam Phippen).
758
+
759
+ ### 2.14.0.rc1 / 2013-05-27
760
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.13.0...v2.14.0.rc1)
761
+
762
+ Enhancements
763
+
764
+ * Enhance `yield_control` so that you can specify an exact or relative
765
+ number of times: `expect { }.to yield_control.exactly(3).times`,
766
+ `expect { }.to yield_control.at_least(2).times`, etc (Bartek
767
+ Borkowski).
768
+ * Make the differ that is used when an expectation fails better handle arrays
769
+ by splitting each element of the array onto its own line. (Sam Phippen)
770
+ * Accept duck-typed strings that respond to `:to_str` as expectation messages.
771
+ (Toby Ovod-Everett)
772
+
773
+ Bug fixes
774
+
775
+ * Fix differ to not raise errors when dealing with differently-encoded
776
+ strings (Jon Rowe).
777
+ * Fix `expect(something).to be_within(x).percent_of(y)` where x and y are both
778
+ integers (Sam Phippen).
779
+ * Fix `have` matcher to handle the fact that on ruby 2.0,
780
+ `Enumerator#size` may return nil (Kenta Murata).
781
+ * Fix `expect { raise s }.to raise_error(s)` where s is an error instance
782
+ on ruby 2.0 (Sam Phippen).
783
+ * Fix `expect(object).to raise_error` passing. This now warns the user and
784
+ fails the spec (tomykaira).
785
+
786
+ Deprecations
787
+
788
+ * Deprecate `expect { }.not_to raise_error(SpecificErrorClass)` or
789
+ `expect { }.not_to raise_error("some specific message")`. Using
790
+ these was prone to hiding failures as they would allow _any other
791
+ error_ to pass. (Sam Phippen and David Chelimsky)
792
+
793
+ ### 2.13.0 / 2013-02-23
794
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.12.1...v2.13.0)
795
+
796
+ Enhancements
797
+
798
+ * Add support for percent deltas to `be_within` matcher:
799
+ `expect(value).to be_within(10).percent_of(expected)`
800
+ (Myron Marston).
801
+ * Add support to `include` matcher to allow it to be given a list
802
+ of matchers as the expecteds to match against (Luke Redpath).
803
+
804
+ Bug fixes
805
+
806
+ * Fix `change` matcher so that it dups strings in order to handle
807
+ mutated strings (Myron Marston).
808
+ * Fix `should be =~ /some regex/` / `expect(...).to be =~ /some regex/`.
809
+ Previously, these either failed with a confusing `undefined method
810
+ matches?' for false:FalseClass` error or were no-ops that didn't
811
+ actually verify anything (Myron Marston).
812
+ * Add compatibility for diff-lcs 1.2 and relax the version
813
+ constraint (Peter Goldstein).
814
+ * Fix DSL-generated matchers to allow multiple instances of the
815
+ same matcher in the same example to have different description
816
+ and failure messages based on the expected value (Myron Marston).
817
+ * Prevent `undefined method #split for Array` error when dumping
818
+ the diff of an array of multiline strings (Myron Marston).
819
+ * Don't blow up when comparing strings that are in an encoding
820
+ that is not ASCII compatible (Myron Marston).
821
+ * Remove confusing "Check the implementation of #==" message
822
+ printed for empty diffs (Myron Marston).
823
+
824
+ ### 2.12.1 / 2012-12-15
825
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.12.0...v2.12.1)
826
+
827
+ Bug fixes
828
+
829
+ * Improve the failure message for an expression like
830
+ `{}.should =~ {}`. (Myron Marston and Andy Lindeman)
831
+ * Provide a `match_regex` alias so that custom matchers
832
+ built using the matcher DSL can use it (since `match`
833
+ is a different method in that context).
834
+ (Steven Harman)
835
+
836
+ ### 2.12.0 / 2012-11-12
837
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.11.3...v2.12.0)
838
+
839
+ Enhancements
840
+
841
+ * Colorize diffs if the `--color` option is configured. (Alex Coplan)
842
+ * Include backtraces in unexpected errors handled by `raise_error`
843
+ matcher (Myron Marston)
844
+ * Print a warning when users accidentally pass a non-string argument
845
+ as an expectation message (Sam Phippen)
846
+ * `=~` and `match_array` matchers output a more useful error message when
847
+ the actual value is not an array (or an object that responds to `#to_ary`)
848
+ (Sam Phippen)
849
+
850
+ Bug fixes
851
+
852
+ * Fix `include` matcher so that `expect({}).to include(:a => nil)`
853
+ fails as it should (Sam Phippen).
854
+ * Fix `be_an_instance_of` matcher so that `Class#to_s` is used in the
855
+ description rather than `Class#inspect`, since some classes (like
856
+ `ActiveRecord::Base`) define a long, verbose `#inspect`.
857
+ (Tom Stuart)
858
+
859
+ ### 2.11.3 / 2012-09-04
860
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.11.2...v2.11.3)
861
+
862
+ Bug fixes
863
+
864
+ * Fix (and deprecate) `expect { }.should` syntax so that it works even
865
+ though it was never a documented or intended syntax. It worked as a
866
+ consequence of the implementation of `expect` in RSpec 2.10 and
867
+ earlier. (Myron Marston)
868
+ * Ensure #== is defined on built in matchers so that they can be composed.
869
+ For example:
870
+
871
+ expect {
872
+ user.emailed!
873
+ }.to change { user.last_emailed_at }.to be_within(1.second).of(Time.zone.now)
874
+
875
+ ### 2.11.2 / 2012-07-25
876
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.11.1...v2.11.2)
877
+
878
+ Bug fixes
879
+
880
+ * Define `should` and `should_not` on `Object` rather than `BasicObject`
881
+ on MacRuby. On MacRuby, `BasicObject` is defined but is not the root
882
+ of the object hierarchy. (Gabriel Gilder)
883
+
884
+ ### 2.11.1 / 2012-07-08
885
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.11.0...v2.11.1)
886
+
887
+ Bug fixes
888
+
889
+ * Constrain `actual` in `be_within` matcher to values that respond to `-` instead
890
+ of requiring a specific type.
891
+ * `Time`, for example, is a legit alternative.
892
+
893
+ ### 2.11.0 / 2012-07-07
894
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.10.0...v2.11.0)
895
+
896
+ Enhancements
897
+
898
+ * Expand `expect` syntax so that it supports expections on bare values
899
+ in addition to blocks (Myron Marston).
900
+ * Add configuration options to control available expectation syntaxes
901
+ (Myron Marston):
902
+ * `RSpec.configuration.expect_with(:rspec) { |c| c.syntax = :expect }`
903
+ * `RSpec.configuration.expect_with(:rspec) { |c| c.syntax = :should }`
904
+ * `RSpec.configuration.expect_with(:rspec) { |c| c.syntax = [:should, :expect] }`
905
+ * `RSpec.configuration.add_should_and_should_not_to Delegator`
906
+
907
+ Bug fixes
908
+
909
+ * Allow only `Numeric` values to be the "actual" in the `be_within` matcher.
910
+ This prevents confusing error messages. (Su Zhang @zhangsu)
911
+ * Define `should` and `should_not` on `BasicObject` rather than `Kernel`
912
+ on 1.9. This makes `should` and `should_not` work properly with
913
+ `BasicObject`-subclassed proxy objects like `Delegator`. (Myron
914
+ Marston)
915
+
916
+ ### 2.10.0 / 2012-05-03
917
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.9.1...v2.10.0)
918
+
919
+ Enhancements
920
+
921
+ * Add new `start_with` and `end_with` matchers (Jeremy Wadsack)
922
+ * Add new matchers for specifying yields (Myron Marston):
923
+ * `expect {...}.to yield_control`
924
+ * `expect {...}.to yield_with_args(1, 2, 3)`
925
+ * `expect {...}.to yield_with_no_args`
926
+ * `expect {...}.to yield_successive_args(1, 2, 3)`
927
+ * `match_unless_raises` takes multiple exception args
928
+
929
+ Bug fixes
930
+
931
+ * Fix `be_within` matcher to be inclusive of delta.
932
+ * Fix message-specific specs to pass on Rubinius (John Firebaugh)
933
+
934
+ ### 2.9.1 / 2012-04-03
935
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.9.0...v2.9.1)
936
+
937
+ Bug fixes
938
+
939
+ * Provide a helpful message if the diff between two objects is empty.
940
+ * Fix bug diffing single strings with multiline strings.
941
+ * Fix for error with using custom matchers inside other custom matchers
942
+ (mirasrael)
943
+ * Fix using execution context methods in nested DSL matchers (mirasrael)
944
+
945
+ ### 2.9.0 / 2012-03-17
946
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.8.0...v2.9.0)
947
+
948
+ Enhancements
949
+
950
+ * Move built-in matcher classes to RSpec::Matchers::BuiltIn to reduce pollution
951
+ of RSpec::Matchers (which is included in every example).
952
+ * Autoload files with matcher classes to improve load time.
953
+
954
+ Bug fixes
955
+
956
+ * Align `respond_to?` and `method_missing` in DSL-defined matchers.
957
+ * Clear out user-defined instance variables between invocations of DSL-defined
958
+ matchers.
959
+ * Dup the instance of a DSL generated matcher so its state is not changed by
960
+ subsequent invocations.
961
+ * Treat expected args consistently across positive and negative expectations
962
+ (thanks to Ralf Kistner for the heads up)
963
+
964
+ ### 2.8.0 / 2012-01-04
965
+
966
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.8.0.rc2...v2.8.0)
967
+
968
+ Enhancements
969
+
970
+ * Better diff output for Hash (Philippe Creux)
971
+ * Eliminate Ruby warnings (Olek Janiszewski)
972
+
973
+ ### 2.8.0.rc2 / 2011-12-19
974
+
975
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.8.0.rc1...v2.8.0.rc2)
976
+
977
+ No changes for this release. Just releasing with the other rspec gems.
978
+
979
+ ### 2.8.0.rc1 / 2011-11-06
980
+
981
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.7.0...v2.8.0.rc1)
982
+
983
+ Enhancements
984
+
985
+ * Use classes for the built-in matchers (they're faster).
986
+ * Eliminate Ruby warnings (Matijs van Zuijlen)
987
+
988
+ ### 2.7.0 / 2011-10-16
989
+
990
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.6.0...v2.7.0)
991
+
992
+ Enhancements
993
+
994
+ * `HaveMatcher` converts argument using `to_i` (Alex Bepple & Pat Maddox)
995
+ * Improved failure message for the `have_xxx` matcher (Myron Marston)
996
+ * `HaveMatcher` supports `count` (Matthew Bellantoni)
997
+ * Change matcher dups `Enumerable` before the action, supporting custom
998
+ `Enumerable` types like `CollectionProxy` in Rails (David Chelimsky)
999
+
1000
+ Bug fixes
1001
+
1002
+ * Fix typo in `have(n).xyz` documentation (Jean Boussier)
1003
+ * fix `safe_sort` for ruby 1.9.2 (`Kernel` now defines `<=>` for Object) (Peter
1004
+ van Hardenberg)
1005
+
1006
+ ### 2.6.0 / 2011-05-12
1007
+
1008
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.5.0...v2.6.0)
1009
+
1010
+ Enhancements
1011
+
1012
+ * `change` matcher accepts regexps (Robert Davis)
1013
+ * better descriptions for `have_xxx` matchers (Magnus Bergmark)
1014
+ * `range.should cover(*values)` (Anders Furseth)
1015
+
1016
+ Bug fixes
1017
+
1018
+ * Removed non-ascii characters that were choking rcov (Geoffrey Byers)
1019
+ * change matcher dups arrays and hashes so their before/after states can be
1020
+ compared correctly.
1021
+ * Fix the order of inclusion of RSpec::Matchers in Test::Unit::TestCase and
1022
+ MiniTest::Unit::TestCase to prevent a SystemStackError (Myron Marston)
1023
+
1024
+ ### 2.5.0 / 2011-02-05
1025
+
1026
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.4.0...v2.5.0)
1027
+
1028
+ Enhancements
1029
+
1030
+ * `should exist` works with `exist?` or `exists?` (Myron Marston)
1031
+ * `expect { ... }.not_to do_something` (in addition to `to_not`)
1032
+
1033
+ Documentation
1034
+
1035
+ * improved docs for raise_error matcher (James Almond)
1036
+
1037
+ ### 2.4.0 / 2011-01-02
1038
+
1039
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.3.0...v2.4.0)
1040
+
1041
+ No functional changes in this release, which was made to align with the
1042
+ rspec-core-2.4.0 release.
1043
+
1044
+ Enhancements
1045
+
1046
+ * improved RDoc for change matcher (Jo Liss)
1047
+
1048
+ ### 2.3.0 / 2010-12-12
1049
+
1050
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.2.1...v2.3.0)
1051
+
1052
+ Enhancements
1053
+
1054
+ * diff strings when include matcher fails (Mike Sassak)
1055
+
1056
+ ### 2.2.0 / 2010-11-28
1057
+
1058
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.1.0...v2.2.0)
1059
+
1060
+ ### 2.1.0 / 2010-11-07
1061
+
1062
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.0.1...v2.1.0)
1063
+
1064
+ Enhancements
1065
+
1066
+ * `be_within(delta).of(expected)` matcher (Myron Marston)
1067
+ * Lots of new Cucumber features (Myron Marston)
1068
+ * Raise error if you try `should != expected` on Ruby-1.9 (Myron Marston)
1069
+ * Improved failure messages from `throw_symbol` (Myron Marston)
1070
+
1071
+ Bug fixes
1072
+
1073
+ * Eliminate hard dependency on `RSpec::Core` (Myron Marston)
1074
+ * `have_matcher` - use pluralize only when ActiveSupport inflections are indeed
1075
+ defined (Josep M Bach)
1076
+ * throw_symbol matcher no longer swallows exceptions (Myron Marston)
1077
+ * fix matcher chaining to avoid name collisions (Myron Marston)
1078
+
1079
+ ### 2.0.0 / 2010-10-10
1080
+
1081
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.0.0.rc...v2.0.0)
1082
+
1083
+ Enhancements
1084
+
1085
+ * Add match_for_should_not method to matcher DSL (Myron Marston)
1086
+
1087
+ Bug fixes
1088
+
1089
+ * `respond_to` matcher works correctly with `should_not` with multiple methods
1090
+ (Myron Marston)
1091
+ * `include` matcher works correctly with `should_not` with multiple values
1092
+ (Myron Marston)
1093
+
1094
+ ### 2.0.0.rc / 2010-10-05
1095
+
1096
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.0.0.beta.22...v2.0.0.rc)
1097
+
1098
+ Enhancements
1099
+
1100
+ * `require 'rspec/expectations'` in a T::U or MiniUnit suite (Josep M. Bach)
1101
+
1102
+ Bug fixes
1103
+
1104
+ * change by 0 passes/fails correctly (Len Smith)
1105
+ * Add description to satisfy matcher
1106
+
1107
+ ### 2.0.0.beta.22 / 2010-09-12
1108
+
1109
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.0.0.beta.20...v2.0.0.beta.22)
1110
+
1111
+ Enhancements
1112
+
1113
+ * diffing improvements
1114
+ * diff multiline strings
1115
+ * don't diff single line strings
1116
+ * don't diff numbers (silly)
1117
+ * diff regexp + multiline string
1118
+
1119
+ Bug fixes
1120
+ * `should[_not]` change now handles boolean values correctly