acfs 1.7.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (237) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +144 -116
  3. data/README.md +19 -24
  4. data/acfs.gemspec +7 -10
  5. data/lib/acfs/collections/paginatable.rb +11 -11
  6. data/lib/acfs/configuration.rb +1 -1
  7. data/lib/acfs/errors.rb +6 -6
  8. data/lib/acfs/global.rb +2 -2
  9. data/lib/acfs/location.rb +1 -1
  10. data/lib/acfs/resource/attributes/uuid.rb +1 -1
  11. data/lib/acfs/resource/attributes.rb +1 -1
  12. data/lib/acfs/resource/dirty.rb +1 -1
  13. data/lib/acfs/resource/operational.rb +4 -4
  14. data/lib/acfs/resource/query_methods.rb +3 -3
  15. data/lib/acfs/response/status.rb +1 -1
  16. data/lib/acfs/service/middleware.rb +2 -2
  17. data/lib/acfs/singleton_resource.rb +2 -2
  18. data/lib/acfs/stub.rb +1 -1
  19. data/lib/acfs/version.rb +2 -2
  20. data/lib/acfs/yard.rb +1 -0
  21. data/spec/acfs/adapter/typhoeus_spec.rb +3 -3
  22. data/spec/acfs/configuration_spec.rb +1 -1
  23. data/spec/acfs/global_spec.rb +5 -5
  24. data/spec/acfs/location_spec.rb +1 -1
  25. data/spec/acfs/middleware/json_spec.rb +1 -1
  26. data/spec/acfs/middleware/message_pack_spec.rb +1 -1
  27. data/spec/acfs/operation_spec.rb +1 -1
  28. data/spec/acfs/resource/attributes/boolean_spec.rb +31 -31
  29. data/spec/acfs/resource/attributes/date_time_spec.rb +9 -9
  30. data/spec/acfs/resource/attributes/dict_spec.rb +10 -10
  31. data/spec/acfs/resource/attributes/float_spec.rb +11 -11
  32. data/spec/acfs/resource/attributes/integer_spec.rb +6 -6
  33. data/spec/acfs/resource/attributes/list_spec.rb +1 -1
  34. data/spec/acfs/resource/attributes/uuid_spec.rb +8 -8
  35. data/spec/acfs/resource/attributes_spec.rb +8 -8
  36. data/spec/acfs/resource/dirty_spec.rb +1 -1
  37. data/spec/acfs/resource/persistence_spec.rb +7 -7
  38. data/spec/acfs/resource/query_methods_spec.rb +1 -1
  39. data/spec/acfs/runner_spec.rb +12 -12
  40. data/spec/acfs/stub_spec.rb +13 -18
  41. data/spec/acfs_spec.rb +4 -4
  42. data/spec/spec_helper.rb +9 -5
  43. data/spec/support/hash.rb +1 -1
  44. data/vendor/bundle/ruby/3.4.0/bundler/gems/rubocop-config-67802c9d1826/LICENSE +21 -0
  45. data/vendor/bundle/ruby/3.4.0/bundler/gems/rubocop-config-67802c9d1826/README.md +23 -0
  46. data/vendor/bundle/ruby/3.4.0/bundler/gems/rubocop-config-67802c9d1826/rubocop-config.gemspec +31 -0
  47. data/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.1/CHANGELOG.md +205 -0
  48. data/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.1/MIT-LICENSE +21 -0
  49. data/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.1/README.rdoc +57 -0
  50. data/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.1/CHANGELOG.md +67 -0
  51. data/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.1/MIT-LICENSE +21 -0
  52. data/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.1/README.rdoc +40 -0
  53. data/vendor/bundle/ruby/3.4.0/gems/activemodel-8.0.1/CHANGELOG.md +110 -0
  54. data/vendor/bundle/ruby/3.4.0/gems/activemodel-8.0.1/MIT-LICENSE +21 -0
  55. data/vendor/bundle/ruby/3.4.0/gems/activemodel-8.0.1/README.rdoc +266 -0
  56. data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.1/CHANGELOG.md +157 -0
  57. data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.1/MIT-LICENSE +20 -0
  58. data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.1/README.rdoc +40 -0
  59. data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/CHANGELOG.md +301 -0
  60. data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/LICENSE.txt +202 -0
  61. data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/README.md +121 -0
  62. data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/addressable.gemspec +28 -0
  63. data/vendor/bundle/ruby/3.4.0/gems/appraisal-2.5.0/MIT-LICENSE +21 -0
  64. data/vendor/bundle/ruby/3.4.0/gems/appraisal-2.5.0/README.md +243 -0
  65. data/vendor/bundle/ruby/3.4.0/gems/appraisal-2.5.0/appraisal.gemspec +29 -0
  66. data/vendor/bundle/ruby/3.4.0/gems/base64-0.2.0/LICENSE.txt +22 -0
  67. data/vendor/bundle/ruby/3.4.0/gems/base64-0.2.0/README.md +48 -0
  68. data/vendor/bundle/ruby/3.4.0/gems/benchmark-0.4.0/README.md +138 -0
  69. data/vendor/bundle/ruby/3.4.0/gems/benchmark-0.4.0/benchmark.gemspec +32 -0
  70. data/vendor/bundle/ruby/3.4.0/gems/bigdecimal-3.1.9/LICENSE +56 -0
  71. data/vendor/bundle/ruby/3.4.0/gems/bigdecimal-3.1.9/bigdecimal.gemspec +57 -0
  72. data/vendor/bundle/ruby/3.4.0/gems/builder-3.3.0/MIT-LICENSE +20 -0
  73. data/vendor/bundle/ruby/3.4.0/gems/builder-3.3.0/README.md +258 -0
  74. data/vendor/bundle/ruby/3.4.0/gems/builder-3.3.0/builder.gemspec +49 -0
  75. data/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/CHANGELOG.md +603 -0
  76. data/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/LICENSE.txt +21 -0
  77. data/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/README.md +407 -0
  78. data/vendor/bundle/ruby/3.4.0/gems/connection_pool-2.5.0/LICENSE +20 -0
  79. data/vendor/bundle/ruby/3.4.0/gems/connection_pool-2.5.0/README.md +167 -0
  80. data/vendor/bundle/ruby/3.4.0/gems/connection_pool-2.5.0/connection_pool.gemspec +24 -0
  81. data/vendor/bundle/ruby/3.4.0/gems/crack-1.0.0/LICENSE +20 -0
  82. data/vendor/bundle/ruby/3.4.0/gems/crack-1.0.0/README.md +43 -0
  83. data/vendor/bundle/ruby/3.4.0/gems/crass-1.0.6/LICENSE +18 -0
  84. data/vendor/bundle/ruby/3.4.0/gems/crass-1.0.6/README.md +192 -0
  85. data/vendor/bundle/ruby/3.4.0/gems/crass-1.0.6/crass.gemspec +31 -0
  86. data/vendor/bundle/ruby/3.4.0/gems/diff-lcs-1.5.1/License.md +41 -0
  87. data/vendor/bundle/ruby/3.4.0/gems/diff-lcs-1.5.1/README.rdoc +84 -0
  88. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.1/LICENSE.txt +22 -0
  89. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.1/drb.gemspec +41 -0
  90. data/vendor/bundle/ruby/3.4.0/gems/erubi-1.13.1/CHANGELOG +111 -0
  91. data/vendor/bundle/ruby/3.4.0/gems/erubi-1.13.1/MIT-LICENSE +21 -0
  92. data/vendor/bundle/ruby/3.4.0/gems/erubi-1.13.1/README.rdoc +151 -0
  93. data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/CHANGELOG.md +375 -0
  94. data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/LICENSE +20 -0
  95. data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/README.md +118 -0
  96. data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/ethon.gemspec +26 -0
  97. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/CHANGELOG.md +465 -0
  98. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/LICENSE +24 -0
  99. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/LICENSE.SPECS +22 -0
  100. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/README.md +137 -0
  101. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/ffi.gemspec +42 -0
  102. data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/LICENSE +19 -0
  103. data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/README.md +298 -0
  104. data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/changelog.md +119 -0
  105. data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/hashdiff.gemspec +39 -0
  106. data/vendor/bundle/ruby/3.4.0/gems/i18n-1.14.6/MIT-LICENSE +20 -0
  107. data/vendor/bundle/ruby/3.4.0/gems/i18n-1.14.6/README.md +127 -0
  108. data/vendor/bundle/ruby/3.4.0/gems/json-2.9.1/README.md +195 -0
  109. data/vendor/bundle/ruby/3.4.0/gems/json-2.9.1/json.gemspec +64 -0
  110. data/vendor/bundle/ruby/3.4.0/gems/logger-1.6.5/README.md +104 -0
  111. data/vendor/bundle/ruby/3.4.0/gems/logger-1.6.5/logger.gemspec +28 -0
  112. data/vendor/bundle/ruby/3.4.0/gems/loofah-2.24.0/CHANGELOG.md +591 -0
  113. data/vendor/bundle/ruby/3.4.0/gems/loofah-2.24.0/MIT-LICENSE.txt +23 -0
  114. data/vendor/bundle/ruby/3.4.0/gems/loofah-2.24.0/README.md +410 -0
  115. data/vendor/bundle/ruby/3.4.0/gems/minitest-5.25.4/README.rdoc +835 -0
  116. data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/CHANGELOG.md +275 -0
  117. data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/LICENSE.md +20 -0
  118. data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/README.md +121 -0
  119. data/vendor/bundle/ruby/3.4.0/gems/nokogiri-1.18.1-x86_64-linux-gnu/LICENSE-DEPENDENCIES.md +2224 -0
  120. data/vendor/bundle/ruby/3.4.0/gems/nokogiri-1.18.1-x86_64-linux-gnu/LICENSE.md +9 -0
  121. data/vendor/bundle/ruby/3.4.0/gems/nokogiri-1.18.1-x86_64-linux-gnu/README.md +293 -0
  122. data/vendor/bundle/ruby/3.4.0/gems/public_suffix-6.0.1/CHANGELOG.md +491 -0
  123. data/vendor/bundle/ruby/3.4.0/gems/public_suffix-6.0.1/LICENSE.txt +22 -0
  124. data/vendor/bundle/ruby/3.4.0/gems/public_suffix-6.0.1/README.md +222 -0
  125. data/vendor/bundle/ruby/3.4.0/gems/racc-1.8.1/ChangeLog +846 -0
  126. data/vendor/bundle/ruby/3.4.0/gems/racc-1.8.1/README.ja.rdoc +58 -0
  127. data/vendor/bundle/ruby/3.4.0/gems/racc-1.8.1/README.rdoc +60 -0
  128. data/vendor/bundle/ruby/3.4.0/gems/rack-3.1.8/CHANGELOG.md +998 -0
  129. data/vendor/bundle/ruby/3.4.0/gems/rack-3.1.8/MIT-LICENSE +20 -0
  130. data/vendor/bundle/ruby/3.4.0/gems/rack-3.1.8/README.md +328 -0
  131. data/vendor/bundle/ruby/3.4.0/gems/rack-session-2.1.0/license.md +72 -0
  132. data/vendor/bundle/ruby/3.4.0/gems/rack-session-2.1.0/readme.md +47 -0
  133. data/vendor/bundle/ruby/3.4.0/gems/rack-test-2.2.0/MIT-LICENSE.txt +20 -0
  134. data/vendor/bundle/ruby/3.4.0/gems/rack-test-2.2.0/README.md +139 -0
  135. data/vendor/bundle/ruby/3.4.0/gems/rails-dom-testing-2.2.0/MIT-LICENSE +23 -0
  136. data/vendor/bundle/ruby/3.4.0/gems/rails-dom-testing-2.2.0/README.md +91 -0
  137. data/vendor/bundle/ruby/3.4.0/gems/rails-html-sanitizer-1.6.2/CHANGELOG.md +255 -0
  138. data/vendor/bundle/ruby/3.4.0/gems/rails-html-sanitizer-1.6.2/MIT-LICENSE +23 -0
  139. data/vendor/bundle/ruby/3.4.0/gems/rails-html-sanitizer-1.6.2/README.md +267 -0
  140. data/vendor/bundle/ruby/3.4.0/gems/rake-13.2.1/MIT-LICENSE +21 -0
  141. data/vendor/bundle/ruby/3.4.0/gems/rake-13.2.1/README.rdoc +155 -0
  142. data/vendor/bundle/ruby/3.4.0/gems/rake-13.2.1/rake.gemspec +101 -0
  143. data/vendor/bundle/ruby/3.4.0/gems/rake-release-1.3.0/LICENSE +21 -0
  144. data/vendor/bundle/ruby/3.4.0/gems/rake-release-1.3.0/README.md +107 -0
  145. data/vendor/bundle/ruby/3.4.0/gems/rake-release-1.3.0/rake-release.gemspec +23 -0
  146. data/vendor/bundle/ruby/3.4.0/gems/rexml-3.4.0/LICENSE.txt +22 -0
  147. data/vendor/bundle/ruby/3.4.0/gems/rexml-3.4.0/README.md +57 -0
  148. data/vendor/bundle/ruby/3.4.0/gems/rspec-3.13.0/LICENSE.md +27 -0
  149. data/vendor/bundle/ruby/3.4.0/gems/rspec-3.13.0/README.md +47 -0
  150. data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/Changelog.md +68 -0
  151. data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/LICENSE.txt +27 -0
  152. data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/README.md +76 -0
  153. data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/rspec-collection_matchers.gemspec +33 -0
  154. data/vendor/bundle/ruby/3.4.0/gems/rspec-core-3.13.2/Changelog.md +2415 -0
  155. data/vendor/bundle/ruby/3.4.0/gems/rspec-core-3.13.2/LICENSE.md +26 -0
  156. data/vendor/bundle/ruby/3.4.0/gems/rspec-core-3.13.2/README.md +389 -0
  157. data/vendor/bundle/ruby/3.4.0/gems/rspec-expectations-3.13.3/Changelog.md +1352 -0
  158. data/vendor/bundle/ruby/3.4.0/gems/rspec-expectations-3.13.3/LICENSE.md +25 -0
  159. data/vendor/bundle/ruby/3.4.0/gems/rspec-expectations-3.13.3/README.md +326 -0
  160. data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/Changelog.md +73 -0
  161. data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/LICENSE.txt +27 -0
  162. data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/README.md +104 -0
  163. data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/rspec-its.gemspec +31 -0
  164. data/vendor/bundle/ruby/3.4.0/gems/rspec-mocks-3.13.2/Changelog.md +1299 -0
  165. data/vendor/bundle/ruby/3.4.0/gems/rspec-mocks-3.13.2/LICENSE.md +25 -0
  166. data/vendor/bundle/ruby/3.4.0/gems/rspec-mocks-3.13.2/README.md +465 -0
  167. data/vendor/bundle/ruby/3.4.0/gems/rspec-support-3.13.2/Changelog.md +408 -0
  168. data/vendor/bundle/ruby/3.4.0/gems/rspec-support-3.13.2/LICENSE.md +23 -0
  169. data/vendor/bundle/ruby/3.4.0/gems/rspec-support-3.13.2/README.md +40 -0
  170. data/vendor/bundle/ruby/3.4.0/gems/securerandom-0.4.1/README.md +72 -0
  171. data/vendor/bundle/ruby/3.4.0/gems/thor-1.3.2/LICENSE.md +20 -0
  172. data/vendor/bundle/ruby/3.4.0/gems/thor-1.3.2/README.md +45 -0
  173. data/vendor/bundle/ruby/3.4.0/gems/thor-1.3.2/thor.gemspec +33 -0
  174. data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/CHANGELOG.md +410 -0
  175. data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/LICENSE +22 -0
  176. data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/README.md +588 -0
  177. data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/typhoeus.gemspec +25 -0
  178. data/vendor/bundle/ruby/3.4.0/gems/tzinfo-2.0.6/LICENSE +19 -0
  179. data/vendor/bundle/ruby/3.4.0/gems/tzinfo-2.0.6/README.md +406 -0
  180. data/vendor/bundle/ruby/3.4.0/gems/uri-1.0.2/README.md +55 -0
  181. data/vendor/bundle/ruby/3.4.0/gems/useragent-0.16.11/LICENSE +20 -0
  182. data/vendor/bundle/ruby/3.4.0/gems/useragent-0.16.11/README.md +42 -0
  183. data/vendor/bundle/ruby/3.4.0/gems/webmock-3.24.0/CHANGELOG.md +2104 -0
  184. data/vendor/bundle/ruby/3.4.0/gems/webmock-3.24.0/LICENSE +20 -0
  185. data/vendor/bundle/ruby/3.4.0/gems/webmock-3.24.0/README.md +1222 -0
  186. data/vendor/bundle/ruby/3.4.0/specifications/actionpack-8.0.1.gemspec +36 -0
  187. data/vendor/bundle/ruby/3.4.0/specifications/actionview-8.0.1.gemspec +33 -0
  188. data/vendor/bundle/ruby/3.4.0/specifications/activemodel-8.0.1.gemspec +26 -0
  189. data/vendor/bundle/ruby/3.4.0/specifications/activesupport-8.0.1.gemspec +38 -0
  190. data/vendor/bundle/ruby/3.4.0/specifications/addressable-2.8.7.gemspec +30 -0
  191. data/vendor/bundle/ruby/3.4.0/specifications/appraisal-2.5.0.gemspec +31 -0
  192. data/vendor/bundle/ruby/3.4.0/specifications/base64-0.2.0.gemspec +23 -0
  193. data/vendor/bundle/ruby/3.4.0/specifications/benchmark-0.4.0.gemspec +23 -0
  194. data/vendor/bundle/ruby/3.4.0/specifications/bigdecimal-3.1.9.gemspec +25 -0
  195. data/vendor/bundle/ruby/3.4.0/specifications/builder-3.3.0.gemspec +22 -0
  196. data/vendor/bundle/ruby/3.4.0/specifications/concurrent-ruby-1.3.5.gemspec +24 -0
  197. data/vendor/bundle/ruby/3.4.0/specifications/connection_pool-2.5.0.gemspec +28 -0
  198. data/vendor/bundle/ruby/3.4.0/specifications/crack-1.0.0.gemspec +27 -0
  199. data/vendor/bundle/ruby/3.4.0/specifications/crass-1.0.6.gemspec +27 -0
  200. data/vendor/bundle/ruby/3.4.0/specifications/diff-lcs-1.5.1.gemspec +37 -0
  201. data/vendor/bundle/ruby/3.4.0/specifications/drb-2.2.1.gemspec +22 -0
  202. data/vendor/bundle/ruby/3.4.0/specifications/erubi-1.13.1.gemspec +29 -0
  203. data/vendor/bundle/ruby/3.4.0/specifications/ethon-0.16.0.gemspec +24 -0
  204. data/vendor/bundle/ruby/3.4.0/specifications/ffi-1.17.1-x86_64-linux-gnu.gemspec +31 -0
  205. data/vendor/bundle/ruby/3.4.0/specifications/hashdiff-1.1.2.gemspec +30 -0
  206. data/vendor/bundle/ruby/3.4.0/specifications/i18n-1.14.6.gemspec +27 -0
  207. data/vendor/bundle/ruby/3.4.0/specifications/json-2.9.1.gemspec +0 -0
  208. data/vendor/bundle/ruby/3.4.0/specifications/logger-1.6.5.gemspec +22 -0
  209. data/vendor/bundle/ruby/3.4.0/specifications/loofah-2.24.0.gemspec +27 -0
  210. data/vendor/bundle/ruby/3.4.0/specifications/minitest-5.25.4.gemspec +31 -0
  211. data/vendor/bundle/ruby/3.4.0/specifications/multi_json-1.15.0.gemspec +26 -0
  212. data/vendor/bundle/ruby/3.4.0/specifications/nokogiri-1.18.1-x86_64-linux-gnu.gemspec +31 -0
  213. data/vendor/bundle/ruby/3.4.0/specifications/public_suffix-6.0.1.gemspec +24 -0
  214. data/vendor/bundle/ruby/3.4.0/specifications/racc-1.8.1.gemspec +28 -0
  215. data/vendor/bundle/ruby/3.4.0/specifications/rack-3.1.8.gemspec +31 -0
  216. data/vendor/bundle/ruby/3.4.0/specifications/rack-session-2.1.0.gemspec +30 -0
  217. data/vendor/bundle/ruby/3.4.0/specifications/rack-test-2.2.0.gemspec +29 -0
  218. data/vendor/bundle/ruby/3.4.0/specifications/rails-dom-testing-2.2.0.gemspec +28 -0
  219. data/vendor/bundle/ruby/3.4.0/specifications/rails-html-sanitizer-1.6.2.gemspec +27 -0
  220. data/vendor/bundle/ruby/3.4.0/specifications/rake-13.2.1.gemspec +26 -0
  221. data/vendor/bundle/ruby/3.4.0/specifications/rake-release-1.3.0.gemspec +26 -0
  222. data/vendor/bundle/ruby/3.4.0/specifications/rexml-3.4.0.gemspec +25 -0
  223. data/vendor/bundle/ruby/3.4.0/specifications/rspec-3.13.0.gemspec +31 -0
  224. data/vendor/bundle/ruby/3.4.0/specifications/rspec-collection_matchers-1.2.1.gemspec +27 -0
  225. data/vendor/bundle/ruby/3.4.0/specifications/rspec-core-3.13.2.gemspec +39 -0
  226. data/vendor/bundle/ruby/3.4.0/specifications/rspec-expectations-3.13.3.gemspec +33 -0
  227. data/vendor/bundle/ruby/3.4.0/specifications/rspec-its-2.0.0.gemspec +27 -0
  228. data/vendor/bundle/ruby/3.4.0/specifications/rspec-mocks-3.13.2.gemspec +33 -0
  229. data/vendor/bundle/ruby/3.4.0/specifications/rspec-support-3.13.2.gemspec +29 -0
  230. data/vendor/bundle/ruby/3.4.0/specifications/securerandom-0.4.1.gemspec +23 -0
  231. data/vendor/bundle/ruby/3.4.0/specifications/thor-1.3.2.gemspec +28 -0
  232. data/vendor/bundle/ruby/3.4.0/specifications/typhoeus-1.4.1.gemspec +24 -0
  233. data/vendor/bundle/ruby/3.4.0/specifications/tzinfo-2.0.6.gemspec +30 -0
  234. data/vendor/bundle/ruby/3.4.0/specifications/uri-1.0.2.gemspec +23 -0
  235. data/vendor/bundle/ruby/3.4.0/specifications/useragent-0.16.11.gemspec +25 -0
  236. data/vendor/bundle/ruby/3.4.0/specifications/webmock-3.24.0.gemspec +45 -0
  237. metadata +204 -67
@@ -0,0 +1,1352 @@
1
+ ### Development
2
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.13.3...3-13-maintenance)
3
+
4
+ ### 3.13.3 / 2024-09-07
5
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.13.2...v3.13.3)
6
+
7
+ Bug Fixes:
8
+
9
+ * Fix passing a regular expression to the `include` matcher without a count constraint.
10
+ (Jon Rowe, #1485)
11
+
12
+ ### 3.13.2 / 2024-08-20
13
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.13.1...v3.13.2)
14
+
15
+ Bug Fixes:
16
+
17
+ * When using null object doubles, prevent typos triggering dynamic matchers.
18
+ (Eric Mueller, #1455)
19
+ * Use `RSpec.warning` for an expectation warning rather than `Kernel.warn`. (Jon Rowe, #1472)
20
+ * Prevent mismatched use of block and value matchers in compound expectations. (Phil Pirozhkov, #1476)
21
+ * Raise an error when passing no arguments to the `include` matcher. (Eric Mueller, #1479)
22
+
23
+ ### 3.13.1 / 2024-06-13
24
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.13.0...v3.13.1)
25
+
26
+ Bug Fixes:
27
+
28
+ * Fix the "false positive" warning message when using a negated `raise_error` matcher
29
+ with a `RegExp` instance. (Eric Mueller, #1456)
30
+
31
+ ### 3.13.0 / 2024-02-04
32
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.12.4...v3.13.0)
33
+
34
+ Enhancements:
35
+
36
+ * Update `eq` and `eql` matchers to better highlight difference in string encoding.
37
+ (Alan Foster, #1425)
38
+
39
+ ### 3.12.4 / 2024-02-04
40
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.12.3...v3.12.4)
41
+
42
+ Bug Fixes:
43
+
44
+ * Fix the diff for redefined `actual` and reassigned `@actual` in compound
45
+ expectations failure messages. (Phil Pirozhkov, #1440)
46
+
47
+ ### 3.12.3 / 2023-04-20
48
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.12.2...v3.12.3)
49
+
50
+ Bug Fixes:
51
+
52
+ * Fix `include` matcher when fuzzy matching on keys with a hash-like actual which
53
+ has a non standard `key?` method which may raise.
54
+ (Jon Rowe, #1416)
55
+
56
+ ### 3.12.2 / 2023-01-07
57
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.12.1...v3.12.2)
58
+
59
+ Bug Fixes:
60
+
61
+ * Prevent deprecation warning when using the `exist` matcher with `Dir`.
62
+ (Steve Dierker, #1398)
63
+
64
+ ### 3.12.1 / 2022-12-16
65
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.12.0...v3.12.1)
66
+
67
+ Bug Fixes:
68
+
69
+ * Pass keyword arguments through to aliased (and thus negated) matchers. (Jon Rowe, #1394)
70
+ * When handling failures in an aggregated_failures block (or example) prevent
71
+ the failure list leaking out. (Maciek Rząsa, #1392)
72
+
73
+ ### 3.12.0 / 2022-10-26
74
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.11.1...v3.12.0)
75
+
76
+ Enhancements:
77
+
78
+ * Add `an_array_matching` alias for `match_array` to improve readability as an argument
79
+ matcher. (Mark Schneider, #1361)
80
+
81
+ ### 3.11.1 / 2022-09-12
82
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.11.0...v3.11.1)
83
+
84
+ Bug Fixes:
85
+
86
+ * Allow the `contain_exactly` matcher to be reused by resetting its
87
+ internals on `matches?` (@bclayman-sq, #1326)
88
+ * Using the exist matcher on `FileTest` no longer produces a deprecation warning.
89
+ (Ryo Nakamura, #1383)
90
+
91
+ ### 3.11.0 / 2022-02-09
92
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.10.2...v3.11.0)
93
+
94
+ Enhancements:
95
+
96
+ * Return `true` from `aggregate_failures` when no exception occurs. (Jon Rowe, #1225)
97
+
98
+ Deprecations:
99
+
100
+ * Print a deprecation message when using the implicit block expectation syntax.
101
+ (Phil Pirozhkov, #1139)
102
+
103
+ ### 3.10.2 / 2022-01-14
104
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.10.1...v3.10.2)
105
+
106
+ Bug Fixes:
107
+
108
+ * Fix support for dynamic matchers for expectation target checks (Phil Pirozhkov, #1294)
109
+ * Fix `expect(array).to include(hash).times`, previously this would fail due to
110
+ matching the entire array as a single hash, rather than a member of the hash.
111
+ (Slava Kardakov, #1322)
112
+ * Ensure `raise_error` matches works with the `error_highlight` option from Ruby 3.1.
113
+ (Peter Goldstein, #1339)
114
+
115
+ ### 3.10.1 / 2020-12-27
116
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.10.0...v3.10.1)
117
+
118
+ Bug Fixes:
119
+
120
+ * Allow JRuby 9.2.x.x to generate backtraces normally rather than via our
121
+ backfill workaround. (#1230, Jon Rowe)
122
+
123
+ ### 3.10.0 / 2020-10-30
124
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.9.3...v3.10.0)
125
+
126
+ Enhancements:
127
+
128
+ * Allow `include` matcher to be chained with `once`, `at_least`, etc. for simple cases.
129
+ (Marc-André Lafortune, #1168)
130
+ * Add an explicit warning when `nil` is passed to `raise_error`. (Phil Pirozhkov, #1143)
131
+ * Improve `include` matcher's composability. (Phil Pirozhkov, #1155)
132
+ * Mocks expectations can now set a custom failure message.
133
+ (Benoit Tigeot and Nicolas Zermati, #1156)
134
+ * `aggregate_failures` now shows the backtrace line for each failure. (Fabricio Bedin, #1163)
135
+ * Support multiple combinations of `yield_control` modifiers like `at_least`, `at_most`.
136
+ (Jon Rowe, #1169)
137
+ * Dynamic `have_<n>` matchers now have output consistent with other dynamic matchers.
138
+ (Marc-André Lafortune, #1195)
139
+ * New config option `strict_predicate_matchers` allows predicate matcher to be strict
140
+ (i.e. match for `true` or `false`) instead of the default (match truthy vs `false` or `nil`).
141
+ (Marc-André Lafortune, #1196)
142
+
143
+ ### 3.9.4 / 2020-10-29
144
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.9.3...v3.9.4)
145
+
146
+ Bug Fixes:
147
+
148
+ * Fix regression with `be_` and `have_` matchers and arguments implementing `to_hash`
149
+ were they would act like keywords and be cast to a hash. (Jon Rowe, #1222)
150
+
151
+ ### 3.9.3 / 2020-10-23
152
+
153
+ Bug Fixes:
154
+
155
+ * Swap the comparison of the delta vs the expected for the `be_within` matcher allowing
156
+ more complicated oobjects to be compared providing they provide `abs` and other
157
+ comparison methods. (Kelly Stannard, #1182)
158
+ * Properly format expected in the description of the `be_within` matcher. (Jon Rowe, #1185)
159
+ * Remove warning when using keyword arguments with `be_` and `have_` matchers on 2.7.x
160
+ (Jon Rowe, #1187)
161
+ * Prevent formatting a single hash as a list of key value pairs in default failure messages
162
+ for custom matches (fixes formatting in `EnglishPhrasing#list`). (Robert Eshleman, #1193)
163
+ * Prevent errors from causing false positives when using `be <operator>` comparison, e.g.
164
+ `expect(1).not_to be < 'a'` will now correctly fail rather than pass. (Jon Rowe, #1208)
165
+
166
+
167
+ ### 3.9.2 / 2020-05-08
168
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.9.1...v3.9.2)
169
+
170
+ Bug Fixes:
171
+
172
+ * Issue a proper `ArgumentError` when invalid arguments are given to `yield_control`
173
+ modifiers such as `at_least` et al. (Marc-André Lafortune, #1167)
174
+ * Prevent Ruby 2.7 keyword arguments warning from being issued by custom
175
+ matcher definitions. (Jon Rowe, #1176)
176
+
177
+ ### 3.9.1 / 2020-03-13
178
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.9.0...v3.9.1)
179
+
180
+ Bug Fixes:
181
+
182
+ * Issue an improved warning when using `respond_to(...).with(n).arguments` and ignore
183
+ the warning when using with `have_attributes(...)`. (Jon Rowe, #1164)
184
+
185
+ ### 3.9.0 / 2019-10-08
186
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.8.6...v3.9.0)
187
+
188
+ Enhancements:
189
+
190
+ * The `respond_to` matcher now uses the signature from `initialize` to validate checks
191
+ for `new` (unless `new` is non standard). (Jon Rowe, #1072)
192
+ * Generated descriptions for matchers now use `is expected to` rather than `should` in
193
+ line with our preferred DSL. (Pete Johns, #1080, rspec/rspec-core#2572)
194
+ * Add the ability to re-raise expectation errors when matching
195
+ with `match_when_negated` blocks. (Jon Rowe, #1130)
196
+ * Add a warning when an empty diff is produce due to identical inspect output.
197
+ (Benoit Tigeot, #1126)
198
+
199
+ ### 3.8.6 / 2019-10-07
200
+
201
+ Bug Fixes:
202
+
203
+ * Revert #1125 due to the change being incompatible with our semantic versioning
204
+ policy.
205
+
206
+ ### 3.8.5 / 2019-10-02
207
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.8.4...v3.8.5)
208
+
209
+ Bug Fixes:
210
+
211
+ * Prevent unsupported implicit block expectation syntax from being used.
212
+ (Phil Pirozhkov, #1125)
213
+
214
+ ### 3.8.4 / 2019-06-10
215
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.8.3...v3.8.4)
216
+
217
+ Bug Fixes:
218
+
219
+ * Prevent false negatives when checking objects for the methods required to run the
220
+ the `be_an_instance_of` and `be_kind_of` matchers. (Nazar Matus, #1112)
221
+
222
+ ### 3.8.3 / 2019-04-20
223
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.8.2...v3.8.3)
224
+
225
+ Bug Fixes:
226
+
227
+ * Prevent composed `all` matchers from leaking into their siblings leading to duplicate
228
+ failures. (Jamie English, #1086)
229
+ * Prevent objects which change their hash on comparison from failing change checks.
230
+ (Phil Pirozhkov, #1100)
231
+ * Issue an `ArgumentError` rather than a `NoMethodError` when `be_an_instance_of` and
232
+ `be_kind_of` matchers encounter objects not supporting those methods.
233
+ (Taichi Ishitani, #1107)
234
+
235
+ ### 3.8.2 / 2018-10-09
236
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.8.1...v3.8.2)
237
+
238
+ Bug Fixes:
239
+
240
+ * Change `include` matcher to rely on a `respond_to?(:include?)` check rather than a direct
241
+ Hash comparison before calling `to_hash` to convert to a hash. (Jordan Owens, #1073)
242
+ * Prevent unexpected call stack jumps from causing an obscure error (`IndexError`), and
243
+ replace that error with a proper informative message. (Jon Rowe, #1076)
244
+
245
+ ### 3.8.1 / 2018-08-06
246
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.8.0...v3.8.1)
247
+
248
+ Bug Fixes:
249
+
250
+ * Fix regression in `include` matcher so stopped
251
+ `expect(hash.with_indifferent_access).to include(:symbol_key)`
252
+ from working. (Eito Katagiri, #1069)
253
+
254
+ ### 3.8.0 / 2018-08-04
255
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.7.0...v3.8.0)
256
+
257
+ Enhancements:
258
+
259
+ * Improve failure message of `change(receiver, :message)` by including the
260
+ receiver as `SomeClass#some_message`. (Tomohiro Hashidate, #1005)
261
+ * Improve `change` matcher so that it can correctly detect changes in
262
+ deeply nested mutable objects (such as arrays-of-hashes-of-arrays).
263
+ The improved logic uses the before/after `hash` value to see if the
264
+ object has been mutated, rather than shallow duping the object.
265
+ (Myron Marston, #1034)
266
+ * Improve `include` matcher so that pseudo-hash objects (e.g. objects
267
+ that decorate a hash using a `SimpleDelegator` or similar) are treated
268
+ as a hash, as long as they implement `to_hash`. (Pablo Brasero, #1012)
269
+ * Add `max_formatted_output_length=` to configuration, allowing changing
270
+ the length at which we truncate large output strings.
271
+ (Sam Phippen #951, Benoit Tigeot #1056)
272
+ * Improve error message when passing a matcher that doesn't support block
273
+ expectations to a block based `expect`. (@nicktime, #1066)
274
+
275
+ ### 3.7.0 / 2017-10-17
276
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.6.0...v3.7.0)
277
+
278
+ Enhancements:
279
+
280
+ * Improve compatibility with `--enable-frozen-string-literal` option
281
+ on Ruby 2.3+. (Pat Allan, #997)
282
+
283
+ ### 3.6.0 / 2017-05-04
284
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.6.0.beta2...v3.6.0)
285
+
286
+ Enhancements:
287
+
288
+ * Treat NoMethodError as a failure for comparison matchers. (Jon Rowe, #972)
289
+ * Allow for scoped aliased and negated matchers--just call
290
+ `alias_matcher` or `define_negated_matcher` from within an example
291
+ group. (Markus Reiter, #974)
292
+ * Improve failure message of `change` matcher with block and `satisfy` matcher
293
+ by including the block snippet instead of just describing it as `result` or
294
+ `block` when Ripper is available. (Yuji Nakayama, #987)
295
+
296
+ Bug Fixes:
297
+
298
+ * Fix `yield_with_args` and `yield_successive_args` matchers so that
299
+ they compare expected to actual args at the time the args are yielded
300
+ instead of at the end, in case the method that is yielding mutates the
301
+ arguments after yielding. (Alyssa Ross, #965)
302
+
303
+ ### 3.6.0.beta2 / 2016-12-12
304
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.6.0.beta1...v3.6.0.beta2)
305
+
306
+ Bug Fixes:
307
+
308
+ * Using the exist matcher on `File` no longer produces a deprecation warning.
309
+ (Jon Rowe, #954)
310
+
311
+ ### 3.6.0.beta1 / 2016-10-09
312
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0...v3.6.0.beta1)
313
+
314
+ Bug Fixes:
315
+
316
+ * Fix `contain_exactly` to work correctly with ranges. (Myron Marston, #940)
317
+ * Fix `change` to work correctly with sets. (Marcin Gajewski, #939)
318
+
319
+ ### 3.5.0 / 2016-07-01
320
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0.beta4...v3.5.0)
321
+
322
+ Enhancements:
323
+
324
+ * Add support for keyword arguments to the `respond_to` matcher. (Rob Smith, #915).
325
+
326
+ ### 3.5.0.beta4 / 2016-06-05
327
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0.beta3...v3.5.0.beta4)
328
+
329
+ Bug Fixes:
330
+
331
+ * Fix `include` matcher so that it provides a valid diff for hashes. (Yuji Nakayama, #916)
332
+
333
+ ### 3.5.0.beta3 / 2016-04-02
334
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0.beta2...v3.5.0.beta3)
335
+
336
+ Enhancements:
337
+
338
+ * Make `rspec/expectations/minitest_integration` work on Minitest::Spec
339
+ 5.6+. (Myron Marston, #904)
340
+ * Add an alias `having_attributes` for `have_attributes` matcher.
341
+ (Yuji Nakayama, #905)
342
+ * Improve `change` matcher error message when block is mis-used.
343
+ (Alex Altair, #908)
344
+
345
+ ### 3.5.0.beta2 / 2016-03-10
346
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0.beta1...v3.5.0.beta2)
347
+
348
+ Enhancements:
349
+
350
+ * Add the ability to raise an error on encountering false positives via
351
+ `RSpec::Configuration#on_potential_false_positives = :raise`. (Jon Rowe, #900)
352
+ * When using the custom matcher DSL, support new
353
+ `notify_expectation_failures: true` option for the `match` method to
354
+ allow expectation failures to be raised as normal instead of being
355
+ converted into a `false` return value for `matches?`. (Jon Rowe, #892)
356
+
357
+ Bug Fixes:
358
+
359
+ * Allow `should` deprecation check to work on `BasicObject`s. (James Coleman, #898)
360
+
361
+ ### 3.5.0.beta1 / 2016-02-06
362
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.4.0...v3.5.0.beta1)
363
+
364
+ Enhancements:
365
+
366
+ * Make `match_when_negated` in custom matcher DSL support use of
367
+ expectations within the match logic. (Chris Arcand, #789)
368
+
369
+ Bug Fixes:
370
+
371
+ * Return `true` as expected from passing negated expectations
372
+ (such as `expect("foo").not_to eq "bar"`), so they work
373
+ properly when used within a `match` or `match_when_negated`
374
+ block. (Chris Arcand, #789)
375
+
376
+ ### 3.4.0 / 2015-11-11
377
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.3.1...v3.4.0)
378
+
379
+ Enhancements:
380
+
381
+ * Warn when `RSpec::Matchers` is included in a superclass after it has
382
+ already been included in a subclass on MRI 1.9, since that situation
383
+ can cause uses of `super` to trigger infinite recursion. (Myron Marston, #816)
384
+ * Stop rescuing `NoMemoryError`, `SignalExcepetion`, `Interrupt` and
385
+ `SystemExit`. It is dangerous to interfere with these. (Myron Marston, #845)
386
+ * Add `#with_captures` to the match matcher which allows a user to specify expected
387
+ captures when matching a regex against a string. (Sam Phippen, #848)
388
+ * Always print compound failure messages in the multi-line form. Trying
389
+ to print it all on a single line didn't read very well. (Myron Marston, #859)
390
+
391
+ Bug Fixes:
392
+
393
+ * Fix failure message from dynamic predicate matchers when the object
394
+ does not respond to the predicate so that it is inspected rather
395
+ than relying upon its `to_s` -- that way for `nil`, `"nil"` is
396
+ printed rather than an empty string. (Myron Marston, #841)
397
+ * Fix SystemStackError raised when diffing an Enumerable object
398
+ whose `#each` includes the object itself. (Yuji Nakayama, #857)
399
+
400
+ ### 3.3.1 / 2015-07-15
401
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.3.0...v3.3.1)
402
+
403
+ Bug Fixes:
404
+
405
+ * Fix `be >`, `be <`, etc so that it fails rather than allowing an
406
+ argument error to be raised when compared against an object of the
407
+ wrong type. This allows it to be used in composed matcher expressions
408
+ against heterogeneous objects. (Dennis Günnewig, #809)
409
+ * Fix `respond_to` to work properly on target objects
410
+ that redefine the `method` method. (unmanbearpig, #821)
411
+
412
+ ### 3.3.0 / 2015-06-12
413
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.2.1...v3.3.0)
414
+
415
+ Enhancements:
416
+
417
+ * Expose `RSpec::Matchers::EnglishPhrasing` to make it easier to write
418
+ nice failure messages in custom matchers. (Jared Beck, #736)
419
+ * Add `RSpec::Matchers::FailMatchers`, a mixin which provides
420
+ `fail`, `fail_with` and `fail_including` matchers for use in
421
+ specifying that an expectation fails for use by
422
+ extension/plugin authors. (Charlie Rudolph, #729)
423
+ * Avoid loading `tempfile` (and its dependencies) unless
424
+ it is absolutely needed. (Myron Marston, #735)
425
+ * Improve failure output when attempting to use `be_true` or `be_false`.
426
+ (Tim Wade, #744)
427
+ * Define `RSpec::Matchers#respond_to_missing?` so that
428
+ `RSpec::Matchers#respond_to?` and `RSpec::Matchers#method` handle
429
+ dynamic predicate matchers. (Andrei Botalov, #751)
430
+ * Use custom Time/DateTime/BigDecimal formatting for all matchers
431
+ so they are consistently represented in failure messages.
432
+ (Gavin Miller, #740)
433
+ * Add configuration to turn off warnings about matcher combinations that
434
+ may cause false positives. (Jon Rowe, #768)
435
+ * Warn when using a bare `raise_error` matcher that you may be subject to
436
+ false positives. (Jon Rowe, #768)
437
+ * Warn rather than raise when using the`raise_error` matcher in negative
438
+ expectations that may be subject to false positives. (Jon Rowe, #775)
439
+ * Improve failure message for `include(a, b, c)` so that if `a` and `b`
440
+ are included the failure message only mentions `c`. (Chris Arcand, #780)
441
+ * Allow `satisfy` matcher to take an optional description argument
442
+ that will be used in the `description`, `failure_message` and
443
+ `failure_message_when_negated` in place of the undescriptive
444
+ "sastify block". (Chris Arcand, #783)
445
+ * Add new `aggregate_failures` API that allows multiple independent
446
+ expectations to all fail and be listed in the failure output, rather
447
+ than the example aborting on the first failure. (Myron Marston, #776)
448
+ * Improve `raise_error` matcher so that it can accept a matcher as a single argument
449
+ that matches the message. (Time Wade, #782)
450
+
451
+ Bug Fixes:
452
+
453
+ * Make `contain_exactly` / `match_array` work with strict test doubles
454
+ that have not defined `<=>`. (Myron Marston, #758)
455
+ * Fix `include` matcher so that it omits the diff when it would
456
+ confusingly highlight items that are actually included but are not
457
+ an exact match in a line-by-line diff. (Tim Wade, #763)
458
+ * Fix `match` matcher so that it does not blow up when matching a string
459
+ or regex against another matcher (rather than a string or regex).
460
+ (Myron Marston, #772)
461
+ * Silence whitespace-only diffs. (Myron Marston, #801)
462
+
463
+ ### 3.2.1 / 2015-04-06
464
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.2.0...v3.2.1)
465
+
466
+ Bug Fixes:
467
+
468
+ * Prevent `Range`s from being enumerated when generating matcher
469
+ descriptions. (Jon Rowe, #755)
470
+ * Ensure exception messages are compared as strings in the `raise_error`
471
+ matcher. (Jon Rowe, #755)
472
+
473
+ ### 3.2.0 / 2015-02-03
474
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.1.2...v3.2.0)
475
+
476
+ Enhancements:
477
+
478
+ * Add `block_arg` method to custom matcher API, which allows you to
479
+ access the block passed to a custom matcher, if there is one.
480
+ (Mike Dalton, #645)
481
+ * Provide more detail in failure message of `yield_control` matcher.
482
+ (Jon Rowe, #650)
483
+ * Add a shorthand syntax for `chain` in the matcher DSL which assigns values
484
+ for use elsewhere, for example `chain :and_smaller_than, :small_value`
485
+ creates an `attr_reader` for `small_value` (Tom Stuart, #644)
486
+ * Provide a more helpful deprecation message when using the `should` syntax.
487
+ (Elia Schito, #663)
488
+ * Provide more detail in the `have_attributes` matcher failure message.
489
+ (Jon Rowe, #668)
490
+ * Make the `have_attributes` matcher diffable.
491
+ (Jon Rowe, Alexey Fedorov, #668)
492
+ * Add `output(...).to_std(out|err)_from_any_process` as alternatives
493
+ to `output(...).to_std(out|err)`. The latter doesn't work when a sub
494
+ process writes to the named stream but is much faster.
495
+ (Alex Genco, #700)
496
+ * Improve compound matchers (created by `and` and `or`) so that diffs
497
+ are included in failures when one or more of their matchers
498
+ are diffable. (Alexey Fedorov, #713)
499
+
500
+ Bug Fixes:
501
+
502
+ * Avoid calling `private_methods` from the `be` predicate matcher on
503
+ the target object if the object publicly responds to the predicate
504
+ method. This avoids a possible error that can occur if the object
505
+ raises errors from `private_methods` (which can happen with celluloid
506
+ objects). (@chapmajs, #670)
507
+ * Make `yield_control` (with no modifier) default to
508
+ `at_least(:once)` rather than raising a confusing error
509
+ when multiple yields are encountered.
510
+ (Myron Marston, #675)
511
+ * Fix "instance variable @color not initialized" warning when using
512
+ rspec-expectations outside of an rspec-core context. (Myron Marston, #689)
513
+ * Fix `start_with` and `end_with` to work properly when checking a
514
+ string against an array of strings. (Myron Marston, #690)
515
+ * Don't use internally delegated matchers when generating descriptions
516
+ for examples without doc strings. (Myron Marston, #692)
517
+
518
+ ### 3.1.2 / 2014-09-26
519
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.1.1...v3.1.2)
520
+
521
+ Bug Fixes:
522
+
523
+ * Fix `define_negated_matcher` so that matchers that support fluent
524
+ interfaces continue to be negated after you use the chained method.
525
+ (Myron Marston, #656)
526
+ * Fix `define_negated_matcher` so that the matchers fail with an
527
+ appropriate failure message. (Myron Marston, #659)
528
+
529
+ ### 3.1.1 / 2014-09-15
530
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.1.0...v3.1.1)
531
+
532
+ Bug Fixes:
533
+
534
+ * Fix regression in `all` matcher in 3.1.0 that prevented it from
535
+ working on objects that are not `Enumerable` but do implement
536
+ `each_with_index` (such as an ActiveRecord proxy). (Jori Hardman, #647)
537
+
538
+ ### 3.1.0 / 2014-09-04
539
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.4...v3.1.0)
540
+
541
+ Enhancements:
542
+
543
+ * Add `have_attributes` matcher, that passes if actual's attribute
544
+ values match the expected attributes hash:
545
+ `Person = Struct.new(:name, :age)`
546
+ `person = Person.new("Bob", 32)`
547
+ `expect(person).to have_attributes(:name => "Bob", :age => 32)`.
548
+ (Adam Farhi, #571)
549
+ * Extended compound matcher support to block matchers, for cases like:
550
+ `expect { ... }.to change { x }.to(3).and change { y }.to(4)`. (Myron
551
+ Marston, #567)
552
+ * Include chained methods in custom matcher description and failure message
553
+ when new `include_chain_clauses_in_custom_matcher_descriptions` config
554
+ option is enabled. (Dan Oved, #600)
555
+ * Add `thrice` modifier to `yield_control` matcher as a synonym for
556
+ `exactly(3).times`. (Dennis Taylor, #615)
557
+ * Add `RSpec::Matchers.define_negated_matcher`, which defines a negated
558
+ version of the named matcher. (Adam Farhi, Myron Marston, #618)
559
+ * Document and support negation of `contain_exactly`/`match_array`.
560
+ (Jon Rowe, #626).
561
+
562
+ Bug Fixes:
563
+
564
+ * Rename private `LegacyMacherAdapter` constant to `LegacyMatcherAdapter`
565
+ to fix typo. (Abdelkader Boudih, #563)
566
+ * Fix `all` matcher so that it fails properly (rather than raising a
567
+ `NoMethodError`) when matched against a non-enumerable. (Hao Su, #622)
568
+
569
+ ### 3.0.4 / 2014-08-14
570
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.3...v3.0.4)
571
+
572
+ Bug Fixes:
573
+
574
+ * Fix `start_with` and `end_with` so that they work properly with
575
+ structs. (Myron Marston, #620)
576
+ * Fix failure message generation so that structs are printed properly
577
+ in failures. Previously failure messages would represent them as
578
+ an array. (Myron Marston, #620)
579
+ * Fix composable matcher support so that it does not wrongly treat
580
+ structs as arrays. (Myron Marston, #620)
581
+
582
+ ### 3.0.3 / 2014-07-21
583
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.2...v3.0.3)
584
+
585
+ Bug Fixes:
586
+
587
+ * Fix issue with detection of generic operator matchers so they work
588
+ correctly when undefined. (Myron Marston, #597)
589
+ * Don't inadvertently define `BasicObject` in 1.8.7. (Chris Griego, #603)
590
+ * Fix `include` matcher so that it fails gracefully when matched against
591
+ an object that does not respond to `include?`. (Myron Marston, #607)
592
+
593
+ ### 3.0.2 / 2014-06-19
594
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.1...v3.0.2)
595
+
596
+ Bug Fixes:
597
+
598
+ * Fix regression in `contain_exactly` (AKA `match_array`) that caused it
599
+ to wrongly pass when the expected array was empty. (Myron Marston, #581)
600
+ * Provide a better error message when you use the `change(obj, :msg)`
601
+ form of the change matcher but forget the message argument. (Alex
602
+ Sunderland, #585)
603
+ * Make the `contain_exactly` matcher work with arrays that contain hashes in
604
+ arbitrary ordering. (Sam Phippen, #578)
605
+
606
+ ### 3.0.1 / 2014-06-12
607
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.0...v3.0.1)
608
+
609
+ Bug Fixes:
610
+
611
+ * Add a missing `require` that would cause the `respond_to` matcher to
612
+ fail when used in a project where the rest of RSpec (e.g. core and
613
+ expecatations) weren't being used. (Myron Marston, #566)
614
+ * Structs are no longer treated as arrays when diffed. (Jon Rowe, #576)
615
+
616
+ ### 3.0.0 / 2014-06-01
617
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.0.rc1...v3.0.0)
618
+
619
+ No code changes. Just taking it out of pre-release.
620
+
621
+ ### 3.0.0.rc1 / 2014-05-18
622
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.0.beta2...v3.0.0.rc1)
623
+
624
+ Breaking Changes for 3.0.0:
625
+
626
+ * Remove `matcher_execution_context` attribute from DSL-defined
627
+ custom matchers. (Myron Marston)
628
+ * Remove `RSpec::Matchers::Pretty#_pretty_print`. (Myron Marston)
629
+ * Remove `RSpec::Matchers::Pretty#expected_to_sentence`. (Myron Marston)
630
+ * Rename `RSpec::Matchers::Configuration` constant to
631
+ `RSpec::Expectations::Configuration`. (Myron Marston)
632
+ * Prevent `have_xyz` predicate matchers using private methods.
633
+ (Adrian Gonzalez)
634
+ * Block matchers must now implement `supports_block_expectations?`.
635
+ (Myron Marston)
636
+ * Stop supporting `require 'rspec-expectations'`.
637
+ Use `require 'rspec/expectations'` instead. (Myron Marston)
638
+
639
+ Bug Fixes:
640
+
641
+ * Fix `NoMethodError` triggered by beta2 when `YARD` was loaded in
642
+ the test environment. (Myron Marston)
643
+ * Fix `be_xyz` matcher to accept a `do...end` block. (Myron Marston)
644
+ * Fix composable matcher failure message generation logic
645
+ so that it does not blow up when given `$stdout` or `$stderr`.
646
+ (Myron Marston)
647
+ * Fix `change` matcher to work properly with `IO` objects.
648
+ (Myron Marston)
649
+ * Fix `exist` matcher so that it can be used in composed matcher
650
+ expressions involving objects that do not implement `exist?` or
651
+ `exists?`. (Daniel Fone)
652
+ * Fix composable matcher match logic so that it clones matchers
653
+ before using them in order to work properly with matchers
654
+ that use internal memoization based on a given `actual` value.
655
+ (Myron Marston)
656
+ * Fix `be_xyz` and `has_xyz` predicate matchers so that they can
657
+ be used in composed matcher expressions involving objects that
658
+ do not implement the predicate method. (Daniel Fone)
659
+
660
+ Enhancements:
661
+
662
+ * Document the remaining public APIs. rspec-expectations now has 100% of
663
+ the public API documented and will remain that way (as new undocumented
664
+ methods will fail the build). (Myron Marston)
665
+ * Improve the formatting of BigDecimal objects in `eq` matcher failure
666
+ messages. (Daniel Fone)
667
+ * Improve the failure message for `be_xyz` predicate matchers so
668
+ that it includes the `inspect` output of the receiver.
669
+ (Erik Michaels-Ober, Sam Phippen)
670
+ * Add `all` matcher, to allow you to specify that a given matcher
671
+ matches all elements in a collection:
672
+ `expect([1, 3, 5]).to all( be_odd )`. (Adam Farhi)
673
+ * Add boolean aliases (`&`/`|`) for compound operators (`and`/`or`). (Adam Farhi)
674
+ * Give users a clear error when they wrongly use a value matcher
675
+ in a block expectation expression (e.g. `expect { 3 }.to eq(3)`)
676
+ or vice versa. (Myron Marston)
677
+
678
+ ### 3.0.0.beta2 / 2014-02-17
679
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.0.beta1...v3.0.0.beta2)
680
+
681
+ Breaking Changes for 3.0.0:
682
+
683
+ * Remove deprecated support for accessing the `RSpec` constant using
684
+ `Rspec` or `Spec`. (Myron Marston)
685
+ * Remove deprecated `RSpec::Expectations.differ=`. (Myron Marston)
686
+ * Remove support for deprecated `expect(...).should`. (Myron Marston)
687
+ * Explicitly disallow `expect { }.not_to change { }` with `by`,
688
+ `by_at_least`, `by_at_most` or `to`. These have never been supported
689
+ but did not raise explicit errors. (Myron Marston)
690
+ * Provide `===` rather than `==` as an alias of `matches?` for
691
+ all matchers. The semantics of `===` are closer to an RSpec
692
+ matcher than `==`. (Myron Marston)
693
+ * Remove deprecated `RSpec::Matchers::OperatorMatcher` constant.
694
+ (Myron Marston)
695
+ * Make `RSpec::Expectations::ExpectationNotMetError` subclass
696
+ `Exception` rather than `StandardError` so they can bypass
697
+ a bare `rescue` in end-user code (e.g. when an expectation is
698
+ set from within a rspec-mocks stub implementation). (Myron Marston)
699
+ * Remove Test::Unit and Minitest 4.x integration. (Myron Marston)
700
+
701
+ Enhancements:
702
+
703
+ * Simplify the failure message of the `be` matcher when matching against:
704
+ `true`, `false` and `nil`. (Sam Phippen)
705
+ * Update matcher protocol and custom matcher DSL to better align
706
+ with the newer `expect` syntax. If you want your matchers to
707
+ maintain compatibility with multiple versions of RSpec, you can
708
+ alias the new names to the old. (Myron Marston)
709
+ * `failure_message_for_should` => `failure_message`
710
+ * `failure_message_for_should_not` => `failure_message_when_negated`
711
+ * `match_for_should` => `match`
712
+ * `match_for_should_not` => `match_when_negated`
713
+ * Improve generated descriptions from `change` matcher. (Myron Marston)
714
+ * Add support for compound matcher expressions using `and` and `or`.
715
+ Simply chain them off of any existing matcher to create an expression
716
+ like `expect(alphabet).to start_with("a").and end_with("z")`.
717
+ (Eloy Espinaco)
718
+ * Add `contain_exactly` as a less ambiguous version of `match_array`.
719
+ Note that it expects the expected array to be splatted as
720
+ individual args: `expect(array).to contain_exactly(1, 2)` is
721
+ the same as `expect(array).to match_array([1, 2])`. (Myron Marston)
722
+ * Update `contain_exactly`/`match_array` so that it can match against
723
+ other non-array collections (such as a `Set`). (Myron Marston)
724
+ * Update built-in matchers so that they can accept matchers as arguments
725
+ to allow you to compose matchers in arbitrary ways. (Myron Marston)
726
+ * Add `RSpec::Matchers::Composable` mixin that can be used to make
727
+ a custom matcher composable as well. Note that custom matchers
728
+ defined via `RSpec::Matchers.define` already have this. (Myron
729
+ Marston)
730
+ * Define noun-phrase aliases for built-in matchers, which can be
731
+ used when creating composed matcher expressions that read better
732
+ and provide better failure messages. (Myron Marston)
733
+ * Add `RSpec::Matchers.alias_matcher` so users can define their own
734
+ matcher aliases. The `description` of the matcher will reflect the
735
+ alternate matcher name. (Myron Marston)
736
+ * Add explicit `be_between` matcher. `be_between` has worked for a
737
+ long time as a dynamic predicate matcher, but the failure message
738
+ was suboptimal. The new matcher provides a much better failure
739
+ message. (Erik Michaels-Ober)
740
+ * Enhance the `be_between` matcher to allow for `inclusive` or `exclusive`
741
+ comparison (e.g. inclusive of min/max or exclusive of min/max).
742
+ (Pedro Gimenez)
743
+ * Make failure message for `not_to be #{operator}` less confusing by
744
+ only saying it's confusing when comparison operators are used.
745
+ (Prathamesh Sonpatki)
746
+ * Improve failure message of `eq` matcher when `Time` or `DateTime`
747
+ objects are used so that the full sub-second precision is included.
748
+ (Thomas Holmes, Jeff Wallace)
749
+ * Add `output` matcher for expecting that a block outputs `to_stdout`
750
+ or `to_stderr`. (Luca Pette, Matthias Günther)
751
+ * Forward a provided block on to the `has_xyz?` method call when
752
+ the `have_xyz` matcher is used. (Damian Galarza)
753
+ * Provide integration with Minitest 5.x. Require
754
+ `rspec/expectations/minitest_integration` after loading minitest
755
+ to use rspec-expectations with minitest. (Myron Marston)
756
+
757
+ Bug Fixes:
758
+
759
+ * Fix wrong matcher descriptions with falsey expected value (yujinakayama)
760
+ * Fix `expect { }.not_to change { }.from(x)` so that the matcher only
761
+ passes if the starting value is `x`. (Tyler Rick, Myron Marston)
762
+ * Fix hash diffing, so that it colorizes properly and doesn't consider trailing
763
+ commas when performing the diff. (Jared Norman)
764
+ * Fix built-in matchers to fail normally rather than raising
765
+ `ArgumentError` when given an object of the wrong type to match
766
+ against, so that they work well in composite matcher expressions like
767
+ `expect([1.51, "foo"]).to include(a_string_matching(/foo/), a_value_within(0.1).of(1.5))`.
768
+ (Myron Marston)
769
+
770
+ Deprecations:
771
+
772
+ * Retain support for RSpec 2 matcher protocol (e.g. for matchers
773
+ in 3rd party extension gems like `shoulda`), but it will print
774
+ a deprecation warning. (Myron Marston)
775
+
776
+ ### 3.0.0.beta1 / 2013-11-07
777
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.99.2...v3.0.0.beta1)
778
+
779
+ Breaking Changes for 3.0.0:
780
+
781
+ * Remove explicit support for 1.8.6. (Jon Rowe)
782
+ * Remove the deprecated `be_close` matcher, preferring `be_within` instead.
783
+ (Sam Phippen)
784
+ * Remove the deprecated `have`, `have_at_least` and `have_at_most` matchers.
785
+ You can continue using those matchers through https://github.com/rspec/rspec-collection_matchers,
786
+ or you can rewrite your expectations with something like
787
+ `expect(your_object.size).to eq(num)`. (Hugo Baraúna)
788
+ * Rename `be_true` and `be_false` to `be_truthy` and `be_falsey`. (Sam Phippen)
789
+ * Make `expect { }.to_not raise_error(SomeSpecificClass, message)`,
790
+ `expect { }.to_not raise_error(SomeSpecificClass)` and
791
+ `expect { }.to_not raise_error(message)` invalid, since they are prone
792
+ to hiding failures. Instead, use `expect { }.to_not raise_error` (with no
793
+ args). (Sam Phippen)
794
+ * Within `RSpec::Matchers.define` blocks, helper methods made available
795
+ either via `def self.helper` or `extend HelperModule` are no longer
796
+ available to the `match` block (or any of the others). Instead
797
+ `include` your helper module and define the helper method as an
798
+ instance method. (Myron Marston)
799
+ * Force upgrading Diff::LCS for encoding compatability with diffs. (Jon Rowe)
800
+
801
+ Enhancements:
802
+
803
+ * Support `do..end` style block with `raise_error` matcher. (Yuji Nakayama)
804
+ * Rewrote custom matcher DSL to simplify its implementation and solve a
805
+ few issues. (Myron Marston)
806
+ * Allow early `return` from within custom matcher DSL blocks. (Myron
807
+ Marston)
808
+ * The custom matcher DSL's `chain` can now accept a block. (Myron
809
+ Marston)
810
+ * Support setting an expectation on a `raise_error` matcher via a chained
811
+ `with_message` method call. (Sam Phippen)
812
+
813
+ Bug Fixes:
814
+
815
+ * Allow `include` and `match` matchers to be used from within a
816
+ DSL-defined custom matcher's `match` block. (Myron Marston)
817
+ * Correct encoding error message on diff failure (Jon Rowe)
818
+
819
+ Deprecations:
820
+
821
+ * Using the old `:should` syntax without explicitly configuring it is deprecated.
822
+ It will continue to work but will emit a deprecation warning in RSpec 3 if
823
+ you do not explicitly enable it. (Sam Phippen)
824
+
825
+ ### 2.99.2 / 2014-07-21
826
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.99.1...v2.99.2)
827
+
828
+ Bug Fixes:
829
+
830
+ * Fix regression in `Expectations#method_handle_for` where proxy objects
831
+ with method delegated would wrongly not return a method handle.
832
+ (Jon Rowe, #594)
833
+ * Fix issue with detection of generic operator matchers so they work
834
+ correctly when undefined. (Myron Marston, #597)
835
+
836
+ ### 2.99.1 / 2014-06-19
837
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.99.0...v2.99.1)
838
+
839
+ Bug Fixes:
840
+
841
+ * Fix typo in custom matcher `expected` deprecation warning -- it's
842
+ `expected_as_array`, not `expected_array`. (Frederick Cheung, #562)
843
+
844
+ ### 2.99.0 / 2014-06-01
845
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.99.0.rc1...v2.99.0)
846
+
847
+ Enhancements:
848
+
849
+ * Special case deprecation message for `errors_on` with `rspec-rails` to be more useful.
850
+ (Aaron Kromer)
851
+
852
+ ### 2.99.0.rc1 / 2014-05-18
853
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.99.0.beta2...2.99.0.rc1)
854
+
855
+ Deprecations:
856
+
857
+ * Deprecate `matcher_execution_context` attribute on DSL-defined
858
+ custom matchers. (Myron Marston)
859
+ * Deprecate `RSpec::Matchers::Pretty#_pretty_print`. (Myron Marston)
860
+ * Deprecate `RSpec::Matchers::Pretty#expected_to_sentence`. (Myron Marston)
861
+ * Deprecate `RSpec::Matchers::Configuration` in favor of
862
+ `RSpec::Expectations::Configuration`. (Myron Marston)
863
+ * Deprecate `be_xyz` predicate matcher on an object that doesn't respond to
864
+ `xyz?` or `xyzs?`. (Daniel Fone)
865
+ * Deprecate `have_xyz` matcher on an object that doesn't respond to `has_xyz?`.
866
+ (Daniel Fone)
867
+ * Deprecate `have_xyz` matcher on an object that has a private method `has_xyz?`.
868
+ (Jon Rowe)
869
+ * Issue a deprecation warning when a block expectation expression is
870
+ used with a matcher that doesn't explicitly support block expectations
871
+ via `supports_block_expectations?`. (Myron Marston)
872
+ * Deprecate `require 'rspec-expectations'`. Use
873
+ `require 'rspec/expectations'` instead. (Myron Marston)
874
+
875
+ ### 2.99.0.beta2 / 2014-02-17
876
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.99.0.beta1...v2.99.0.beta2)
877
+
878
+ Deprecations:
879
+
880
+ * Deprecate chaining `by`, `by_at_least`, `by_at_most` or `to` off of
881
+ `expect { }.not_to change { }`. The docs have always said these are
882
+ not supported for the negative form but now they explicitly raise
883
+ errors in RSpec 3. (Myron Marston)
884
+ * Change the semantics of `expect { }.not_to change { x }.from(y)`.
885
+ In RSpec 2.x, this expectation would only fail if `x` started with
886
+ the value of `y` and changed. If it started with a different value
887
+ and changed, it would pass. In RSpec 3, it will pass only if the
888
+ value starts at `y` and it does not change. (Myron Marston)
889
+ * Deprecate `matcher == value` as an alias for `matcher.matches?(value)`,
890
+ in favor of `matcher === value`. (Myron Marston)
891
+ * Deprecate `RSpec::Matchers::OperatorMatcher` in favor of
892
+ `RSpec::Matchers::BuiltIn::OperatorMatcher`. (Myron Marston)
893
+ * Deprecate auto-integration with Test::Unit and minitest.
894
+ Instead, include `RSpec::Matchers` in the appropriate test case
895
+ base class yourself. (Myron Marston)
896
+ * Deprecate treating `#expected` on a DSL-generated custom matcher
897
+ as an array when only 1 argument is passed to the matcher method.
898
+ In RSpec 3 it will be the single value in order to make diffs
899
+ work properly. (Jon Rowe)
900
+
901
+ ### 2.99.0.beta1 / 2013-11-07
902
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.14.4...v2.99.0.beta1)
903
+
904
+ Deprecations
905
+
906
+ * Deprecate `have`, `have_at_least` and `have_at_most`. You can continue using those
907
+ matchers through https://github.com/rspec/rspec-collection_matchers, or
908
+ you can rewrite your expectations with something like
909
+ `expect(your_object.size).to eq(num)`. (Hugo Baraúna)
910
+ * Deprecate `be_xyz` predicate matcher when `xyz?` is a private method.
911
+ (Jon Rowe)
912
+ * Deprecate `be_true`/`be_false` in favour of `be_truthy`/`be_falsey`
913
+ (for Ruby's conditional semantics) or `be true`/`be false`
914
+ (for exact equality). (Sam Phippen)
915
+ * Deprecate calling helper methods from a custom matcher with the wrong
916
+ scope. (Myron Marston)
917
+ * `def self.foo` / `extend Helper` can be used to add macro methods
918
+ (e.g. methods that call the custom matcher DSL methods), but should
919
+ not be used to define helper methods called from within the DSL
920
+ blocks.
921
+ * `def foo` / `include Helper` is the opposite: it's for helper methods
922
+ callable from within a DSL block, but not for defining macros.
923
+ * RSpec 2.x allowed helper methods defined either way to be used for
924
+ either purpose, but RSpec 3.0 will not.
925
+
926
+ ### 2.14.5 / 2014-02-01
927
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.14.4...v2.14.5)
928
+
929
+ Bug fixes
930
+
931
+ * Fix wrong matcher descriptions with falsey expected value
932
+ (yujinakayama)
933
+
934
+ ### 2.14.4 / 2013-11-06
935
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.14.3...v2.14.4)
936
+
937
+ Bug fixes
938
+
939
+ * Make the `match` matcher produce a diff output. (Jon Rowe, Ben Moss)
940
+ * Choose encoding for diff's more intelligently, and when all else fails fall
941
+ back to default internal encoding with replacing characters. (Jon Rowe)
942
+
943
+ ### 2.14.3 / 2013-09-22
944
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.14.2...v2.14.3)
945
+
946
+ Bug fixes
947
+
948
+ * Fix operator matchers (`should` syntax) when `method` is redefined on target.
949
+ (Brandon Turner)
950
+ * Fix diffing of hashes with object based keys. (Jon Rowe)
951
+ * Fix operator matchers (`should` syntax) when operator is defined via
952
+ `method_missing` (Jon Rowe)
953
+
954
+ ### 2.14.2 / 2013-08-14
955
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.14.1...v2.14.2)
956
+
957
+ Bug fixes
958
+
959
+ * Fix `be_<predicate>` matcher to not support operator chaining like the
960
+ `be` matcher does (e.g. `be == 5`). This led to some odd behaviors
961
+ since `be_<predicate> == anything` returned a `BeComparedTo` matcher
962
+ and was thus always truthy. This was a consequence of the implementation
963
+ (e.g. subclassing the basic `Be` matcher) and was not intended behavior.
964
+ (Myron Marston).
965
+ * Fix `change` matcher to compare using `==` in addition to `===`. This
966
+ is important for an expression like:
967
+ `expect {}.to change { a.class }.from(ClassA).to(ClassB)` because
968
+ `SomeClass === SomeClass` returns false. (Myron Marston)
969
+
970
+ ### 2.14.1 / 2013-08-08
971
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.14.0...2.14.1)
972
+
973
+ Bug fixes
974
+
975
+ * Ensure diff output uses the same encoding as the encoding of
976
+ the string being diff'd to prevent `Encoding::UndefinedConversionError`
977
+ errors (Jon Rowe).
978
+
979
+ ### 2.14.0 / 2013-07-06
980
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.14.0.rc1...v2.14.0)
981
+
982
+ Bug fixes
983
+
984
+ * Values that are not matchers use `#inspect`, rather than `#description` for
985
+ documentation output (Andy Lindeman, Sam Phippen).
986
+ * Make `expect(a).to be_within(x).percent_of(y)` work with negative y
987
+ (Katsuhiko Nishimra).
988
+ * Make the `be_predicate` matcher work as expected used with `expect{...}.to
989
+ change...` (Sam Phippen).
990
+
991
+ ### 2.14.0.rc1 / 2013-05-27
992
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.13.0...v2.14.0.rc1)
993
+
994
+ Enhancements
995
+
996
+ * Enhance `yield_control` so that you can specify an exact or relative
997
+ number of times: `expect { }.to yield_control.exactly(3).times`,
998
+ `expect { }.to yield_control.at_least(2).times`, etc (Bartek
999
+ Borkowski).
1000
+ * Make the differ that is used when an expectation fails better handle arrays
1001
+ by splitting each element of the array onto its own line. (Sam Phippen)
1002
+ * Accept duck-typed strings that respond to `:to_str` as expectation messages.
1003
+ (Toby Ovod-Everett)
1004
+
1005
+ Bug fixes
1006
+
1007
+ * Fix differ to not raise errors when dealing with differently-encoded
1008
+ strings (Jon Rowe).
1009
+ * Fix `expect(something).to be_within(x).percent_of(y)` where x and y are both
1010
+ integers (Sam Phippen).
1011
+ * Fix `have` matcher to handle the fact that on ruby 2.0,
1012
+ `Enumerator#size` may return nil (Kenta Murata).
1013
+ * Fix `expect { raise s }.to raise_error(s)` where s is an error instance
1014
+ on ruby 2.0 (Sam Phippen).
1015
+ * Fix `expect(object).to raise_error` passing. This now warns the user and
1016
+ fails the spec (tomykaira).
1017
+
1018
+ Deprecations
1019
+
1020
+ * Deprecate `expect { }.not_to raise_error(SpecificErrorClass)` or
1021
+ `expect { }.not_to raise_error("some specific message")`. Using
1022
+ these was prone to hiding failures as they would allow _any other
1023
+ error_ to pass. (Sam Phippen and David Chelimsky)
1024
+
1025
+ ### 2.13.0 / 2013-02-23
1026
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.12.1...v2.13.0)
1027
+
1028
+ Enhancements
1029
+
1030
+ * Add support for percent deltas to `be_within` matcher:
1031
+ `expect(value).to be_within(10).percent_of(expected)`
1032
+ (Myron Marston).
1033
+ * Add support to `include` matcher to allow it to be given a list
1034
+ of matchers as the expecteds to match against (Luke Redpath).
1035
+
1036
+ Bug fixes
1037
+
1038
+ * Fix `change` matcher so that it dups strings in order to handle
1039
+ mutated strings (Myron Marston).
1040
+ * Fix `should be =~ /some regex/` / `expect(...).to be =~ /some regex/`.
1041
+ Previously, these either failed with a confusing `undefined method
1042
+ matches?' for false:FalseClass` error or were no-ops that didn't
1043
+ actually verify anything (Myron Marston).
1044
+ * Add compatibility for diff-lcs 1.2 and relax the version
1045
+ constraint (Peter Goldstein).
1046
+ * Fix DSL-generated matchers to allow multiple instances of the
1047
+ same matcher in the same example to have different description
1048
+ and failure messages based on the expected value (Myron Marston).
1049
+ * Prevent `undefined method #split for Array` error when dumping
1050
+ the diff of an array of multiline strings (Myron Marston).
1051
+ * Don't blow up when comparing strings that are in an encoding
1052
+ that is not ASCII compatible (Myron Marston).
1053
+ * Remove confusing "Check the implementation of #==" message
1054
+ printed for empty diffs (Myron Marston).
1055
+
1056
+ ### 2.12.1 / 2012-12-15
1057
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.12.0...v2.12.1)
1058
+
1059
+ Bug fixes
1060
+
1061
+ * Improve the failure message for an expression like
1062
+ `{}.should =~ {}`. (Myron Marston and Andy Lindeman)
1063
+ * Provide a `match_regex` alias so that custom matchers
1064
+ built using the matcher DSL can use it (since `match`
1065
+ is a different method in that context).
1066
+ (Steven Harman)
1067
+
1068
+ ### 2.12.0 / 2012-11-12
1069
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.11.3...v2.12.0)
1070
+
1071
+ Enhancements
1072
+
1073
+ * Colorize diffs if the `--color` option is configured. (Alex Coplan)
1074
+ * Include backtraces in unexpected errors handled by `raise_error`
1075
+ matcher (Myron Marston)
1076
+ * Print a warning when users accidentally pass a non-string argument
1077
+ as an expectation message (Sam Phippen)
1078
+ * `=~` and `match_array` matchers output a more useful error message when
1079
+ the actual value is not an array (or an object that responds to `#to_ary`)
1080
+ (Sam Phippen)
1081
+
1082
+ Bug fixes
1083
+
1084
+ * Fix `include` matcher so that `expect({}).to include(:a => nil)`
1085
+ fails as it should (Sam Phippen).
1086
+ * Fix `be_an_instance_of` matcher so that `Class#to_s` is used in the
1087
+ description rather than `Class#inspect`, since some classes (like
1088
+ `ActiveRecord::Base`) define a long, verbose `#inspect`.
1089
+ (Tom Stuart)
1090
+
1091
+ ### 2.11.3 / 2012-09-04
1092
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.11.2...v2.11.3)
1093
+
1094
+ Bug fixes
1095
+
1096
+ * Fix (and deprecate) `expect { }.should` syntax so that it works even
1097
+ though it was never a documented or intended syntax. It worked as a
1098
+ consequence of the implementation of `expect` in RSpec 2.10 and
1099
+ earlier. (Myron Marston)
1100
+ * Ensure #== is defined on built in matchers so that they can be composed.
1101
+ For example:
1102
+
1103
+ expect {
1104
+ user.emailed!
1105
+ }.to change { user.last_emailed_at }.to be_within(1.second).of(Time.zone.now)
1106
+
1107
+ ### 2.11.2 / 2012-07-25
1108
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.11.1...v2.11.2)
1109
+
1110
+ Bug fixes
1111
+
1112
+ * Define `should` and `should_not` on `Object` rather than `BasicObject`
1113
+ on MacRuby. On MacRuby, `BasicObject` is defined but is not the root
1114
+ of the object hierarchy. (Gabriel Gilder)
1115
+
1116
+ ### 2.11.1 / 2012-07-08
1117
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.11.0...v2.11.1)
1118
+
1119
+ Bug fixes
1120
+
1121
+ * Constrain `actual` in `be_within` matcher to values that respond to `-` instead
1122
+ of requiring a specific type.
1123
+ * `Time`, for example, is a legit alternative.
1124
+
1125
+ ### 2.11.0 / 2012-07-07
1126
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.10.0...v2.11.0)
1127
+
1128
+ Enhancements
1129
+
1130
+ * Expand `expect` syntax so that it supports expections on bare values
1131
+ in addition to blocks (Myron Marston).
1132
+ * Add configuration options to control available expectation syntaxes
1133
+ (Myron Marston):
1134
+ * `RSpec.configuration.expect_with(:rspec) { |c| c.syntax = :expect }`
1135
+ * `RSpec.configuration.expect_with(:rspec) { |c| c.syntax = :should }`
1136
+ * `RSpec.configuration.expect_with(:rspec) { |c| c.syntax = [:should, :expect] }`
1137
+ * `RSpec.configuration.add_should_and_should_not_to Delegator`
1138
+
1139
+ Bug fixes
1140
+
1141
+ * Allow only `Numeric` values to be the "actual" in the `be_within` matcher.
1142
+ This prevents confusing error messages. (Su Zhang @zhangsu)
1143
+ * Define `should` and `should_not` on `BasicObject` rather than `Kernel`
1144
+ on 1.9. This makes `should` and `should_not` work properly with
1145
+ `BasicObject`-subclassed proxy objects like `Delegator`. (Myron
1146
+ Marston)
1147
+
1148
+ ### 2.10.0 / 2012-05-03
1149
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.9.1...v2.10.0)
1150
+
1151
+ Enhancements
1152
+
1153
+ * Add new `start_with` and `end_with` matchers (Jeremy Wadsack)
1154
+ * Add new matchers for specifying yields (Myron Marston):
1155
+ * `expect {...}.to yield_control`
1156
+ * `expect {...}.to yield_with_args(1, 2, 3)`
1157
+ * `expect {...}.to yield_with_no_args`
1158
+ * `expect {...}.to yield_successive_args(1, 2, 3)`
1159
+ * `match_unless_raises` takes multiple exception args
1160
+
1161
+ Bug fixes
1162
+
1163
+ * Fix `be_within` matcher to be inclusive of delta.
1164
+ * Fix message-specific specs to pass on Rubinius (John Firebaugh)
1165
+
1166
+ ### 2.9.1 / 2012-04-03
1167
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.9.0...v2.9.1)
1168
+
1169
+ Bug fixes
1170
+
1171
+ * Provide a helpful message if the diff between two objects is empty.
1172
+ * Fix bug diffing single strings with multiline strings.
1173
+ * Fix for error with using custom matchers inside other custom matchers
1174
+ (mirasrael)
1175
+ * Fix using execution context methods in nested DSL matchers (mirasrael)
1176
+
1177
+ ### 2.9.0 / 2012-03-17
1178
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.8.0...v2.9.0)
1179
+
1180
+ Enhancements
1181
+
1182
+ * Move built-in matcher classes to RSpec::Matchers::BuiltIn to reduce pollution
1183
+ of RSpec::Matchers (which is included in every example).
1184
+ * Autoload files with matcher classes to improve load time.
1185
+
1186
+ Bug fixes
1187
+
1188
+ * Align `respond_to?` and `method_missing` in DSL-defined matchers.
1189
+ * Clear out user-defined instance variables between invocations of DSL-defined
1190
+ matchers.
1191
+ * Dup the instance of a DSL generated matcher so its state is not changed by
1192
+ subsequent invocations.
1193
+ * Treat expected args consistently across positive and negative expectations
1194
+ (thanks to Ralf Kistner for the heads up)
1195
+
1196
+ ### 2.8.0 / 2012-01-04
1197
+
1198
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.8.0.rc2...v2.8.0)
1199
+
1200
+ Enhancements
1201
+
1202
+ * Better diff output for Hash (Philippe Creux)
1203
+ * Eliminate Ruby warnings (Olek Janiszewski)
1204
+
1205
+ ### 2.8.0.rc2 / 2011-12-19
1206
+
1207
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.8.0.rc1...v2.8.0.rc2)
1208
+
1209
+ No changes for this release. Just releasing with the other rspec gems.
1210
+
1211
+ ### 2.8.0.rc1 / 2011-11-06
1212
+
1213
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.7.0...v2.8.0.rc1)
1214
+
1215
+ Enhancements
1216
+
1217
+ * Use classes for the built-in matchers (they're faster).
1218
+ * Eliminate Ruby warnings (Matijs van Zuijlen)
1219
+
1220
+ ### 2.7.0 / 2011-10-16
1221
+
1222
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.6.0...v2.7.0)
1223
+
1224
+ Enhancements
1225
+
1226
+ * `HaveMatcher` converts argument using `to_i` (Alex Bepple & Pat Maddox)
1227
+ * Improved failure message for the `have_xxx` matcher (Myron Marston)
1228
+ * `HaveMatcher` supports `count` (Matthew Bellantoni)
1229
+ * Change matcher dups `Enumerable` before the action, supporting custom
1230
+ `Enumerable` types like `CollectionProxy` in Rails (David Chelimsky)
1231
+
1232
+ Bug fixes
1233
+
1234
+ * Fix typo in `have(n).xyz` documentation (Jean Boussier)
1235
+ * fix `safe_sort` for ruby 1.9.2 (`Kernel` now defines `<=>` for Object) (Peter
1236
+ van Hardenberg)
1237
+
1238
+ ### 2.6.0 / 2011-05-12
1239
+
1240
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.5.0...v2.6.0)
1241
+
1242
+ Enhancements
1243
+
1244
+ * `change` matcher accepts regexps (Robert Davis)
1245
+ * better descriptions for `have_xxx` matchers (Magnus Bergmark)
1246
+ * `range.should cover(*values)` (Anders Furseth)
1247
+
1248
+ Bug fixes
1249
+
1250
+ * Removed non-ascii characters that were choking rcov (Geoffrey Byers)
1251
+ * change matcher dups arrays and hashes so their before/after states can be
1252
+ compared correctly.
1253
+ * Fix the order of inclusion of RSpec::Matchers in Test::Unit::TestCase and
1254
+ MiniTest::Unit::TestCase to prevent a SystemStackError (Myron Marston)
1255
+
1256
+ ### 2.5.0 / 2011-02-05
1257
+
1258
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.4.0...v2.5.0)
1259
+
1260
+ Enhancements
1261
+
1262
+ * `should exist` works with `exist?` or `exists?` (Myron Marston)
1263
+ * `expect { ... }.not_to do_something` (in addition to `to_not`)
1264
+
1265
+ Documentation
1266
+
1267
+ * improved docs for raise_error matcher (James Almond)
1268
+
1269
+ ### 2.4.0 / 2011-01-02
1270
+
1271
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.3.0...v2.4.0)
1272
+
1273
+ No functional changes in this release, which was made to align with the
1274
+ rspec-core-2.4.0 release.
1275
+
1276
+ Enhancements
1277
+
1278
+ * improved RDoc for change matcher (Jo Liss)
1279
+
1280
+ ### 2.3.0 / 2010-12-12
1281
+
1282
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.2.1...v2.3.0)
1283
+
1284
+ Enhancements
1285
+
1286
+ * diff strings when include matcher fails (Mike Sassak)
1287
+
1288
+ ### 2.2.0 / 2010-11-28
1289
+
1290
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.1.0...v2.2.0)
1291
+
1292
+ ### 2.1.0 / 2010-11-07
1293
+
1294
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.0.1...v2.1.0)
1295
+
1296
+ Enhancements
1297
+
1298
+ * `be_within(delta).of(expected)` matcher (Myron Marston)
1299
+ * Lots of new Cucumber features (Myron Marston)
1300
+ * Raise error if you try `should != expected` on Ruby-1.9 (Myron Marston)
1301
+ * Improved failure messages from `throw_symbol` (Myron Marston)
1302
+
1303
+ Bug fixes
1304
+
1305
+ * Eliminate hard dependency on `RSpec::Core` (Myron Marston)
1306
+ * `have_matcher` - use pluralize only when ActiveSupport inflections are indeed
1307
+ defined (Josep M Bach)
1308
+ * throw_symbol matcher no longer swallows exceptions (Myron Marston)
1309
+ * fix matcher chaining to avoid name collisions (Myron Marston)
1310
+
1311
+ ### 2.0.0 / 2010-10-10
1312
+
1313
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.0.0.rc...v2.0.0)
1314
+
1315
+ Enhancements
1316
+
1317
+ * Add match_for_should_not method to matcher DSL (Myron Marston)
1318
+
1319
+ Bug fixes
1320
+
1321
+ * `respond_to` matcher works correctly with `should_not` with multiple methods
1322
+ (Myron Marston)
1323
+ * `include` matcher works correctly with `should_not` with multiple values
1324
+ (Myron Marston)
1325
+
1326
+ ### 2.0.0.rc / 2010-10-05
1327
+
1328
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.0.0.beta.22...v2.0.0.rc)
1329
+
1330
+ Enhancements
1331
+
1332
+ * `require 'rspec/expectations'` in a T::U or MiniUnit suite (Josep M. Bach)
1333
+
1334
+ Bug fixes
1335
+
1336
+ * change by 0 passes/fails correctly (Len Smith)
1337
+ * Add description to satisfy matcher
1338
+
1339
+ ### 2.0.0.beta.22 / 2010-09-12
1340
+
1341
+ [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.0.0.beta.20...v2.0.0.beta.22)
1342
+
1343
+ Enhancements
1344
+
1345
+ * diffing improvements
1346
+ * diff multiline strings
1347
+ * don't diff single line strings
1348
+ * don't diff numbers (silly)
1349
+ * diff regexp + multiline string
1350
+
1351
+ Bug fixes
1352
+ * `should[_not]` change now handles boolean values correctly