rspec-expectations 3.13.3 → 3.13.4
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/Changelog.md +146 -140
- data/lib/rspec/expectations/configuration.rb +23 -14
- data/lib/rspec/expectations/version.rb +1 -1
- data/lib/rspec/matchers/built_in/match.rb +12 -0
- data/lib/rspec/matchers/dsl.rb +6 -5
- data.tar.gz.sig +0 -0
- metadata +21 -81
- metadata.gz.sig +2 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: c0eb448ddd64a8046c3aa3ea0792f4f8debdef6145a7e82a4e6631bf3f0e0fd1
         | 
| 4 | 
            +
              data.tar.gz: c6f13e803efa869f3fc324bf641517acd6d2ad5d603aebe9e17ada09fe4a8004
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 2538dd5c3d20e09e95b544951a3fb4ff5f548df05e6b43ac08845514bc9f16d9c40565c324ba7c084548ad5cbedfa4a831ec4e55912f2356e5dd2faef87e0966
         | 
| 7 | 
            +
              data.tar.gz: c1da8597d452276695dd0e9fd66941c0b209db20c4774975c2c1d5c4729e0b1c04d9593445c27d3f91d00a0847391f2ab3795e076246f79075150e6e66359efd
         | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | Binary file | 
    
        data/Changelog.md
    CHANGED
    
    | @@ -1,5 +1,11 @@ | |
| 1 1 | 
             
            ### Development
         | 
| 2 | 
            -
            [Full Changelog]( | 
| 2 | 
            +
            [Full Changelog](https://github.com/rspec/rspec/compare/rspec-expectations-v3.13.4...3-13-maintenance)
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            ### 3.13.4 / 2025-05-01
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            Bug Fixes:
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            * Prevent `match` from trying to compare strings and arrays using `Array#match`. (Joseph Haig, rspec/rspec#183)
         | 
| 3 9 |  | 
| 4 10 | 
             
            ### 3.13.3 / 2024-09-07
         | 
| 5 11 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.13.2...v3.13.3)
         | 
| @@ -7,7 +13,7 @@ | |
| 7 13 | 
             
            Bug Fixes:
         | 
| 8 14 |  | 
| 9 15 | 
             
            * Fix passing a regular expression to the `include` matcher without a count constraint.
         | 
| 10 | 
            -
              (Jon Rowe, #1485)
         | 
| 16 | 
            +
              (Jon Rowe, rspec/rspec-expectations#1485)
         | 
| 11 17 |  | 
| 12 18 | 
             
            ### 3.13.2 / 2024-08-20
         | 
| 13 19 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.13.1...v3.13.2)
         | 
| @@ -15,10 +21,10 @@ Bug Fixes: | |
| 15 21 | 
             
            Bug Fixes:
         | 
| 16 22 |  | 
| 17 23 | 
             
            * 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)
         | 
| 24 | 
            +
              (Eric Mueller, rspec/rspec-expectations#1455)
         | 
| 25 | 
            +
            * Use `RSpec.warning` for an expectation warning rather than `Kernel.warn`. (Jon Rowe, rspec/rspec-expectations#1472)
         | 
| 26 | 
            +
            * Prevent mismatched use of block and value matchers in compound expectations. (Phil Pirozhkov, rspec/rspec-expectations#1476)
         | 
| 27 | 
            +
            * Raise an error when passing no arguments to the `include` matcher. (Eric Mueller, rspec/rspec-expectations#1479)
         | 
| 22 28 |  | 
| 23 29 | 
             
            ### 3.13.1 / 2024-06-13
         | 
| 24 30 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.13.0...v3.13.1)
         | 
| @@ -26,7 +32,7 @@ Bug Fixes: | |
| 26 32 | 
             
            Bug Fixes:
         | 
| 27 33 |  | 
| 28 34 | 
             
            * Fix the "false positive" warning message when using a negated `raise_error` matcher
         | 
| 29 | 
            -
              with a `RegExp` instance. (Eric Mueller, #1456)
         | 
| 35 | 
            +
              with a `RegExp` instance. (Eric Mueller, rspec/rspec-expectations#1456)
         | 
| 30 36 |  | 
| 31 37 | 
             
            ### 3.13.0 / 2024-02-04
         | 
| 32 38 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.12.4...v3.13.0)
         | 
| @@ -34,7 +40,7 @@ Bug Fixes: | |
| 34 40 | 
             
            Enhancements:
         | 
| 35 41 |  | 
| 36 42 | 
             
            * Update `eq` and `eql` matchers to better highlight difference in string encoding.
         | 
| 37 | 
            -
              (Alan Foster, #1425)
         | 
| 43 | 
            +
              (Alan Foster, rspec/rspec-expectations#1425)
         | 
| 38 44 |  | 
| 39 45 | 
             
            ### 3.12.4 / 2024-02-04
         | 
| 40 46 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.12.3...v3.12.4)
         | 
| @@ -42,7 +48,7 @@ Enhancements: | |
| 42 48 | 
             
            Bug Fixes:
         | 
| 43 49 |  | 
| 44 50 | 
             
            * Fix the diff for redefined `actual` and reassigned `@actual` in compound
         | 
| 45 | 
            -
              expectations failure messages. (Phil Pirozhkov, #1440)
         | 
| 51 | 
            +
              expectations failure messages. (Phil Pirozhkov, rspec/rspec-expectations#1440)
         | 
| 46 52 |  | 
| 47 53 | 
             
            ### 3.12.3 / 2023-04-20
         | 
| 48 54 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.12.2...v3.12.3)
         | 
| @@ -51,7 +57,7 @@ Bug Fixes: | |
| 51 57 |  | 
| 52 58 | 
             
            * Fix `include` matcher when fuzzy matching on keys with a hash-like actual which
         | 
| 53 59 | 
             
              has a non standard `key?` method which may raise.
         | 
| 54 | 
            -
              (Jon Rowe, #1416)
         | 
| 60 | 
            +
              (Jon Rowe, rspec/rspec-expectations#1416)
         | 
| 55 61 |  | 
| 56 62 | 
             
            ### 3.12.2 / 2023-01-07
         | 
| 57 63 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.12.1...v3.12.2)
         | 
| @@ -59,16 +65,16 @@ Bug Fixes: | |
| 59 65 | 
             
            Bug Fixes:
         | 
| 60 66 |  | 
| 61 67 | 
             
            * Prevent deprecation warning when using the `exist` matcher with `Dir`.
         | 
| 62 | 
            -
              (Steve Dierker, #1398)
         | 
| 68 | 
            +
              (Steve Dierker, rspec/rspec-expectations#1398)
         | 
| 63 69 |  | 
| 64 70 | 
             
            ### 3.12.1 / 2022-12-16
         | 
| 65 71 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.12.0...v3.12.1)
         | 
| 66 72 |  | 
| 67 73 | 
             
            Bug Fixes:
         | 
| 68 74 |  | 
| 69 | 
            -
            * Pass keyword arguments through to aliased (and thus negated) matchers. (Jon Rowe, #1394)
         | 
| 75 | 
            +
            * Pass keyword arguments through to aliased (and thus negated) matchers. (Jon Rowe, rspec/rspec-expectations#1394)
         | 
| 70 76 | 
             
            * When handling failures in an aggregated_failures block (or example) prevent
         | 
| 71 | 
            -
              the failure list leaking out. (Maciek Rząsa, #1392)
         | 
| 77 | 
            +
              the failure list leaking out. (Maciek Rząsa, rspec/rspec-expectations#1392)
         | 
| 72 78 |  | 
| 73 79 | 
             
            ### 3.12.0 / 2022-10-26
         | 
| 74 80 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.11.1...v3.12.0)
         | 
| @@ -76,7 +82,7 @@ Bug Fixes: | |
| 76 82 | 
             
            Enhancements:
         | 
| 77 83 |  | 
| 78 84 | 
             
            * Add `an_array_matching` alias for `match_array` to improve readability as an argument
         | 
| 79 | 
            -
              matcher. (Mark Schneider, #1361)
         | 
| 85 | 
            +
              matcher. (Mark Schneider, rspec/rspec-expectations#1361)
         | 
| 80 86 |  | 
| 81 87 | 
             
            ### 3.11.1 / 2022-09-12
         | 
| 82 88 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.11.0...v3.11.1)
         | 
| @@ -84,33 +90,33 @@ Enhancements: | |
| 84 90 | 
             
            Bug Fixes:
         | 
| 85 91 |  | 
| 86 92 | 
             
            * Allow the `contain_exactly` matcher to be reused by resetting its
         | 
| 87 | 
            -
              internals on `matches?` (@bclayman-sq, #1326)
         | 
| 93 | 
            +
              internals on `matches?` (@bclayman-sq, rspec/rspec-expectations#1326)
         | 
| 88 94 | 
             
            * Using the exist matcher on `FileTest` no longer produces a deprecation warning.
         | 
| 89 | 
            -
              (Ryo Nakamura, #1383)
         | 
| 95 | 
            +
              (Ryo Nakamura, rspec/rspec-expectations#1383)
         | 
| 90 96 |  | 
| 91 97 | 
             
            ### 3.11.0 / 2022-02-09
         | 
| 92 98 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.10.2...v3.11.0)
         | 
| 93 99 |  | 
| 94 100 | 
             
            Enhancements:
         | 
| 95 101 |  | 
| 96 | 
            -
            * Return `true` from `aggregate_failures` when no exception occurs. (Jon Rowe, #1225)
         | 
| 102 | 
            +
            * Return `true` from `aggregate_failures` when no exception occurs. (Jon Rowe, rspec/rspec-expectations#1225)
         | 
| 97 103 |  | 
| 98 104 | 
             
            Deprecations:
         | 
| 99 105 |  | 
| 100 106 | 
             
            * Print a deprecation message when using the implicit block expectation syntax.
         | 
| 101 | 
            -
              (Phil Pirozhkov, #1139)
         | 
| 107 | 
            +
              (Phil Pirozhkov, rspec/rspec-expectations#1139)
         | 
| 102 108 |  | 
| 103 109 | 
             
            ### 3.10.2 / 2022-01-14
         | 
| 104 110 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.10.1...v3.10.2)
         | 
| 105 111 |  | 
| 106 112 | 
             
            Bug Fixes:
         | 
| 107 113 |  | 
| 108 | 
            -
            * Fix support for dynamic matchers for expectation target checks (Phil Pirozhkov, #1294)
         | 
| 114 | 
            +
            * Fix support for dynamic matchers for expectation target checks (Phil Pirozhkov, rspec/rspec-expectations#1294)
         | 
| 109 115 | 
             
            * Fix `expect(array).to include(hash).times`, previously this would fail due to
         | 
| 110 116 | 
             
              matching the entire array as a single hash, rather than a member of the hash.
         | 
| 111 | 
            -
              (Slava Kardakov, #1322)
         | 
| 117 | 
            +
              (Slava Kardakov, rspec/rspec-expectations#1322)
         | 
| 112 118 | 
             
            * Ensure `raise_error` matches works with the `error_highlight` option from Ruby 3.1.
         | 
| 113 | 
            -
              (Peter Goldstein, #1339)
         | 
| 119 | 
            +
              (Peter Goldstein, rspec/rspec-expectations#1339)
         | 
| 114 120 |  | 
| 115 121 | 
             
            ### 3.10.1 / 2020-12-27
         | 
| 116 122 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.10.0...v3.10.1)
         | 
| @@ -118,7 +124,7 @@ Bug Fixes: | |
| 118 124 | 
             
            Bug Fixes:
         | 
| 119 125 |  | 
| 120 126 | 
             
            * Allow JRuby 9.2.x.x to generate backtraces normally rather than via our
         | 
| 121 | 
            -
              backfill workaround. (#1230, Jon Rowe)
         | 
| 127 | 
            +
              backfill workaround. (rspec/rspec-expectations#1230, Jon Rowe)
         | 
| 122 128 |  | 
| 123 129 | 
             
            ### 3.10.0 / 2020-10-30
         | 
| 124 130 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.9.3...v3.10.0)
         | 
| @@ -126,19 +132,19 @@ Bug Fixes: | |
| 126 132 | 
             
            Enhancements:
         | 
| 127 133 |  | 
| 128 134 | 
             
            * 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)
         | 
| 135 | 
            +
              (Marc-André Lafortune, rspec/rspec-expectations#1168)
         | 
| 136 | 
            +
            * Add an explicit warning when `nil` is passed to `raise_error`. (Phil Pirozhkov, rspec/rspec-expectations#1143)
         | 
| 137 | 
            +
            * Improve `include` matcher's composability. (Phil Pirozhkov, rspec/rspec-expectations#1155)
         | 
| 132 138 | 
             
            * 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)
         | 
| 139 | 
            +
              (Benoit Tigeot and Nicolas Zermati, rspec/rspec-expectations#1156)
         | 
| 140 | 
            +
            * `aggregate_failures` now shows the backtrace line for each failure. (Fabricio Bedin, rspec/rspec-expectations#1163)
         | 
| 135 141 | 
             
            * Support multiple combinations of `yield_control` modifiers like `at_least`, `at_most`.
         | 
| 136 | 
            -
              (Jon Rowe, #1169)
         | 
| 142 | 
            +
              (Jon Rowe, rspec/rspec-expectations#1169)
         | 
| 137 143 | 
             
            * Dynamic `have_<n>` matchers now have output consistent with other dynamic matchers.
         | 
| 138 | 
            -
              (Marc-André Lafortune, #1195)
         | 
| 144 | 
            +
              (Marc-André Lafortune, rspec/rspec-expectations#1195)
         | 
| 139 145 | 
             
            * New config option `strict_predicate_matchers` allows predicate matcher to be strict
         | 
| 140 146 | 
             
              (i.e. match for `true` or `false`) instead of the default (match truthy vs `false` or `nil`).
         | 
| 141 | 
            -
              (Marc-André Lafortune, #1196)
         | 
| 147 | 
            +
              (Marc-André Lafortune, rspec/rspec-expectations#1196)
         | 
| 142 148 |  | 
| 143 149 | 
             
            ### 3.9.4 / 2020-10-29
         | 
| 144 150 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.9.3...v3.9.4)
         | 
| @@ -146,7 +152,7 @@ Enhancements: | |
| 146 152 | 
             
            Bug Fixes:
         | 
| 147 153 |  | 
| 148 154 | 
             
            * 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)
         | 
| 155 | 
            +
              were they would act like keywords and be cast to a hash. (Jon Rowe, rspec/rspec-expectations#1222)
         | 
| 150 156 |  | 
| 151 157 | 
             
            ### 3.9.3 / 2020-10-23
         | 
| 152 158 |  | 
| @@ -154,14 +160,14 @@ Bug Fixes: | |
| 154 160 |  | 
| 155 161 | 
             
            * Swap the comparison of the delta vs the expected for the `be_within` matcher allowing
         | 
| 156 162 | 
             
              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)
         | 
| 163 | 
            +
              comparison methods. (Kelly Stannard, rspec/rspec-expectations#1182)
         | 
| 164 | 
            +
            * Properly format expected in the description of the `be_within` matcher. (Jon Rowe, rspec/rspec-expectations#1185)
         | 
| 159 165 | 
             
            * Remove warning when using keyword arguments with `be_` and `have_` matchers on 2.7.x
         | 
| 160 | 
            -
              (Jon Rowe, #1187)
         | 
| 166 | 
            +
              (Jon Rowe, rspec/rspec-expectations#1187)
         | 
| 161 167 | 
             
            * 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)
         | 
| 168 | 
            +
              for custom matches (fixes formatting in `EnglishPhrasing#list`). (Robert Eshleman, rspec/rspec-expectations#1193)
         | 
| 163 169 | 
             
            * 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)
         | 
| 170 | 
            +
              `expect(1).not_to be < 'a'` will now correctly fail rather than pass. (Jon Rowe, rspec/rspec-expectations#1208)
         | 
| 165 171 |  | 
| 166 172 |  | 
| 167 173 | 
             
            ### 3.9.2 / 2020-05-08
         | 
| @@ -170,9 +176,9 @@ Bug Fixes: | |
| 170 176 | 
             
            Bug Fixes:
         | 
| 171 177 |  | 
| 172 178 | 
             
            * Issue a proper `ArgumentError` when invalid arguments are given to `yield_control`
         | 
| 173 | 
            -
              modifiers such as `at_least` et al. (Marc-André Lafortune, #1167)
         | 
| 179 | 
            +
              modifiers such as `at_least` et al. (Marc-André Lafortune, rspec/rspec-expectations#1167)
         | 
| 174 180 | 
             
            * Prevent Ruby 2.7 keyword arguments warning from being issued by custom
         | 
| 175 | 
            -
              matcher definitions. (Jon Rowe, #1176)
         | 
| 181 | 
            +
              matcher definitions. (Jon Rowe, rspec/rspec-expectations#1176)
         | 
| 176 182 |  | 
| 177 183 | 
             
            ### 3.9.1 / 2020-03-13
         | 
| 178 184 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.9.0...v3.9.1)
         | 
| @@ -180,7 +186,7 @@ Bug Fixes: | |
| 180 186 | 
             
            Bug Fixes:
         | 
| 181 187 |  | 
| 182 188 | 
             
            * Issue an improved warning when using `respond_to(...).with(n).arguments` and ignore
         | 
| 183 | 
            -
              the warning when using with `have_attributes(...)`. (Jon Rowe, #1164)
         | 
| 189 | 
            +
              the warning when using with `have_attributes(...)`. (Jon Rowe, rspec/rspec-expectations#1164)
         | 
| 184 190 |  | 
| 185 191 | 
             
            ### 3.9.0 / 2019-10-08
         | 
| 186 192 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.8.6...v3.9.0)
         | 
| @@ -188,19 +194,19 @@ Bug Fixes: | |
| 188 194 | 
             
            Enhancements:
         | 
| 189 195 |  | 
| 190 196 | 
             
            * The `respond_to` matcher now uses the signature from `initialize` to validate checks
         | 
| 191 | 
            -
              for `new` (unless `new` is non standard). (Jon Rowe, #1072)
         | 
| 197 | 
            +
              for `new` (unless `new` is non standard). (Jon Rowe, rspec/rspec-expectations#1072)
         | 
| 192 198 | 
             
            * Generated descriptions for matchers now use `is expected to` rather than `should` in
         | 
| 193 | 
            -
              line with our preferred DSL. (Pete Johns, #1080, rspec/rspec- | 
| 199 | 
            +
              line with our preferred DSL. (Pete Johns, rspec/rspec-expectations#1080, rspec/rspec-corerspec/rspec-expectations#2572)
         | 
| 194 200 | 
             
            * Add the ability to re-raise expectation errors when matching
         | 
| 195 | 
            -
              with `match_when_negated` blocks. (Jon Rowe, #1130)
         | 
| 201 | 
            +
              with `match_when_negated` blocks. (Jon Rowe, rspec/rspec-expectations#1130)
         | 
| 196 202 | 
             
            * Add a warning when an empty diff is produce due to identical inspect output.
         | 
| 197 | 
            -
              (Benoit Tigeot, #1126)
         | 
| 203 | 
            +
              (Benoit Tigeot, rspec/rspec-expectations#1126)
         | 
| 198 204 |  | 
| 199 205 | 
             
            ### 3.8.6 / 2019-10-07
         | 
| 200 206 |  | 
| 201 207 | 
             
            Bug Fixes:
         | 
| 202 208 |  | 
| 203 | 
            -
            * Revert #1125 due to the change being incompatible with our semantic versioning
         | 
| 209 | 
            +
            * Revert rspec/rspec-expectations#1125 due to the change being incompatible with our semantic versioning
         | 
| 204 210 | 
             
              policy.
         | 
| 205 211 |  | 
| 206 212 | 
             
            ### 3.8.5 / 2019-10-02
         | 
| @@ -209,7 +215,7 @@ Bug Fixes: | |
| 209 215 | 
             
            Bug Fixes:
         | 
| 210 216 |  | 
| 211 217 | 
             
            * Prevent unsupported implicit block expectation syntax from being used.
         | 
| 212 | 
            -
              (Phil Pirozhkov, #1125)
         | 
| 218 | 
            +
              (Phil Pirozhkov, rspec/rspec-expectations#1125)
         | 
| 213 219 |  | 
| 214 220 | 
             
            ### 3.8.4 / 2019-06-10
         | 
| 215 221 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.8.3...v3.8.4)
         | 
| @@ -217,7 +223,7 @@ Bug Fixes: | |
| 217 223 | 
             
            Bug Fixes:
         | 
| 218 224 |  | 
| 219 225 | 
             
            * 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)
         | 
| 226 | 
            +
              the `be_an_instance_of` and `be_kind_of` matchers. (Nazar Matus, rspec/rspec-expectations#1112)
         | 
| 221 227 |  | 
| 222 228 | 
             
            ### 3.8.3 / 2019-04-20
         | 
| 223 229 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.8.2...v3.8.3)
         | 
| @@ -225,12 +231,12 @@ Bug Fixes: | |
| 225 231 | 
             
            Bug Fixes:
         | 
| 226 232 |  | 
| 227 233 | 
             
            * Prevent composed `all` matchers from leaking into their siblings leading to duplicate
         | 
| 228 | 
            -
              failures. (Jamie English, #1086)
         | 
| 234 | 
            +
              failures. (Jamie English, rspec/rspec-expectations#1086)
         | 
| 229 235 | 
             
            * Prevent objects which change their hash on comparison from failing change checks.
         | 
| 230 | 
            -
              (Phil Pirozhkov, #1100)
         | 
| 236 | 
            +
              (Phil Pirozhkov, rspec/rspec-expectations#1100)
         | 
| 231 237 | 
             
            * Issue an `ArgumentError` rather than a `NoMethodError` when `be_an_instance_of` and
         | 
| 232 238 | 
             
              `be_kind_of` matchers encounter objects not supporting those methods.
         | 
| 233 | 
            -
              (Taichi Ishitani, #1107)
         | 
| 239 | 
            +
              (Taichi Ishitani, rspec/rspec-expectations#1107)
         | 
| 234 240 |  | 
| 235 241 | 
             
            ### 3.8.2 / 2018-10-09
         | 
| 236 242 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.8.1...v3.8.2)
         | 
| @@ -238,9 +244,9 @@ Bug Fixes: | |
| 238 244 | 
             
            Bug Fixes:
         | 
| 239 245 |  | 
| 240 246 | 
             
            * 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)
         | 
| 247 | 
            +
              Hash comparison before calling `to_hash` to convert to a hash. (Jordan Owens, rspec/rspec-expectations#1073)
         | 
| 242 248 | 
             
            * Prevent unexpected call stack jumps from causing an obscure error (`IndexError`), and
         | 
| 243 | 
            -
              replace that error with a proper informative message. (Jon Rowe, #1076)
         | 
| 249 | 
            +
              replace that error with a proper informative message. (Jon Rowe, rspec/rspec-expectations#1076)
         | 
| 244 250 |  | 
| 245 251 | 
             
            ### 3.8.1 / 2018-08-06
         | 
| 246 252 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.8.0...v3.8.1)
         | 
| @@ -249,7 +255,7 @@ Bug Fixes: | |
| 249 255 |  | 
| 250 256 | 
             
            * Fix regression in `include` matcher so stopped
         | 
| 251 257 | 
             
              `expect(hash.with_indifferent_access).to include(:symbol_key)`
         | 
| 252 | 
            -
              from working. (Eito Katagiri, #1069)
         | 
| 258 | 
            +
              from working. (Eito Katagiri, rspec/rspec-expectations#1069)
         | 
| 253 259 |  | 
| 254 260 | 
             
            ### 3.8.0 / 2018-08-04
         | 
| 255 261 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.7.0...v3.8.0)
         | 
| @@ -257,20 +263,20 @@ Bug Fixes: | |
| 257 263 | 
             
            Enhancements:
         | 
| 258 264 |  | 
| 259 265 | 
             
            * Improve failure message of `change(receiver, :message)` by including the
         | 
| 260 | 
            -
              receiver as `SomeClass#some_message`. (Tomohiro Hashidate, #1005)
         | 
| 266 | 
            +
              receiver as `SomeClass#some_message`. (Tomohiro Hashidate, rspec/rspec-expectations#1005)
         | 
| 261 267 | 
             
            * Improve `change` matcher so that it can correctly detect changes in
         | 
| 262 268 | 
             
              deeply nested mutable objects (such as arrays-of-hashes-of-arrays).
         | 
| 263 269 | 
             
              The improved logic uses the before/after `hash` value to see if the
         | 
| 264 270 | 
             
              object has been mutated, rather than shallow duping the object.
         | 
| 265 | 
            -
              (Myron Marston, #1034)
         | 
| 271 | 
            +
              (Myron Marston, rspec/rspec-expectations#1034)
         | 
| 266 272 | 
             
            * Improve `include` matcher so that pseudo-hash objects (e.g. objects
         | 
| 267 273 | 
             
              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)
         | 
| 274 | 
            +
              as a hash, as long as they implement `to_hash`. (Pablo Brasero, rspec/rspec-expectations#1012)
         | 
| 269 275 | 
             
            * Add `max_formatted_output_length=` to configuration, allowing changing
         | 
| 270 276 | 
             
              the length at which we truncate large output strings.
         | 
| 271 | 
            -
              (Sam Phippen #951, Benoit Tigeot #1056)
         | 
| 277 | 
            +
              (Sam Phippen rspec/rspec-expectations#951, Benoit Tigeot rspec/rspec-expectations#1056)
         | 
| 272 278 | 
             
            * Improve error message when passing a matcher that doesn't support block
         | 
| 273 | 
            -
              expectations to a block based `expect`. (@nicktime, #1066)
         | 
| 279 | 
            +
              expectations to a block based `expect`. (@nicktime, rspec/rspec-expectations#1066)
         | 
| 274 280 |  | 
| 275 281 | 
             
            ### 3.7.0 / 2017-10-17
         | 
| 276 282 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.6.0...v3.7.0)
         | 
| @@ -278,27 +284,27 @@ Enhancements: | |
| 278 284 | 
             
            Enhancements:
         | 
| 279 285 |  | 
| 280 286 | 
             
            * Improve compatibility with `--enable-frozen-string-literal` option
         | 
| 281 | 
            -
              on Ruby 2.3+. (Pat Allan, #997)
         | 
| 287 | 
            +
              on Ruby 2.3+. (Pat Allan, rspec/rspec-expectations#997)
         | 
| 282 288 |  | 
| 283 289 | 
             
            ### 3.6.0 / 2017-05-04
         | 
| 284 290 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.6.0.beta2...v3.6.0)
         | 
| 285 291 |  | 
| 286 292 | 
             
            Enhancements:
         | 
| 287 293 |  | 
| 288 | 
            -
            * Treat NoMethodError as a failure for comparison matchers. (Jon Rowe, #972)
         | 
| 294 | 
            +
            * Treat NoMethodError as a failure for comparison matchers. (Jon Rowe, rspec/rspec-expectations#972)
         | 
| 289 295 | 
             
            * Allow for scoped aliased and negated matchers--just call
         | 
| 290 296 | 
             
              `alias_matcher` or `define_negated_matcher` from within an example
         | 
| 291 | 
            -
              group. (Markus Reiter, #974)
         | 
| 297 | 
            +
              group. (Markus Reiter, rspec/rspec-expectations#974)
         | 
| 292 298 | 
             
            * Improve failure message of `change` matcher with block and `satisfy` matcher
         | 
| 293 299 | 
             
              by including the block snippet instead of just describing it as `result` or
         | 
| 294 | 
            -
              `block` when Ripper is available. (Yuji Nakayama, #987)
         | 
| 300 | 
            +
              `block` when Ripper is available. (Yuji Nakayama, rspec/rspec-expectations#987)
         | 
| 295 301 |  | 
| 296 302 | 
             
            Bug Fixes:
         | 
| 297 303 |  | 
| 298 304 | 
             
            * Fix `yield_with_args` and `yield_successive_args` matchers so that
         | 
| 299 305 | 
             
              they compare expected to actual args at the time the args are yielded
         | 
| 300 306 | 
             
              instead of at the end, in case the method that is yielding mutates the
         | 
| 301 | 
            -
              arguments after yielding. (Alyssa Ross, #965)
         | 
| 307 | 
            +
              arguments after yielding. (Alyssa Ross, rspec/rspec-expectations#965)
         | 
| 302 308 |  | 
| 303 309 | 
             
            ### 3.6.0.beta2 / 2016-12-12
         | 
| 304 310 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.6.0.beta1...v3.6.0.beta2)
         | 
| @@ -306,29 +312,29 @@ Bug Fixes: | |
| 306 312 | 
             
            Bug Fixes:
         | 
| 307 313 |  | 
| 308 314 | 
             
            * Using the exist matcher on `File` no longer produces a deprecation warning.
         | 
| 309 | 
            -
              (Jon Rowe, #954)
         | 
| 315 | 
            +
              (Jon Rowe, rspec/rspec-expectations#954)
         | 
| 310 316 |  | 
| 311 317 | 
             
            ### 3.6.0.beta1 / 2016-10-09
         | 
| 312 318 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0...v3.6.0.beta1)
         | 
| 313 319 |  | 
| 314 320 | 
             
            Bug Fixes:
         | 
| 315 321 |  | 
| 316 | 
            -
            * Fix `contain_exactly` to work correctly with ranges. (Myron Marston, #940)
         | 
| 317 | 
            -
            * Fix `change` to work correctly with sets. (Marcin Gajewski, #939)
         | 
| 322 | 
            +
            * Fix `contain_exactly` to work correctly with ranges. (Myron Marston, rspec/rspec-expectations#940)
         | 
| 323 | 
            +
            * Fix `change` to work correctly with sets. (Marcin Gajewski, rspec/rspec-expectations#939)
         | 
| 318 324 |  | 
| 319 325 | 
             
            ### 3.5.0 / 2016-07-01
         | 
| 320 326 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0.beta4...v3.5.0)
         | 
| 321 327 |  | 
| 322 328 | 
             
            Enhancements:
         | 
| 323 329 |  | 
| 324 | 
            -
            * Add support for keyword arguments to the `respond_to` matcher. (Rob Smith, #915).
         | 
| 330 | 
            +
            * Add support for keyword arguments to the `respond_to` matcher. (Rob Smith, rspec/rspec-expectations#915).
         | 
| 325 331 |  | 
| 326 332 | 
             
            ### 3.5.0.beta4 / 2016-06-05
         | 
| 327 333 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0.beta3...v3.5.0.beta4)
         | 
| 328 334 |  | 
| 329 335 | 
             
            Bug Fixes:
         | 
| 330 336 |  | 
| 331 | 
            -
            * Fix `include` matcher so that it provides a valid diff for hashes. (Yuji Nakayama, #916)
         | 
| 337 | 
            +
            * Fix `include` matcher so that it provides a valid diff for hashes. (Yuji Nakayama, rspec/rspec-expectations#916)
         | 
| 332 338 |  | 
| 333 339 | 
             
            ### 3.5.0.beta3 / 2016-04-02
         | 
| 334 340 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0.beta2...v3.5.0.beta3)
         | 
| @@ -336,11 +342,11 @@ Bug Fixes: | |
| 336 342 | 
             
            Enhancements:
         | 
| 337 343 |  | 
| 338 344 | 
             
            * Make `rspec/expectations/minitest_integration` work on Minitest::Spec
         | 
| 339 | 
            -
              5.6+. (Myron Marston, #904)
         | 
| 345 | 
            +
              5.6+. (Myron Marston, rspec/rspec-expectations#904)
         | 
| 340 346 | 
             
            * Add an alias `having_attributes` for `have_attributes` matcher.
         | 
| 341 | 
            -
              (Yuji Nakayama, #905)
         | 
| 347 | 
            +
              (Yuji Nakayama, rspec/rspec-expectations#905)
         | 
| 342 348 | 
             
            * Improve `change` matcher error message when block is mis-used.
         | 
| 343 | 
            -
              (Alex Altair, #908)
         | 
| 349 | 
            +
              (Alex Altair, rspec/rspec-expectations#908)
         | 
| 344 350 |  | 
| 345 351 | 
             
            ### 3.5.0.beta2 / 2016-03-10
         | 
| 346 352 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0.beta1...v3.5.0.beta2)
         | 
| @@ -348,15 +354,15 @@ Enhancements: | |
| 348 354 | 
             
            Enhancements:
         | 
| 349 355 |  | 
| 350 356 | 
             
            * Add the ability to raise an error on encountering false positives via
         | 
| 351 | 
            -
              `RSpec::Configuration#on_potential_false_positives = :raise`. (Jon Rowe, #900)
         | 
| 357 | 
            +
              `RSpec::Configuration#on_potential_false_positives = :raise`. (Jon Rowe, rspec/rspec-expectations#900)
         | 
| 352 358 | 
             
            * When using the custom matcher DSL, support new
         | 
| 353 359 | 
             
              `notify_expectation_failures: true` option for the `match` method to
         | 
| 354 360 | 
             
              allow expectation failures to be raised as normal instead of being
         | 
| 355 | 
            -
              converted into a `false` return value for `matches?`. (Jon Rowe, #892)
         | 
| 361 | 
            +
              converted into a `false` return value for `matches?`. (Jon Rowe, rspec/rspec-expectations#892)
         | 
| 356 362 |  | 
| 357 363 | 
             
            Bug Fixes:
         | 
| 358 364 |  | 
| 359 | 
            -
            * Allow `should` deprecation check to work on `BasicObject`s. (James Coleman, #898)
         | 
| 365 | 
            +
            * Allow `should` deprecation check to work on `BasicObject`s. (James Coleman, rspec/rspec-expectations#898)
         | 
| 360 366 |  | 
| 361 367 | 
             
            ### 3.5.0.beta1 / 2016-02-06
         | 
| 362 368 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.4.0...v3.5.0.beta1)
         | 
| @@ -364,14 +370,14 @@ Bug Fixes: | |
| 364 370 | 
             
            Enhancements:
         | 
| 365 371 |  | 
| 366 372 | 
             
            * Make `match_when_negated` in custom matcher DSL support use of
         | 
| 367 | 
            -
              expectations within the match logic. (Chris Arcand, #789)
         | 
| 373 | 
            +
              expectations within the match logic. (Chris Arcand, rspec/rspec-expectations#789)
         | 
| 368 374 |  | 
| 369 375 | 
             
            Bug Fixes:
         | 
| 370 376 |  | 
| 371 377 | 
             
            * Return `true` as expected from passing negated expectations
         | 
| 372 378 | 
             
              (such as `expect("foo").not_to eq "bar"`), so they work
         | 
| 373 379 | 
             
              properly when used within a `match` or `match_when_negated`
         | 
| 374 | 
            -
              block. (Chris Arcand, #789)
         | 
| 380 | 
            +
              block. (Chris Arcand, rspec/rspec-expectations#789)
         | 
| 375 381 |  | 
| 376 382 | 
             
            ### 3.4.0 / 2015-11-11
         | 
| 377 383 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.3.1...v3.4.0)
         | 
| @@ -380,22 +386,22 @@ Enhancements: | |
| 380 386 |  | 
| 381 387 | 
             
            * Warn when `RSpec::Matchers` is included in a superclass after it has
         | 
| 382 388 | 
             
              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)
         | 
| 389 | 
            +
              can cause uses of `super` to trigger infinite recursion. (Myron Marston, rspec/rspec-expectations#816)
         | 
| 384 390 | 
             
            * Stop rescuing `NoMemoryError`, `SignalExcepetion`, `Interrupt` and
         | 
| 385 | 
            -
              `SystemExit`. It is dangerous to interfere with these. (Myron Marston, #845)
         | 
| 391 | 
            +
              `SystemExit`. It is dangerous to interfere with these. (Myron Marston, rspec/rspec-expectations#845)
         | 
| 386 392 | 
             
            * 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)
         | 
| 393 | 
            +
              captures when matching a regex against a string. (Sam Phippen, rspec/rspec-expectations#848)
         | 
| 388 394 | 
             
            * 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)
         | 
| 395 | 
            +
              to print it all on a single line didn't read very well. (Myron Marston, rspec/rspec-expectations#859)
         | 
| 390 396 |  | 
| 391 397 | 
             
            Bug Fixes:
         | 
| 392 398 |  | 
| 393 399 | 
             
            * Fix failure message from dynamic predicate matchers when the object
         | 
| 394 400 | 
             
              does not respond to the predicate so that it is inspected rather
         | 
| 395 401 | 
             
              than relying upon its `to_s` -- that way for `nil`, `"nil"` is
         | 
| 396 | 
            -
              printed rather than an empty string. (Myron Marston, #841)
         | 
| 402 | 
            +
              printed rather than an empty string. (Myron Marston, rspec/rspec-expectations#841)
         | 
| 397 403 | 
             
            * Fix SystemStackError raised when diffing an Enumerable object
         | 
| 398 | 
            -
              whose `#each` includes the object itself. (Yuji Nakayama, #857)
         | 
| 404 | 
            +
              whose `#each` includes the object itself. (Yuji Nakayama, rspec/rspec-expectations#857)
         | 
| 399 405 |  | 
| 400 406 | 
             
            ### 3.3.1 / 2015-07-15
         | 
| 401 407 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.3.0...v3.3.1)
         | 
| @@ -405,9 +411,9 @@ Bug Fixes: | |
| 405 411 | 
             
            * Fix `be >`, `be <`, etc so that it fails rather than allowing an
         | 
| 406 412 | 
             
              argument error to be raised when compared against an object of the
         | 
| 407 413 | 
             
              wrong type. This allows it to be used in composed matcher expressions
         | 
| 408 | 
            -
              against heterogeneous objects. (Dennis Günnewig, #809)
         | 
| 414 | 
            +
              against heterogeneous objects. (Dennis Günnewig, rspec/rspec-expectations#809)
         | 
| 409 415 | 
             
            * Fix `respond_to` to work properly on target objects
         | 
| 410 | 
            -
              that redefine the `method` method. (unmanbearpig, #821)
         | 
| 416 | 
            +
              that redefine the `method` method. (unmanbearpig, rspec/rspec-expectations#821)
         | 
| 411 417 |  | 
| 412 418 | 
             
            ### 3.3.0 / 2015-06-12
         | 
| 413 419 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.2.1...v3.3.0)
         | 
| @@ -415,50 +421,50 @@ Bug Fixes: | |
| 415 421 | 
             
            Enhancements:
         | 
| 416 422 |  | 
| 417 423 | 
             
            * Expose `RSpec::Matchers::EnglishPhrasing` to make it easier to write
         | 
| 418 | 
            -
              nice failure messages in custom matchers. (Jared Beck, #736)
         | 
| 424 | 
            +
              nice failure messages in custom matchers. (Jared Beck, rspec/rspec-expectations#736)
         | 
| 419 425 | 
             
            * Add `RSpec::Matchers::FailMatchers`, a mixin which provides
         | 
| 420 426 | 
             
              `fail`, `fail_with` and `fail_including` matchers for use in
         | 
| 421 427 | 
             
              specifying that an expectation fails for use by
         | 
| 422 | 
            -
              extension/plugin authors. (Charlie Rudolph, #729)
         | 
| 428 | 
            +
              extension/plugin authors. (Charlie Rudolph, rspec/rspec-expectations#729)
         | 
| 423 429 | 
             
            * Avoid loading `tempfile` (and its dependencies) unless
         | 
| 424 | 
            -
              it is absolutely needed. (Myron Marston, #735)
         | 
| 430 | 
            +
              it is absolutely needed. (Myron Marston, rspec/rspec-expectations#735)
         | 
| 425 431 | 
             
            * Improve failure output when attempting to use `be_true` or `be_false`.
         | 
| 426 | 
            -
              (Tim Wade, #744)
         | 
| 432 | 
            +
              (Tim Wade, rspec/rspec-expectations#744)
         | 
| 427 433 | 
             
            * Define `RSpec::Matchers#respond_to_missing?` so that
         | 
| 428 434 | 
             
              `RSpec::Matchers#respond_to?` and `RSpec::Matchers#method` handle
         | 
| 429 | 
            -
              dynamic predicate matchers. (Andrei Botalov, #751)
         | 
| 435 | 
            +
              dynamic predicate matchers. (Andrei Botalov, rspec/rspec-expectations#751)
         | 
| 430 436 | 
             
            * Use custom Time/DateTime/BigDecimal formatting for all matchers
         | 
| 431 437 | 
             
              so they are consistently represented in failure messages.
         | 
| 432 | 
            -
              (Gavin Miller, #740)
         | 
| 438 | 
            +
              (Gavin Miller, rspec/rspec-expectations#740)
         | 
| 433 439 | 
             
            * Add configuration to turn off warnings about matcher combinations that
         | 
| 434 | 
            -
              may cause false positives. (Jon Rowe, #768)
         | 
| 440 | 
            +
              may cause false positives. (Jon Rowe, rspec/rspec-expectations#768)
         | 
| 435 441 | 
             
            * Warn when using a bare `raise_error` matcher that you may be subject to
         | 
| 436 | 
            -
              false positives. (Jon Rowe, #768)
         | 
| 442 | 
            +
              false positives. (Jon Rowe, rspec/rspec-expectations#768)
         | 
| 437 443 | 
             
            * Warn rather than raise when using the`raise_error` matcher in negative
         | 
| 438 | 
            -
              expectations that may be subject to false positives. (Jon Rowe, #775)
         | 
| 444 | 
            +
              expectations that may be subject to false positives. (Jon Rowe, rspec/rspec-expectations#775)
         | 
| 439 445 | 
             
            * 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)
         | 
| 446 | 
            +
              are included the failure message only mentions `c`. (Chris Arcand, rspec/rspec-expectations#780)
         | 
| 441 447 | 
             
            * Allow `satisfy` matcher to take an optional description argument
         | 
| 442 448 | 
             
              that will be used in the `description`, `failure_message` and
         | 
| 443 449 | 
             
              `failure_message_when_negated` in place of the undescriptive
         | 
| 444 | 
            -
              "sastify block". (Chris Arcand, #783)
         | 
| 450 | 
            +
              "sastify block". (Chris Arcand, rspec/rspec-expectations#783)
         | 
| 445 451 | 
             
            * Add new `aggregate_failures` API that allows multiple independent
         | 
| 446 452 | 
             
              expectations to all fail and be listed in the failure output, rather
         | 
| 447 | 
            -
              than the example aborting on the first failure. (Myron Marston, #776)
         | 
| 453 | 
            +
              than the example aborting on the first failure. (Myron Marston, rspec/rspec-expectations#776)
         | 
| 448 454 | 
             
            * Improve `raise_error` matcher so that it can accept a matcher as a single argument
         | 
| 449 | 
            -
              that matches the message. (Time Wade, #782)
         | 
| 455 | 
            +
              that matches the message. (Time Wade, rspec/rspec-expectations#782)
         | 
| 450 456 |  | 
| 451 457 | 
             
            Bug Fixes:
         | 
| 452 458 |  | 
| 453 459 | 
             
            * Make `contain_exactly` / `match_array` work with strict test doubles
         | 
| 454 | 
            -
              that have not defined `<=>`. (Myron Marston, #758)
         | 
| 460 | 
            +
              that have not defined `<=>`. (Myron Marston, rspec/rspec-expectations#758)
         | 
| 455 461 | 
             
            * Fix `include` matcher so that it omits the diff when it would
         | 
| 456 462 | 
             
              confusingly highlight items that are actually included but are not
         | 
| 457 | 
            -
              an exact match in a line-by-line diff. (Tim Wade, #763)
         | 
| 463 | 
            +
              an exact match in a line-by-line diff. (Tim Wade, rspec/rspec-expectations#763)
         | 
| 458 464 | 
             
            * Fix `match` matcher so that it does not blow up when matching a string
         | 
| 459 465 | 
             
              or regex against another matcher (rather than a string or regex).
         | 
| 460 | 
            -
              (Myron Marston, #772)
         | 
| 461 | 
            -
            * Silence whitespace-only diffs. (Myron Marston, #801)
         | 
| 466 | 
            +
              (Myron Marston, rspec/rspec-expectations#772)
         | 
| 467 | 
            +
            * Silence whitespace-only diffs. (Myron Marston, rspec/rspec-expectations#801)
         | 
| 462 468 |  | 
| 463 469 | 
             
            ### 3.2.1 / 2015-04-06
         | 
| 464 470 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.2.0...v3.2.1)
         | 
| @@ -466,9 +472,9 @@ Bug Fixes: | |
| 466 472 | 
             
            Bug Fixes:
         | 
| 467 473 |  | 
| 468 474 | 
             
            * Prevent `Range`s from being enumerated when generating matcher
         | 
| 469 | 
            -
              descriptions. (Jon Rowe, #755)
         | 
| 475 | 
            +
              descriptions. (Jon Rowe, rspec/rspec-expectations#755)
         | 
| 470 476 | 
             
            * Ensure exception messages are compared as strings in the `raise_error`
         | 
| 471 | 
            -
              matcher. (Jon Rowe, #755)
         | 
| 477 | 
            +
              matcher. (Jon Rowe, rspec/rspec-expectations#755)
         | 
| 472 478 |  | 
| 473 479 | 
             
            ### 3.2.0 / 2015-02-03
         | 
| 474 480 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.1.2...v3.2.0)
         | 
| @@ -477,25 +483,25 @@ Enhancements: | |
| 477 483 |  | 
| 478 484 | 
             
            * Add `block_arg` method to custom matcher API, which allows you to
         | 
| 479 485 | 
             
              access the block passed to a custom matcher, if there is one.
         | 
| 480 | 
            -
              (Mike Dalton, #645)
         | 
| 486 | 
            +
              (Mike Dalton, rspec/rspec-expectations#645)
         | 
| 481 487 | 
             
            * Provide more detail in failure message of `yield_control` matcher.
         | 
| 482 | 
            -
              (Jon Rowe, #650)
         | 
| 488 | 
            +
              (Jon Rowe, rspec/rspec-expectations#650)
         | 
| 483 489 | 
             
            * Add a shorthand syntax for `chain` in the matcher DSL which assigns values
         | 
| 484 490 | 
             
              for use elsewhere, for example `chain :and_smaller_than, :small_value`
         | 
| 485 | 
            -
              creates an `attr_reader` for `small_value` (Tom Stuart, #644)
         | 
| 491 | 
            +
              creates an `attr_reader` for `small_value` (Tom Stuart, rspec/rspec-expectations#644)
         | 
| 486 492 | 
             
            * Provide a more helpful deprecation message when using the `should` syntax.
         | 
| 487 | 
            -
              (Elia Schito, #663)
         | 
| 493 | 
            +
              (Elia Schito, rspec/rspec-expectations#663)
         | 
| 488 494 | 
             
            * Provide more detail in the `have_attributes` matcher failure message.
         | 
| 489 | 
            -
              (Jon Rowe,  #668)
         | 
| 495 | 
            +
              (Jon Rowe,  rspec/rspec-expectations#668)
         | 
| 490 496 | 
             
            * Make the `have_attributes` matcher diffable.
         | 
| 491 | 
            -
              (Jon Rowe, Alexey Fedorov, #668)
         | 
| 497 | 
            +
              (Jon Rowe, Alexey Fedorov, rspec/rspec-expectations#668)
         | 
| 492 498 | 
             
            * Add `output(...).to_std(out|err)_from_any_process` as alternatives
         | 
| 493 499 | 
             
              to `output(...).to_std(out|err)`. The latter doesn't work when a sub
         | 
| 494 500 | 
             
              process writes to the named stream but is much faster.
         | 
| 495 | 
            -
              (Alex Genco, #700)
         | 
| 501 | 
            +
              (Alex Genco, rspec/rspec-expectations#700)
         | 
| 496 502 | 
             
            * Improve compound matchers (created by `and` and `or`) so that diffs
         | 
| 497 503 | 
             
              are included in failures when one or more of their matchers
         | 
| 498 | 
            -
              are diffable. (Alexey Fedorov, #713)
         | 
| 504 | 
            +
              are diffable. (Alexey Fedorov, rspec/rspec-expectations#713)
         | 
| 499 505 |  | 
| 500 506 | 
             
            Bug Fixes:
         | 
| 501 507 |  | 
| @@ -503,17 +509,17 @@ Bug Fixes: | |
| 503 509 | 
             
              the target object if the object publicly responds to the predicate
         | 
| 504 510 | 
             
              method. This avoids a possible error that can occur if the object
         | 
| 505 511 | 
             
              raises errors from `private_methods` (which can happen with celluloid
         | 
| 506 | 
            -
              objects). (@chapmajs, #670)
         | 
| 512 | 
            +
              objects). (@chapmajs, rspec/rspec-expectations#670)
         | 
| 507 513 | 
             
            * Make `yield_control` (with no modifier) default to
         | 
| 508 514 | 
             
              `at_least(:once)` rather than raising a confusing error
         | 
| 509 515 | 
             
              when multiple yields are encountered.
         | 
| 510 | 
            -
              (Myron Marston, #675)
         | 
| 516 | 
            +
              (Myron Marston, rspec/rspec-expectations#675)
         | 
| 511 517 | 
             
            * Fix "instance variable @color not initialized" warning when using
         | 
| 512 | 
            -
              rspec-expectations outside of an rspec-core context. (Myron Marston, #689)
         | 
| 518 | 
            +
              rspec-expectations outside of an rspec-core context. (Myron Marston, rspec/rspec-expectations#689)
         | 
| 513 519 | 
             
            * Fix `start_with` and `end_with` to work properly when checking a
         | 
| 514 | 
            -
              string against an array of strings. (Myron Marston, #690)
         | 
| 520 | 
            +
              string against an array of strings. (Myron Marston, rspec/rspec-expectations#690)
         | 
| 515 521 | 
             
            * Don't use internally delegated matchers when generating descriptions
         | 
| 516 | 
            -
              for examples without doc strings. (Myron Marston, #692)
         | 
| 522 | 
            +
              for examples without doc strings. (Myron Marston, rspec/rspec-expectations#692)
         | 
| 517 523 |  | 
| 518 524 | 
             
            ### 3.1.2 / 2014-09-26
         | 
| 519 525 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.1.1...v3.1.2)
         | 
| @@ -522,9 +528,9 @@ Bug Fixes: | |
| 522 528 |  | 
| 523 529 | 
             
            * Fix `define_negated_matcher` so that matchers that support fluent
         | 
| 524 530 | 
             
              interfaces continue to be negated after you use the chained method.
         | 
| 525 | 
            -
              (Myron Marston, #656)
         | 
| 531 | 
            +
              (Myron Marston, rspec/rspec-expectations#656)
         | 
| 526 532 | 
             
            * Fix `define_negated_matcher` so that the matchers fail with an
         | 
| 527 | 
            -
              appropriate failure message. (Myron Marston, #659)
         | 
| 533 | 
            +
              appropriate failure message. (Myron Marston, rspec/rspec-expectations#659)
         | 
| 528 534 |  | 
| 529 535 | 
             
            ### 3.1.1 / 2014-09-15
         | 
| 530 536 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.1.0...v3.1.1)
         | 
| @@ -533,7 +539,7 @@ Bug Fixes: | |
| 533 539 |  | 
| 534 540 | 
             
            * Fix regression in `all` matcher in 3.1.0 that prevented it from
         | 
| 535 541 | 
             
              working on objects that are not `Enumerable` but do implement
         | 
| 536 | 
            -
              `each_with_index` (such as an ActiveRecord proxy). (Jori Hardman, #647)
         | 
| 542 | 
            +
              `each_with_index` (such as an ActiveRecord proxy). (Jori Hardman, rspec/rspec-expectations#647)
         | 
| 537 543 |  | 
| 538 544 | 
             
            ### 3.1.0 / 2014-09-04
         | 
| 539 545 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.4...v3.1.0)
         | 
| @@ -545,26 +551,26 @@ Enhancements: | |
| 545 551 | 
             
              `Person = Struct.new(:name, :age)`
         | 
| 546 552 | 
             
              `person = Person.new("Bob", 32)`
         | 
| 547 553 | 
             
              `expect(person).to have_attributes(:name => "Bob", :age => 32)`.
         | 
| 548 | 
            -
              (Adam Farhi, #571)
         | 
| 554 | 
            +
              (Adam Farhi, rspec/rspec-expectations#571)
         | 
| 549 555 | 
             
            * Extended compound matcher support to block matchers, for cases like:
         | 
| 550 556 | 
             
              `expect { ... }.to change { x }.to(3).and change { y }.to(4)`. (Myron
         | 
| 551 | 
            -
              Marston, #567)
         | 
| 557 | 
            +
              Marston, rspec/rspec-expectations#567)
         | 
| 552 558 | 
             
            * Include chained methods in custom matcher description and failure message
         | 
| 553 559 | 
             
              when new `include_chain_clauses_in_custom_matcher_descriptions` config
         | 
| 554 | 
            -
              option is enabled. (Dan Oved, #600)
         | 
| 560 | 
            +
              option is enabled. (Dan Oved, rspec/rspec-expectations#600)
         | 
| 555 561 | 
             
            * Add `thrice` modifier to `yield_control` matcher as a synonym for
         | 
| 556 | 
            -
              `exactly(3).times`. (Dennis Taylor, #615)
         | 
| 562 | 
            +
              `exactly(3).times`. (Dennis Taylor, rspec/rspec-expectations#615)
         | 
| 557 563 | 
             
            * Add `RSpec::Matchers.define_negated_matcher`, which defines a negated
         | 
| 558 | 
            -
              version of the named matcher. (Adam Farhi, Myron Marston, #618)
         | 
| 564 | 
            +
              version of the named matcher. (Adam Farhi, Myron Marston, rspec/rspec-expectations#618)
         | 
| 559 565 | 
             
            * Document and support negation of `contain_exactly`/`match_array`.
         | 
| 560 | 
            -
              (Jon Rowe, #626).
         | 
| 566 | 
            +
              (Jon Rowe, rspec/rspec-expectations#626).
         | 
| 561 567 |  | 
| 562 568 | 
             
            Bug Fixes:
         | 
| 563 569 |  | 
| 564 570 | 
             
            * Rename private `LegacyMacherAdapter` constant to `LegacyMatcherAdapter`
         | 
| 565 | 
            -
              to fix typo. (Abdelkader Boudih, #563)
         | 
| 571 | 
            +
              to fix typo. (Abdelkader Boudih, rspec/rspec-expectations#563)
         | 
| 566 572 | 
             
            * Fix `all` matcher so that it fails properly (rather than raising a
         | 
| 567 | 
            -
              `NoMethodError`) when matched against a non-enumerable. (Hao Su, #622)
         | 
| 573 | 
            +
              `NoMethodError`) when matched against a non-enumerable. (Hao Su, rspec/rspec-expectations#622)
         | 
| 568 574 |  | 
| 569 575 | 
             
            ### 3.0.4 / 2014-08-14
         | 
| 570 576 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.3...v3.0.4)
         | 
| @@ -572,12 +578,12 @@ Bug Fixes: | |
| 572 578 | 
             
            Bug Fixes:
         | 
| 573 579 |  | 
| 574 580 | 
             
            * Fix `start_with` and `end_with` so that they work properly with
         | 
| 575 | 
            -
              structs. (Myron Marston, #620)
         | 
| 581 | 
            +
              structs. (Myron Marston, rspec/rspec-expectations#620)
         | 
| 576 582 | 
             
            * Fix failure message generation so that structs are printed properly
         | 
| 577 583 | 
             
              in failures. Previously failure messages would represent them as
         | 
| 578 | 
            -
              an array. (Myron Marston, #620)
         | 
| 584 | 
            +
              an array. (Myron Marston, rspec/rspec-expectations#620)
         | 
| 579 585 | 
             
            * Fix composable matcher support so that it does not wrongly treat
         | 
| 580 | 
            -
              structs as arrays. (Myron Marston, #620)
         | 
| 586 | 
            +
              structs as arrays. (Myron Marston, rspec/rspec-expectations#620)
         | 
| 581 587 |  | 
| 582 588 | 
             
            ### 3.0.3 / 2014-07-21
         | 
| 583 589 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.2...v3.0.3)
         | 
| @@ -585,10 +591,10 @@ Bug Fixes: | |
| 585 591 | 
             
            Bug Fixes:
         | 
| 586 592 |  | 
| 587 593 | 
             
            * 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)
         | 
| 594 | 
            +
              correctly when undefined. (Myron Marston, rspec/rspec-expectations#597)
         | 
| 595 | 
            +
            * Don't inadvertently define `BasicObject` in 1.8.7. (Chris Griego, rspec/rspec-expectations#603)
         | 
| 590 596 | 
             
            * Fix `include` matcher so that it fails gracefully when matched against
         | 
| 591 | 
            -
              an object that does not respond to `include?`. (Myron Marston, #607)
         | 
| 597 | 
            +
              an object that does not respond to `include?`. (Myron Marston, rspec/rspec-expectations#607)
         | 
| 592 598 |  | 
| 593 599 | 
             
            ### 3.0.2 / 2014-06-19
         | 
| 594 600 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.1...v3.0.2)
         | 
| @@ -596,12 +602,12 @@ Bug Fixes: | |
| 596 602 | 
             
            Bug Fixes:
         | 
| 597 603 |  | 
| 598 604 | 
             
            * Fix regression in `contain_exactly` (AKA `match_array`) that caused it
         | 
| 599 | 
            -
              to wrongly pass when the expected array was empty. (Myron Marston, #581)
         | 
| 605 | 
            +
              to wrongly pass when the expected array was empty. (Myron Marston, rspec/rspec-expectations#581)
         | 
| 600 606 | 
             
            * Provide a better error message when you use the `change(obj, :msg)`
         | 
| 601 607 | 
             
              form of the change matcher but forget the message argument. (Alex
         | 
| 602 | 
            -
              Sunderland, #585)
         | 
| 608 | 
            +
              Sunderland, rspec/rspec-expectations#585)
         | 
| 603 609 | 
             
            * Make the `contain_exactly` matcher work with arrays that contain hashes in
         | 
| 604 | 
            -
              arbitrary ordering. (Sam Phippen, #578)
         | 
| 610 | 
            +
              arbitrary ordering. (Sam Phippen, rspec/rspec-expectations#578)
         | 
| 605 611 |  | 
| 606 612 | 
             
            ### 3.0.1 / 2014-06-12
         | 
| 607 613 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.0...v3.0.1)
         | 
| @@ -610,8 +616,8 @@ Bug Fixes: | |
| 610 616 |  | 
| 611 617 | 
             
            * Add a missing `require` that would cause the `respond_to` matcher to
         | 
| 612 618 | 
             
              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)
         | 
| 619 | 
            +
              expecatations) weren't being used. (Myron Marston, rspec/rspec-expectations#566)
         | 
| 620 | 
            +
            * Structs are no longer treated as arrays when diffed. (Jon Rowe, rspec/rspec-expectations#576)
         | 
| 615 621 |  | 
| 616 622 | 
             
            ### 3.0.0 / 2014-06-01
         | 
| 617 623 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.0.0.rc1...v3.0.0)
         | 
| @@ -829,9 +835,9 @@ Bug Fixes: | |
| 829 835 |  | 
| 830 836 | 
             
            * Fix regression in `Expectations#method_handle_for` where proxy objects
         | 
| 831 837 | 
             
              with method delegated would wrongly not return a method handle.
         | 
| 832 | 
            -
              (Jon Rowe, #594)
         | 
| 838 | 
            +
              (Jon Rowe, rspec/rspec-expectations#594)
         | 
| 833 839 | 
             
            * Fix issue with detection of generic operator matchers so they work
         | 
| 834 | 
            -
              correctly when undefined. (Myron Marston, #597)
         | 
| 840 | 
            +
              correctly when undefined. (Myron Marston, rspec/rspec-expectations#597)
         | 
| 835 841 |  | 
| 836 842 | 
             
            ### 2.99.1 / 2014-06-19
         | 
| 837 843 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.99.0...v2.99.1)
         | 
| @@ -839,7 +845,7 @@ Bug Fixes: | |
| 839 845 | 
             
            Bug Fixes:
         | 
| 840 846 |  | 
| 841 847 | 
             
            * Fix typo in custom matcher `expected` deprecation warning -- it's
         | 
| 842 | 
            -
              `expected_as_array`, not `expected_array`. (Frederick Cheung, #562)
         | 
| 848 | 
            +
              `expected_as_array`, not `expected_array`. (Frederick Cheung, rspec/rspec-expectations#562)
         | 
| 843 849 |  | 
| 844 850 | 
             
            ### 2.99.0 / 2014-06-01
         | 
| 845 851 | 
             
            [Full Changelog](http://github.com/rspec/rspec-expectations/compare/v2.99.0.rc1...v2.99.0)
         | 
| @@ -179,11 +179,18 @@ module RSpec | |
| 179 179 | 
             
                      # no-op, handler is something else
         | 
| 180 180 | 
             
                    end
         | 
| 181 181 | 
             
                  end
         | 
| 182 | 
            +
             | 
| 183 | 
            +
                  # Configures what RSpec will do about matcher use which would potentially cause
         | 
| 184 | 
            +
                  # false positives in tests. Defaults to `:warn` since this is generally the desired behavior,
         | 
| 185 | 
            +
                  # but can also be set to `:raise` or `:nothing`.
         | 
| 182 186 | 
             
                  #
         | 
| 183 | 
            -
                  #  | 
| 184 | 
            -
                  #  | 
| 185 | 
            -
                  #
         | 
| 186 | 
            -
                  # | 
| 187 | 
            +
                  # @overload on_potential_false_positives
         | 
| 188 | 
            +
                  #   @return [Symbol] the behavior setting
         | 
| 189 | 
            +
                  # @overload on_potential_false_positives=(value)
         | 
| 190 | 
            +
                  #   @param [Symbol] behavior can be set to `:warn`, `:raise` or `:nothing`
         | 
| 191 | 
            +
                  #   @return [Symbol] the behavior setting
         | 
| 192 | 
            +
                  attr_reader :on_potential_false_positives
         | 
| 193 | 
            +
             | 
| 187 194 | 
             
                  def on_potential_false_positives=(behavior)
         | 
| 188 195 | 
             
                    unless FALSE_POSITIVE_BEHAVIOURS.key?(behavior)
         | 
| 189 196 | 
             
                      raise ArgumentError, "Supported values are: #{FALSE_POSITIVE_BEHAVIOURS.keys}"
         | 
| @@ -194,22 +201,24 @@ module RSpec | |
| 194 201 | 
             
                  # Configures RSpec to check predicate matchers to `be(true)` / `be(false)` (strict),
         | 
| 195 202 | 
             
                  # or `be_truthy` / `be_falsey` (not strict).
         | 
| 196 203 | 
             
                  # Historically, the default was `false`, but `true` is recommended.
         | 
| 197 | 
            -
                   | 
| 198 | 
            -
             | 
| 199 | 
            -
             | 
| 200 | 
            -
                   | 
| 201 | 
            -
             | 
| 204 | 
            +
                  #
         | 
| 205 | 
            +
                  # @overload strict_predicate_matchers
         | 
| 206 | 
            +
                  #   @return [Boolean]
         | 
| 207 | 
            +
                  # @overload strict_predicate_matchers?
         | 
| 208 | 
            +
                  #   @return [Boolean]
         | 
| 209 | 
            +
                  # @overload strict_predicate_matchers=(value)
         | 
| 210 | 
            +
                  #   @param [Boolean] value
         | 
| 202 211 | 
             
                  attr_reader :strict_predicate_matchers
         | 
| 203 212 |  | 
| 213 | 
            +
                  def strict_predicate_matchers=(value)
         | 
| 214 | 
            +
                    raise ArgumentError, "Pass `true` or `false`" unless value == true || value == false
         | 
| 215 | 
            +
                    @strict_predicate_matchers = value
         | 
| 216 | 
            +
                  end
         | 
| 217 | 
            +
             | 
| 204 218 | 
             
                  def strict_predicate_matchers?
         | 
| 205 219 | 
             
                    @strict_predicate_matchers
         | 
| 206 220 | 
             
                  end
         | 
| 207 221 |  | 
| 208 | 
            -
                  # Indicates what RSpec will do about matcher use which will
         | 
| 209 | 
            -
                  # potentially cause false positives in tests, generally you want to
         | 
| 210 | 
            -
                  # avoid such scenarios so this defaults to `true`.
         | 
| 211 | 
            -
                  attr_reader :on_potential_false_positives
         | 
| 212 | 
            -
             | 
| 213 222 | 
             
                  # Indicates whether RSpec will warn about matcher use which will
         | 
| 214 223 | 
             
                  # potentially cause false positives in tests, generally you want to
         | 
| 215 224 | 
             
                  # avoid such scenarios so this defaults to `true`.
         | 
| @@ -33,11 +33,23 @@ module RSpec | |
| 33 33 | 
             
                      self
         | 
| 34 34 | 
             
                    end
         | 
| 35 35 |  | 
| 36 | 
            +
                    # @api private
         | 
| 37 | 
            +
                    # @return [String]
         | 
| 38 | 
            +
                    def failure_message
         | 
| 39 | 
            +
                      if Array === expected && !(actual.respond_to?(:to_a) || actual.respond_to?(:to_ary))
         | 
| 40 | 
            +
                        return "expected a collection that can be converted to an array with " \
         | 
| 41 | 
            +
                               "`#to_ary` or `#to_a`, but got #{actual_formatted}"
         | 
| 42 | 
            +
                      end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                      super
         | 
| 45 | 
            +
                    end
         | 
| 46 | 
            +
             | 
| 36 47 | 
             
                  private
         | 
| 37 48 |  | 
| 38 49 | 
             
                    def match(expected, actual)
         | 
| 39 50 | 
             
                      return match_captures(expected, actual) if @expected_captures
         | 
| 40 51 | 
             
                      return true if values_match?(expected, actual)
         | 
| 52 | 
            +
                      return false if Array === expected
         | 
| 41 53 | 
             
                      return false unless can_safely_call_match?(expected, actual)
         | 
| 42 54 | 
             
                      actual.match(expected)
         | 
| 43 55 | 
             
                    end
         | 
    
        data/lib/rspec/matchers/dsl.rb
    CHANGED
    
    | @@ -467,11 +467,12 @@ module RSpec | |
| 467 467 | 
             
                      @chained_method_clauses = []
         | 
| 468 468 | 
             
                      @block_arg = block_arg
         | 
| 469 469 |  | 
| 470 | 
            -
                      klass = | 
| 471 | 
            -
                         | 
| 472 | 
            -
             | 
| 473 | 
            -
             | 
| 474 | 
            -
             | 
| 470 | 
            +
                      klass =
         | 
| 471 | 
            +
                        class << self
         | 
| 472 | 
            +
                          # See `Macros#define_user_override` above, for an explanation.
         | 
| 473 | 
            +
                          include(@user_method_defs = Module.new)
         | 
| 474 | 
            +
                          self
         | 
| 475 | 
            +
                        end
         | 
| 475 476 | 
             
                      RSpec::Support::WithKeywordsWhenNeeded.class_exec(klass, *expected, &declarations)
         | 
| 476 477 | 
             
                    end
         | 
| 477 478 |  | 
    
        data.tar.gz.sig
    CHANGED
    
    | Binary file | 
    
        metadata
    CHANGED
    
    | @@ -1,22 +1,21 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rspec-expectations
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 3.13. | 
| 4 | 
            +
              version: 3.13.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Steven Baker
         | 
| 8 8 | 
             
            - David Chelimsky
         | 
| 9 9 | 
             
            - Myron Marston
         | 
| 10 | 
            -
            autorequire:
         | 
| 11 10 | 
             
            bindir: bin
         | 
| 12 11 | 
             
            cert_chain:
         | 
| 13 12 | 
             
            - |
         | 
| 14 13 | 
             
              -----BEGIN CERTIFICATE-----
         | 
| 15 | 
            -
               | 
| 14 | 
            +
              MIIFvjCCA6agAwIBAgIJAPXjfUbCjdXVMA0GCSqGSIb3DQEBCwUAMIGAMQswCQYD
         | 
| 16 15 | 
             
              VQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEO
         | 
| 17 16 | 
             
              MAwGA1UECgwFUlNwZWMxEzARBgNVBAMMCnJzcGVjLmluZm8xJTAjBgkqhkiG9w0B
         | 
| 18 | 
            -
               | 
| 19 | 
            -
               | 
| 17 | 
            +
              CQEWFnJzcGVjQGdvb2dsZWdyb3Vwcy5jb20wHhcNMjUwMjA2MTE0NjU2WhcNMjYw
         | 
| 18 | 
            +
              MjA2MTE0NjU2WjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24x
         | 
| 20 19 | 
             
              EDAOBgNVBAcMB1NlYXR0bGUxDjAMBgNVBAoMBVJTcGVjMRMwEQYDVQQDDApyc3Bl
         | 
| 21 20 | 
             
              Yy5pbmZvMSUwIwYJKoZIhvcNAQkBFhZyc3BlY0Bnb29nbGVncm91cHMuY29tMIIC
         | 
| 22 21 | 
             
              IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsSmjgcHaKlD0jizRJowi2bGI
         | 
| @@ -30,22 +29,21 @@ cert_chain: | |
| 30 29 | 
             
              Xeh3EVdWY3vMB1pkhPwlsenpcmj5gOzrd54lELOVbCGHCf48iSqeflY2Lhe0pvzK
         | 
| 31 30 | 
             
              blXCJBDmtrebvus291rM/dHcbEfK1SVd5Wut/n131iouf6dnNCFskFygDcgBbthC
         | 
| 32 31 | 
             
              gpEMqf80lEmhX59VUsm0Pv6OEo+ZPHBvXPiJA6DShQh9t3YtpwyA8uVDMbT/i32u
         | 
| 33 | 
            -
               | 
| 34 | 
            -
               | 
| 35 | 
            -
               | 
| 36 | 
            -
               | 
| 37 | 
            -
              + | 
| 38 | 
            -
               | 
| 39 | 
            -
               | 
| 40 | 
            -
               | 
| 41 | 
            -
               | 
| 42 | 
            -
               | 
| 43 | 
            -
               | 
| 44 | 
            -
               | 
| 45 | 
            -
               | 
| 46 | 
            -
              F3MdtaDehhjC
         | 
| 32 | 
            +
              2FUsqZbbJcCmkBrGposCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
         | 
| 33 | 
            +
              HQYDVR0OBBYEFPPvQ5XT0Nvuhi6k+hrWVv35J+TeMA0GCSqGSIb3DQEBCwUAA4IC
         | 
| 34 | 
            +
              AQBGBr0ll2yLrkO6IeK5Q7qZFnANaUCKfi6Of9VztZJXgKAU5KAQxyOidGktoA5N
         | 
| 35 | 
            +
              lp+bFKudRkW8jSehqoNaNBdSZ9Bc07EGMXIhUFJZF9rq7Z2SKPwUm6EaSsBK13QR
         | 
| 36 | 
            +
              U4K6wuaw5ZJSFzklapoGOJRGnFlnNtlhNFY6+tTwCeblwZbcuYGyGY8+Rg7GbyVl
         | 
| 37 | 
            +
              3Tr4Gi1aS/qG/MDXKdE8HWm39dmaAMdbw6dg1VBd0JrX2VqH7xvE1dM/D3OlKrNp
         | 
| 38 | 
            +
              gNFRNJig3Y8qPjocZR0cGkhgZoC9wribWxHSNawZm4CoV3fja2HNx9QyM7BaB+as
         | 
| 39 | 
            +
              yuqAiBbA7vBcyc8nKATip3mxbyXYXoDD7nmO8JCPP7O/WsgG+U/B2a0kPdvYFoxE
         | 
| 40 | 
            +
              Q0Js3GtFCuMvL+0rifqdxBOLtu0Pw9q4RvToTJIl2IR6eTgCb82B1hw9qKf7PjuL
         | 
| 41 | 
            +
              BoEsYjjDhGw6FZvcJG8O6uj7aB+z4aF21YR74UGL7sq/RIPNNez5JI95jTGfqCPy
         | 
| 42 | 
            +
              6yo0w3zja3yg28QK3Fj+tbOHeSLv9SDQWi/1jiPprGzbxGvbVvjvX11YZc46vkmY
         | 
| 43 | 
            +
              AwP+qZPPf97FXXZGEGIYhhHpnj+Ltx9nCetRPiZ4rvYBcXgCWVQSg6eiEofrMwn/
         | 
| 44 | 
            +
              AKMCABhZ1Y2eATsfMgdkmIZk7JIPZiSi6eUxPiCMP9M/pw==
         | 
| 47 45 | 
             
              -----END CERTIFICATE-----
         | 
| 48 | 
            -
            date:  | 
| 46 | 
            +
            date: 2025-05-01 00:00:00.000000000 Z
         | 
| 49 47 | 
             
            dependencies:
         | 
| 50 48 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 51 49 | 
             
              name: rspec-support
         | 
| @@ -81,62 +79,6 @@ dependencies: | |
| 81 79 | 
             
                - - "<"
         | 
| 82 80 | 
             
                  - !ruby/object:Gem::Version
         | 
| 83 81 | 
             
                    version: '2.0'
         | 
| 84 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 85 | 
            -
              name: aruba
         | 
| 86 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 87 | 
            -
                requirements:
         | 
| 88 | 
            -
                - - "~>"
         | 
| 89 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 90 | 
            -
                    version: 0.14.10
         | 
| 91 | 
            -
              type: :development
         | 
| 92 | 
            -
              prerelease: false
         | 
| 93 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 94 | 
            -
                requirements:
         | 
| 95 | 
            -
                - - "~>"
         | 
| 96 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 97 | 
            -
                    version: 0.14.10
         | 
| 98 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 99 | 
            -
              name: cucumber
         | 
| 100 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 101 | 
            -
                requirements:
         | 
| 102 | 
            -
                - - ">="
         | 
| 103 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 104 | 
            -
                    version: '1.3'
         | 
| 105 | 
            -
              type: :development
         | 
| 106 | 
            -
              prerelease: false
         | 
| 107 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 108 | 
            -
                requirements:
         | 
| 109 | 
            -
                - - ">="
         | 
| 110 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 111 | 
            -
                    version: '1.3'
         | 
| 112 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 113 | 
            -
              name: minitest
         | 
| 114 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 115 | 
            -
                requirements:
         | 
| 116 | 
            -
                - - "~>"
         | 
| 117 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 118 | 
            -
                    version: '5.2'
         | 
| 119 | 
            -
              type: :development
         | 
| 120 | 
            -
              prerelease: false
         | 
| 121 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 122 | 
            -
                requirements:
         | 
| 123 | 
            -
                - - "~>"
         | 
| 124 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 125 | 
            -
                    version: '5.2'
         | 
| 126 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 127 | 
            -
              name: rake
         | 
| 128 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 129 | 
            -
                requirements:
         | 
| 130 | 
            -
                - - ">"
         | 
| 131 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 132 | 
            -
                    version: 10.0.0
         | 
| 133 | 
            -
              type: :development
         | 
| 134 | 
            -
              prerelease: false
         | 
| 135 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 136 | 
            -
                requirements:
         | 
| 137 | 
            -
                - - ">"
         | 
| 138 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 139 | 
            -
                    version: 10.0.0
         | 
| 140 82 | 
             
            description: rspec-expectations provides a simple, readable API to express expected
         | 
| 141 83 | 
             
              outcomes of a code example.
         | 
| 142 84 | 
             
            email: rspec@googlegroups.com
         | 
| @@ -203,11 +145,10 @@ licenses: | |
| 203 145 | 
             
            - MIT
         | 
| 204 146 | 
             
            metadata:
         | 
| 205 147 | 
             
              bug_tracker_uri: https://github.com/rspec/rspec-expectations/issues
         | 
| 206 | 
            -
              changelog_uri: https://github.com/rspec/rspec-expectations/blob/v3.13. | 
| 148 | 
            +
              changelog_uri: https://github.com/rspec/rspec-expectations/blob/v3.13.4/Changelog.md
         | 
| 207 149 | 
             
              documentation_uri: https://rspec.info/documentation/
         | 
| 208 150 | 
             
              mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
         | 
| 209 151 | 
             
              source_code_uri: https://github.com/rspec/rspec-expectations
         | 
| 210 | 
            -
            post_install_message:
         | 
| 211 152 | 
             
            rdoc_options:
         | 
| 212 153 | 
             
            - "--charset=UTF-8"
         | 
| 213 154 | 
             
            require_paths:
         | 
| @@ -223,8 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 223 164 | 
             
                - !ruby/object:Gem::Version
         | 
| 224 165 | 
             
                  version: '0'
         | 
| 225 166 | 
             
            requirements: []
         | 
| 226 | 
            -
            rubygems_version: 3. | 
| 227 | 
            -
            signing_key:
         | 
| 167 | 
            +
            rubygems_version: 3.6.2
         | 
| 228 168 | 
             
            specification_version: 4
         | 
| 229 | 
            -
            summary: rspec-expectations-3.13. | 
| 169 | 
            +
            summary: rspec-expectations-3.13.4
         | 
| 230 170 | 
             
            test_files: []
         | 
    
        metadata.gz.sig
    CHANGED
    
    | @@ -1,3 +1,2 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
            �a | 
| 3 | 
            -
            ]��������Ã:�v~%@��۪,���?�"���W#�~��6�����d���?�7�Q���^v'�lq�#�'T������*ެ��(��Y\��i')��IW��|�3g6����o�~���e�`r�l�4U�Ł
         | 
| 1 | 
            +
            ��(����/!De�kgY='M�m2����<l�t��l,a���u�YL����T+�L��X�T�.�o/��� �:d7�����!f�Xr�4vV��1*��K�IQei�:��gZH<���8������a������HƢ�Lj3��س����
         | 
| 2 | 
            +
            �Q�H�c�9�@Rp?�.����ri�M5h[�t1�C�7���qQƮ�Cy4.>[F=�{�;�6���e5�a:���ma�1���Cf�ޞ���v�����V�s��f1<X���Qsi�_4��]B���h���=��{4�|Ĉ����WY0U�b�X;2l9���i4>L���.��p����� ʭ�����������x��A���`L��h�$g#����m��.E�*�š~L�lz�����H��
         |