muack 1.5.0 → 1.5.1
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/CHANGES.md +7 -0
- data/lib/muack/mock.rb +7 -1
- data/lib/muack/version.rb +1 -1
- data/muack.gemspec +3 -3
- data/test/test_keyargs.rb +49 -0
- data/test/test_mock.rb +24 -0
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 77dfffce2bb5df1930472ff39a8280bd9a1a69f6e81d1f0173d02099b5cdeaf9
         | 
| 4 | 
            +
              data.tar.gz: aabb83e37e3ae995c02ad1ba1e938866cd3e036fa8a3f7682273a80255c60f90
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 01e57727b0e41455e69a5c4f0f6552b14d1efc192b08435d4b154abe68d86bf62e058cc54196ca05fb1519a301ae7c4fd3bc9924e25a2036c44d1b5a3c3a7843
         | 
| 7 | 
            +
              data.tar.gz: 2324f6b087b7d79c46c5727078fce53a2f178ff8474bbed48af3750e447ad6e16168b788d148ca3c3a347a6a11ac578b923aa5effeb81013a9ab5e159d5508e3
         | 
    
        data/CHANGES.md
    CHANGED
    
    
    
        data/lib/muack/mock.rb
    CHANGED
    
    | @@ -246,7 +246,13 @@ module Muack | |
| 246 246 | 
             
                    ::Kernel.instance_method(:method).bind(object).call(method_name).
         | 
| 247 247 | 
             
                    super_method
         | 
| 248 248 |  | 
| 249 | 
            -
                  super_method &&  | 
| 249 | 
            +
                  if super_method.owner == ::Class && super_method.name == :new
         | 
| 250 | 
            +
                    initialize_method = ::Class.instance_method(:instance_method).
         | 
| 251 | 
            +
                      bind(object).call(:initialize)
         | 
| 252 | 
            +
                    __mock_block_with_kargs?(initialize_method)
         | 
| 253 | 
            +
                  else
         | 
| 254 | 
            +
                    super_method && __mock_block_with_kargs?(super_method)
         | 
| 255 | 
            +
                  end
         | 
| 250 256 | 
             
                end
         | 
| 251 257 |  | 
| 252 258 | 
             
                def __mock_block_with_kargs? block
         | 
    
        data/lib/muack/version.rb
    CHANGED
    
    
    
        data/muack.gemspec
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            -
            # stub: muack 1.5. | 
| 2 | 
            +
            # stub: muack 1.5.1 ruby lib
         | 
| 3 3 |  | 
| 4 4 | 
             
            Gem::Specification.new do |s|
         | 
| 5 5 | 
             
              s.name = "muack".freeze
         | 
| 6 | 
            -
              s.version = "1.5. | 
| 6 | 
            +
              s.version = "1.5.1"
         | 
| 7 7 |  | 
| 8 8 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
         | 
| 9 9 | 
             
              s.require_paths = ["lib".freeze]
         | 
| 10 10 | 
             
              s.authors = ["Lin Jen-Shin (godfat)".freeze]
         | 
| 11 | 
            -
              s.date = "2020- | 
| 11 | 
            +
              s.date = "2020-12-06"
         | 
| 12 12 | 
             
              s.description = "Muack -- A fast, small, yet powerful mocking library.\n\nInspired by [RR][], and it's 32x times faster (750s vs 23s) than RR\nfor running [Rib][] tests.\n\n[RR]: https://github.com/rr/rr\n[Rib]: https://github.com/godfat/rib".freeze
         | 
| 13 13 | 
             
              s.email = ["godfat (XD) godfat.org".freeze]
         | 
| 14 14 | 
             
              s.files = [
         | 
    
        data/test/test_keyargs.rb
    CHANGED
    
    | @@ -108,4 +108,53 @@ describe Muack::Mock do | |
| 108 108 | 
             
                  expect(Obj.say(a: 0)).eq(Obj.object_id)
         | 
| 109 109 | 
             
                end
         | 
| 110 110 | 
             
              end
         | 
| 111 | 
            +
             | 
| 112 | 
            +
              describe 'proxy new' do
         | 
| 113 | 
            +
                would 'handle initialize via ordinal new' do
         | 
| 114 | 
            +
                  kargs_initialize = Class.new do
         | 
| 115 | 
            +
                    def initialize a:
         | 
| 116 | 
            +
                      @a = a
         | 
| 117 | 
            +
                    end
         | 
| 118 | 
            +
                    attr_reader :a
         | 
| 119 | 
            +
                  end
         | 
| 120 | 
            +
             | 
| 121 | 
            +
                  mock(kargs_initialize).new(a: 0)
         | 
| 122 | 
            +
             | 
| 123 | 
            +
                  expect(kargs_initialize.new(a: 0).a).eq(0)
         | 
| 124 | 
            +
                end
         | 
| 125 | 
            +
             | 
| 126 | 
            +
                would 'handle overridden new without keyword arguments' do
         | 
| 127 | 
            +
                  kargs_initialize = Class.new do
         | 
| 128 | 
            +
                    def initialize a:
         | 
| 129 | 
            +
                      @a = a
         | 
| 130 | 
            +
                    end
         | 
| 131 | 
            +
                    attr_reader :a
         | 
| 132 | 
            +
             | 
| 133 | 
            +
                    def self.new a
         | 
| 134 | 
            +
                      super(a: a)
         | 
| 135 | 
            +
                    end
         | 
| 136 | 
            +
                  end
         | 
| 137 | 
            +
             | 
| 138 | 
            +
                  mock(kargs_initialize).new(0)
         | 
| 139 | 
            +
             | 
| 140 | 
            +
                  expect(kargs_initialize.new(0).a).eq(0)
         | 
| 141 | 
            +
                end
         | 
| 142 | 
            +
             | 
| 143 | 
            +
                would 'handle overridden new with keyword arguments' do
         | 
| 144 | 
            +
                  kargs_initialize = Class.new do
         | 
| 145 | 
            +
                    def initialize a
         | 
| 146 | 
            +
                      @a = a
         | 
| 147 | 
            +
                    end
         | 
| 148 | 
            +
                    attr_reader :a
         | 
| 149 | 
            +
             | 
| 150 | 
            +
                    def self.new a:
         | 
| 151 | 
            +
                      super(a)
         | 
| 152 | 
            +
                    end
         | 
| 153 | 
            +
                  end
         | 
| 154 | 
            +
             | 
| 155 | 
            +
                  mock(kargs_initialize).new(a: 0)
         | 
| 156 | 
            +
             | 
| 157 | 
            +
                  expect(kargs_initialize.new(a: 0).a).eq(0)
         | 
| 158 | 
            +
                end
         | 
| 159 | 
            +
              end
         | 
| 111 160 | 
             
            end
         | 
    
        data/test/test_mock.rb
    CHANGED
    
    | @@ -102,6 +102,30 @@ describe Muack::Mock do | |
| 102 102 | 
             
                  Muack.verify.should.eq true
         | 
| 103 103 | 
             
                  obj.f       .should.eq 0
         | 
| 104 104 | 
             
                end
         | 
| 105 | 
            +
             | 
| 106 | 
            +
                describe 'not affect the original module' do
         | 
| 107 | 
            +
                  would 'with include' do
         | 
| 108 | 
            +
                    m = Module.new{ def f; :f; end }
         | 
| 109 | 
            +
                    c0 = Class.new{ include m }.new
         | 
| 110 | 
            +
                    c1 = Class.new{ include m }.new
         | 
| 111 | 
            +
             | 
| 112 | 
            +
                    mock(c0).f{:g}
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                    expect(c0.f).eq :g
         | 
| 115 | 
            +
                    expect(c1.f).eq :f
         | 
| 116 | 
            +
                  end
         | 
| 117 | 
            +
             | 
| 118 | 
            +
                  would 'with prepend' do
         | 
| 119 | 
            +
                    m = Module.new{ def f; :f; end }
         | 
| 120 | 
            +
                    c0 = Class.new{ prepend m }.new
         | 
| 121 | 
            +
                    c1 = Class.new{ prepend m }.new
         | 
| 122 | 
            +
             | 
| 123 | 
            +
                    mock(c0).f{:g}
         | 
| 124 | 
            +
             | 
| 125 | 
            +
                    expect(c0.f).eq :g
         | 
| 126 | 
            +
                    expect(c1.f).eq :f
         | 
| 127 | 
            +
                  end
         | 
| 128 | 
            +
                end
         | 
| 105 129 | 
             
              end
         | 
| 106 130 |  | 
| 107 131 | 
             
              describe 'Muack.verify==false' do
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: muack
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.5. | 
| 4 | 
            +
              version: 1.5.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Lin Jen-Shin (godfat)
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020- | 
| 11 | 
            +
            date: 2020-12-06 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies: []
         | 
| 13 13 | 
             
            description: |-
         | 
| 14 14 | 
             
              Muack -- A fast, small, yet powerful mocking library.
         |