rspec-power_assert 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +32 -0
- data/lib/rspec/power_assert.rb +20 -7
- data/lib/rspec/power_assert/version.rb +1 -1
- data/spec/rspec/power_assert_spec.rb +32 -0
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 0fb00b915c73e7026a8842c179fab476f44aeb64
         | 
| 4 | 
            +
              data.tar.gz: 6dc75022730b389924604985e5c64b788e8127eb
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 09fe61c3d55ea9c7cb3d3514e63dc292e6386506246b069feb1b8651aaf14122f6eaaafeda8847ebcc1df3a2177c18703f7112e83b9e7f8f2e34b3e3173bbaf2
         | 
| 7 | 
            +
              data.tar.gz: 32e80591b88a0aa9fe3c403d76f0ac9c14273f95ded1150f198b7cf8df4425ace4d3706911db950991867c5a9657da3d4c4ea7246cfe58241fa34783cc4ab7cc
         | 
    
        data/README.md
    CHANGED
    
    | @@ -252,6 +252,38 @@ rspec ./spec/rspec/power_assert_spec.rb:50 # Rspec::PowerAssert Array#map | |
| 252 252 | 
             
            rspec ./spec/rspec/power_assert_spec.rb:56 # Rspec::PowerAssert Array#map succ each element
         | 
| 253 253 | 
             
            ```
         | 
| 254 254 |  | 
| 255 | 
            +
            On RSpec-3.3 or later, support `aggregate_failures`
         | 
| 256 | 
            +
            (Thanks sue445)
         | 
| 257 | 
            +
             | 
| 258 | 
            +
            ```
         | 
| 259 | 
            +
              2) Rspec::PowerAssert Array#map When use aggregate_failures should be called be is_asserted_by with 3 times
         | 
| 260 | 
            +
                 Got 2 failures from failure aggregation block.
         | 
| 261 | 
            +
                 # ./spec/rspec/power_assert_spec.rb:81:in `block (5 levels) in <top (required)>'
         | 
| 262 | 
            +
             | 
| 263 | 
            +
                 2.1) Failure/Error: is_asserted_by { subject.map(&:upcase) == %w(a b c) }
         | 
| 264 | 
            +
                                    is_asserted_by { subject.map(&:upcase) == %w(a b c) }
         | 
| 265 | 
            +
                                                     |       |             |
         | 
| 266 | 
            +
                                                     |       |             false
         | 
| 267 | 
            +
                                                     |       ["A", "B", "C"]
         | 
| 268 | 
            +
                                                     ["a", "b", "c"]
         | 
| 269 | 
            +
                      # ./lib/rspec/power_assert.rb:81:in `handle_result_and_message'
         | 
| 270 | 
            +
                      # ./lib/rspec/power_assert.rb:50:in `is_asserted_by'
         | 
| 271 | 
            +
                      # ./spec/rspec/power_assert_spec.rb:82:in `block (6 levels) in <top (required)>'
         | 
| 272 | 
            +
             | 
| 273 | 
            +
                 2.2) Failure/Error: is_asserted_by { subject.map(&:upcase) == %w(A B C D) }
         | 
| 274 | 
            +
                                    is_asserted_by { subject.map(&:upcase) == %w(A B C D) }
         | 
| 275 | 
            +
                                                     |       |             |
         | 
| 276 | 
            +
                                                     |       |             false
         | 
| 277 | 
            +
                                                     |       ["A", "B", "C"]
         | 
| 278 | 
            +
                                                     ["a", "b", "c"]
         | 
| 279 | 
            +
                      # ./lib/rspec/power_assert.rb:81:in `handle_result_and_message'
         | 
| 280 | 
            +
                      # ./lib/rspec/power_assert.rb:50:in `is_asserted_by'
         | 
| 281 | 
            +
                      # ./spec/rspec/power_assert_spec.rb:84:in `block (6 levels) in <top (required)>'
         | 
| 282 | 
            +
             | 
| 283 | 
            +
            Finished in 0.02937 seconds (files took 0.19416 seconds to load)
         | 
| 284 | 
            +
            2 examples, 2 failures
         | 
| 285 | 
            +
            ```
         | 
| 286 | 
            +
             | 
| 255 287 | 
             
            ## Contributing
         | 
| 256 288 |  | 
| 257 289 | 
             
            1. Fork it ( https://github.com/joker1007/rspec-power_assert/fork )
         | 
    
        data/lib/rspec/power_assert.rb
    CHANGED
    
    | @@ -46,7 +46,8 @@ module RSpec | |
| 46 46 | 
             
                    [tp.yield, tp.message_proc.call]
         | 
| 47 47 | 
             
                  end
         | 
| 48 48 |  | 
| 49 | 
            -
                   | 
| 49 | 
            +
                  location = blk.source_location.join(":")
         | 
| 50 | 
            +
                  handle_result_and_message(result, msg, __callee__, location)
         | 
| 50 51 | 
             
                end
         | 
| 51 52 |  | 
| 52 53 | 
             
                private
         | 
| @@ -59,10 +60,11 @@ module RSpec | |
| 59 60 | 
             
                    [tp.yield, tp.message_proc.call]
         | 
| 60 61 | 
             
                  end
         | 
| 61 62 |  | 
| 62 | 
            -
                   | 
| 63 | 
            +
                  location = blk.source_location.join(":")
         | 
| 64 | 
            +
                  handle_result_and_message(result, msg, method_name, location)
         | 
| 63 65 | 
             
                end
         | 
| 64 66 |  | 
| 65 | 
            -
                def handle_result_and_message(result, msg, method_name)
         | 
| 67 | 
            +
                def handle_result_and_message(result, msg, method_name, location)
         | 
| 66 68 | 
             
                  if result
         | 
| 67 69 | 
             
                    RSpec::Matchers.last_matcher = DummyAssertionMatcher.new(msg, method_name.to_s)
         | 
| 68 70 |  | 
| @@ -72,7 +74,16 @@ module RSpec | |
| 72 74 | 
             
                      RSpec::Matchers.last_expectation_handler = DummyExpectationHandler # for RSpec 3
         | 
| 73 75 | 
             
                    end
         | 
| 74 76 | 
             
                  else
         | 
| 75 | 
            -
                     | 
| 77 | 
            +
                    ex = RSpec::Expectations::ExpectationNotMetError.new(msg)
         | 
| 78 | 
            +
             | 
| 79 | 
            +
                    if defined?(RSpec::Support) && RSpec::Support.respond_to?(:notify_failure)
         | 
| 80 | 
            +
                      # for RSpec 3.3+
         | 
| 81 | 
            +
                      RSpec::Support.notify_failure(ex)
         | 
| 82 | 
            +
                    else
         | 
| 83 | 
            +
                      # for RSpec 2, 3.0, 3.1, 3.2
         | 
| 84 | 
            +
                      ex.set_backtrace(location)
         | 
| 85 | 
            +
                      raise ex
         | 
| 86 | 
            +
                    end
         | 
| 76 87 | 
             
                  end
         | 
| 77 88 | 
             
                end
         | 
| 78 89 |  | 
| @@ -135,9 +146,11 @@ module RSpec | |
| 135 146 | 
             
                end
         | 
| 136 147 |  | 
| 137 148 | 
             
                def it_is_asserted_by(description = nil, &blk)
         | 
| 138 | 
            -
                  file,  | 
| 139 | 
            -
                   | 
| 140 | 
            -
                   | 
| 149 | 
            +
                  file, _lineno = blk.source_location
         | 
| 150 | 
            +
                  backtrace = caller.drop_while {|l| l !~ /#{Regexp.escape(file)}/}
         | 
| 151 | 
            +
                  it description, caller: backtrace do
         | 
| 152 | 
            +
                    evaluate_example(__callee__, &blk)
         | 
| 153 | 
            +
                  end
         | 
| 141 154 | 
             
                end
         | 
| 142 155 | 
             
              end
         | 
| 143 156 | 
             
            end
         | 
| @@ -67,6 +67,38 @@ describe Rspec::PowerAssert do | |
| 67 67 | 
             
                  it_is_asserted_by "succ each element" do
         | 
| 68 68 | 
             
                    subject.map(&:succ) == ["b", "c", "e"] + @array
         | 
| 69 69 | 
             
                  end
         | 
| 70 | 
            +
             | 
| 71 | 
            +
                  context "When use aggregate_failures" do
         | 
| 72 | 
            +
                    before do
         | 
| 73 | 
            +
                      unless respond_to?(:aggregate_failures)
         | 
| 74 | 
            +
                        pending_message = "This test can run only on RSpec 3.3+"
         | 
| 75 | 
            +
             | 
| 76 | 
            +
                        if respond_to?(:skip)
         | 
| 77 | 
            +
                          # for RSpec 3
         | 
| 78 | 
            +
                          skip pending_message
         | 
| 79 | 
            +
                        else
         | 
| 80 | 
            +
                          # for RSpec 2
         | 
| 81 | 
            +
                          pending pending_message
         | 
| 82 | 
            +
                        end
         | 
| 83 | 
            +
                      end
         | 
| 84 | 
            +
                    end
         | 
| 85 | 
            +
             | 
| 86 | 
            +
                    it "should be called expect with 3 times" do
         | 
| 87 | 
            +
                      aggregate_failures do
         | 
| 88 | 
            +
                        expect(subject.map(&:upcase)).to eq %w(a b c)
         | 
| 89 | 
            +
                        expect(subject.map(&:upcase)).to eq %w(A B C)
         | 
| 90 | 
            +
                        expect(subject.map(&:upcase)).to eq %w(A B C D)
         | 
| 91 | 
            +
                      end
         | 
| 92 | 
            +
                    end
         | 
| 93 | 
            +
             | 
| 94 | 
            +
                    it "should be called is_asserted_by with 3 times" do
         | 
| 95 | 
            +
                      aggregate_failures do
         | 
| 96 | 
            +
                        is_asserted_by { subject.map(&:upcase) == %w(a b c) }
         | 
| 97 | 
            +
                        is_asserted_by { subject.map(&:upcase) == %w(A B C) }
         | 
| 98 | 
            +
                        is_asserted_by { subject.map(&:upcase) == %w(A B C D) }
         | 
| 99 | 
            +
                      end
         | 
| 100 | 
            +
                    end
         | 
| 101 | 
            +
                  end
         | 
| 70 102 | 
             
                end
         | 
| 71 103 | 
             
              end
         | 
| 72 104 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rspec-power_assert
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.3.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - joker1007
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2015-08-28 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: power_assert
         | 
| @@ -106,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 106 106 | 
             
                  version: '0'
         | 
| 107 107 | 
             
            requirements: []
         | 
| 108 108 | 
             
            rubyforge_project: 
         | 
| 109 | 
            -
            rubygems_version: 2.4. | 
| 109 | 
            +
            rubygems_version: 2.4.6
         | 
| 110 110 | 
             
            signing_key: 
         | 
| 111 111 | 
             
            specification_version: 4
         | 
| 112 112 | 
             
            summary: Power Assert for RSpec.
         |