spy 1.0.2 → 1.0.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
 - data/.github/workflows/ruby.yml +38 -0
 - data/.tool-versions +1 -1
 - data/CHANGELOG.md +16 -0
 - data/README.md +3 -4
 - data/lib/spy/call_log.rb +6 -3
 - data/lib/spy/subroutine.rb +15 -31
 - data/lib/spy/version.rb +1 -1
 - data/spy.gemspec +1 -1
 - data/test/integration/test_class_method.rb +24 -0
 - data/test/spy/test_subroutine.rb +22 -0
 - data/test/spy/test_unhook.rb +76 -0
 - data/test/support/pen.rb +4 -0
 - metadata +9 -37
 - data/.travis.yml +0 -13
 - data/spec/spec_helper.rb +0 -41
 - data/spec/spy/and_call_original_spec.rb +0 -152
 - data/spec/spy/and_yield_spec.rb +0 -123
 - data/spec/spy/any_instance_spec.rb +0 -518
 - data/spec/spy/hash_excluding_matcher_spec.rb +0 -63
 - data/spec/spy/hash_including_matcher_spec.rb +0 -86
 - data/spec/spy/mutate_const_spec.rb +0 -471
 - data/spec/spy/nil_expectation_warning_spec.rb +0 -56
 - data/spec/spy/null_object_mock_spec.rb +0 -79
 - data/spec/spy/partial_mock_spec.rb +0 -81
 - data/spec/spy/passing_argument_matchers_spec.rb +0 -140
 - data/spec/spy/serialization_spec.rb +0 -116
 - data/spec/spy/stash_spec.rb +0 -47
 - data/spec/spy/stub_implementation_spec.rb +0 -64
 - data/spec/spy/stub_spec.rb +0 -79
 - data/spec/spy/to_ary_spec.rb +0 -40
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 20db34080cda44a6de54d9042bd0e8081797b5418ecd31a1cf0e08aafdbeb5f4
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 6c0c13d0871680db8fdf33c05e95e6484c02218cd6d3c021379297a30eac25b6
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 8eb8e44ee8e3c45ce8d551e2e15db9db23f69bf64052f3514f5bffc28ee3092455d648e27ab7cbc54b702924cf1ee0b724a507d2fa37d36f6442b65b8d4af8a5
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 4273aa86e5502e8de5fbc329f4c4784709e23cd392eb2455fca7baafd85026d9086568fa721f7b9c9e8e3aaa51e72042cae97059c4a2f5ed723c75de46e44c9e
         
     | 
| 
         @@ -0,0 +1,38 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # This workflow uses actions that are not certified by GitHub.
         
     | 
| 
      
 2 
     | 
    
         
            +
            # They are provided by a third-party and are governed by
         
     | 
| 
      
 3 
     | 
    
         
            +
            # separate terms of service, privacy policy, and support
         
     | 
| 
      
 4 
     | 
    
         
            +
            # documentation.
         
     | 
| 
      
 5 
     | 
    
         
            +
            # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
         
     | 
| 
      
 6 
     | 
    
         
            +
            # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            name: Ruby
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            on:
         
     | 
| 
      
 11 
     | 
    
         
            +
              push:
         
     | 
| 
      
 12 
     | 
    
         
            +
                branches: [ "master" ]
         
     | 
| 
      
 13 
     | 
    
         
            +
              pull_request:
         
     | 
| 
      
 14 
     | 
    
         
            +
                branches: [ "master" ]
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            permissions:
         
     | 
| 
      
 17 
     | 
    
         
            +
              contents: read
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            jobs:
         
     | 
| 
      
 20 
     | 
    
         
            +
              test:
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                runs-on: ubuntu-latest
         
     | 
| 
      
 23 
     | 
    
         
            +
                strategy:
         
     | 
| 
      
 24 
     | 
    
         
            +
                  matrix:
         
     | 
| 
      
 25 
     | 
    
         
            +
                    ruby-version: ['2.7', '3.0', '3.1']
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                steps:
         
     | 
| 
      
 28 
     | 
    
         
            +
                - uses: actions/checkout@v3
         
     | 
| 
      
 29 
     | 
    
         
            +
                - name: Set up Ruby
         
     | 
| 
      
 30 
     | 
    
         
            +
                # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
         
     | 
| 
      
 31 
     | 
    
         
            +
                # change this to (see https://github.com/ruby/setup-ruby#versioning):
         
     | 
| 
      
 32 
     | 
    
         
            +
                # uses: ruby/setup-ruby@v1
         
     | 
| 
      
 33 
     | 
    
         
            +
                  uses: ruby/setup-ruby@0a29871fe2b0200a17a4497bae54fe5df0d973aa # v1.115.3
         
     | 
| 
      
 34 
     | 
    
         
            +
                  with:
         
     | 
| 
      
 35 
     | 
    
         
            +
                    ruby-version: ${{ matrix.ruby-version }}
         
     | 
| 
      
 36 
     | 
    
         
            +
                    bundler-cache: true # runs 'bundle install' and caches installed gems automatically
         
     | 
| 
      
 37 
     | 
    
         
            +
                - name: Run tests
         
     | 
| 
      
 38 
     | 
    
         
            +
                  run: bundle exec rake
         
     | 
    
        data/.tool-versions
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            ruby  
     | 
| 
      
 1 
     | 
    
         
            +
            ruby 3.1.2
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,3 +1,19 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ## Spy 1.0.4 (December 21th, 2022) ##
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * Hash as argument got turned into keyword arguments (@svenpl)
         
     | 
| 
      
 4 
     | 
    
         
            +
            * drop support for ruby older than 2.7 (@ryanong)
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            ## Spy 1.0.3 (September 15, 2022) ##
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            * Fix private method call errors for older ruby versions (@dylanahsmith)
         
     | 
| 
      
 9 
     | 
    
         
            +
            * `Spy.on_instance_method` and `and_call_through` on `#to_ary-able` class causes an error (@mizukami234)
         
     | 
| 
      
 10 
     | 
    
         
            +
            * Fix `and_return` on class method (@jfirebaugh)
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            ## Spy 1.0.2 (January 10, 2022) ##
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            * Fix subroutine call with hash as last arg (@dtheo-ad)
         
     | 
| 
      
 15 
     | 
    
         
            +
            * Ruby 2.7+ support (@casperisfine)
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
       1 
17 
     | 
    
         
             
            ## Spy 1.0.1 (August 20th, 2020) ##
         
     | 
| 
       2 
18 
     | 
    
         | 
| 
       3 
19 
     | 
    
         
             
            *   Fix call_through w/ instance methods (@lreeves)
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -9,8 +9,7 @@ 
     | 
|
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
            Spy is a lightweight stubbing framework with support for method spies, constant stubs, and object mocks.
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
            Spy supports ruby 2. 
     | 
| 
       13 
     | 
    
         
            -
            For versions less than 2.1 use v0.4.5
         
     | 
| 
      
 12 
     | 
    
         
            +
            Spy supports ruby 2.7.0+.
         
     | 
| 
       14 
13 
     | 
    
         | 
| 
       15 
14 
     | 
    
         
             
            Spy features that were completed were tested against the rspec-mocks tests so it covers all cases that rspec-mocks does.
         
     | 
| 
       16 
15 
     | 
    
         | 
| 
         @@ -47,7 +46,7 @@ Fail faster, code faster. 
     | 
|
| 
       47 
46 
     | 
    
         
             
              * you can usually just check the call logs.
         
     | 
| 
       48 
47 
     | 
    
         
             
              * if you do need to use this. It is probably a code smell. You either need to abstract your method more or add separate tests.
         
     | 
| 
       49 
48 
     | 
    
         
             
            * you want to use dumb double, Spy has smart mocks, they are better
         
     | 
| 
       50 
     | 
    
         
            -
            * you use `mock_model` and `stub_model` 
     | 
| 
      
 49 
     | 
    
         
            +
            * you use `mock_model` and `stub_model`
         
     | 
| 
       51 
50 
     | 
    
         | 
| 
       52 
51 
     | 
    
         
             
            ## Installation
         
     | 
| 
       53 
52 
     | 
    
         | 
| 
         @@ -87,7 +86,7 @@ Spy::Subroutine.new(book, :flamethrower).hook(force:true).and_return("burnninant 
     | 
|
| 
       87 
86 
     | 
    
         
             
            ```
         
     | 
| 
       88 
87 
     | 
    
         | 
| 
       89 
88 
     | 
    
         
             
            You can also stub instance methods of Classes and Modules. This is equivalent to
         
     | 
| 
       90 
     | 
    
         
            -
            rspec-mock's `Module 
     | 
| 
      
 89 
     | 
    
         
            +
            rspec-mock's `allow_any_instance_of(Module)`
         
     | 
| 
       91 
90 
     | 
    
         | 
| 
       92 
91 
     | 
    
         
             
            ```ruby
         
     | 
| 
       93 
92 
     | 
    
         
             
            Spy.on_instance_method(Book, :title).and_return("Cannery Row")
         
     | 
    
        data/lib/spy/call_log.rb
    CHANGED
    
    | 
         @@ -10,6 +10,9 @@ module Spy 
     | 
|
| 
       10 
10 
     | 
    
         
             
                # @!attribute [r] args
         
     | 
| 
       11 
11 
     | 
    
         
             
                #   @return [Array] arguments were sent to the method
         
     | 
| 
       12 
12 
     | 
    
         
             
                #
         
     | 
| 
      
 13 
     | 
    
         
            +
                # @!attribute [r] kwargs
         
     | 
| 
      
 14 
     | 
    
         
            +
                #   @return [Array] keyword arguments were sent to the method
         
     | 
| 
      
 15 
     | 
    
         
            +
                #
         
     | 
| 
       13 
16 
     | 
    
         
             
                # @!attribute [r] block
         
     | 
| 
       14 
17 
     | 
    
         
             
                #   @return [Proc] the block that was sent to the method
         
     | 
| 
       15 
18 
     | 
    
         
             
                #
         
     | 
| 
         @@ -17,10 +20,10 @@ module Spy 
     | 
|
| 
       17 
20 
     | 
    
         
             
                #   @return The result of the method of being stubbed, or called through
         
     | 
| 
       18 
21 
     | 
    
         | 
| 
       19 
22 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
                attr_reader :object, :called_from, :args, :block, :result
         
     | 
| 
      
 23 
     | 
    
         
            +
                attr_reader :object, :called_from, :args, :kwargs, :block, :result
         
     | 
| 
       21 
24 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
                def initialize(object, called_from, args, block, result)
         
     | 
| 
       23 
     | 
    
         
            -
                  @object, @called_from, @args, @block, @result = object, called_from, args, block, result
         
     | 
| 
      
 25 
     | 
    
         
            +
                def initialize(object, called_from, args, kwargs, block, result)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  @object, @called_from, @args, @kwargs, @block, @result = object, called_from, args, kwargs, block, result
         
     | 
| 
       24 
27 
     | 
    
         
             
                end
         
     | 
| 
       25 
28 
     | 
    
         
             
              end
         
     | 
| 
       26 
29 
     | 
    
         
             
            end
         
     | 
    
        data/lib/spy/subroutine.rb
    CHANGED
    
    | 
         @@ -84,7 +84,7 @@ module Spy 
     | 
|
| 
       84 
84 
     | 
    
         
             
                  raise NeverHookedError, "'#{method_name}' method has not been hooked" unless hooked?
         
     | 
| 
       85 
85 
     | 
    
         | 
| 
       86 
86 
     | 
    
         
             
                  method_owner.send(:remove_method, method_name)
         
     | 
| 
       87 
     | 
    
         
            -
                  if original_method 
     | 
| 
      
 87 
     | 
    
         
            +
                  if original_method
         
     | 
| 
       88 
88 
     | 
    
         
             
                    original_method.owner.send(:define_method, method_name, original_method)
         
     | 
| 
       89 
89 
     | 
    
         
             
                    original_method.owner.send(original_method_visibility, method_name) if original_method_visibility
         
     | 
| 
       90 
90 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -201,30 +201,28 @@ module Spy 
     | 
|
| 
       201 
201 
     | 
    
         
             
                # check if the method was called with the exact arguments
         
     | 
| 
       202 
202 
     | 
    
         
             
                # @param args Arguments that should have been sent to the method
         
     | 
| 
       203 
203 
     | 
    
         
             
                # @return [Boolean]
         
     | 
| 
       204 
     | 
    
         
            -
                def has_been_called_with?(*args, &block)
         
     | 
| 
      
 204 
     | 
    
         
            +
                def has_been_called_with?(*args, **kwargs, &block)
         
     | 
| 
       205 
205 
     | 
    
         
             
                  raise NeverHookedError unless @was_hooked
         
     | 
| 
       206 
     | 
    
         
            -
                  match = block_given? ? block : proc { |call| call.args == args }
         
     | 
| 
      
 206 
     | 
    
         
            +
                  match = block_given? ? block : proc { |call| call.args == args && call.kwargs == kwargs }
         
     | 
| 
       207 
207 
     | 
    
         
             
                  calls.any?(&match)
         
     | 
| 
       208 
208 
     | 
    
         
             
                end
         
     | 
| 
       209 
209 
     | 
    
         | 
| 
       210 
210 
     | 
    
         
             
                # invoke that the method has been called. You really shouldn't use this
         
     | 
| 
       211 
211 
     | 
    
         
             
                # method.
         
     | 
| 
       212 
     | 
    
         
            -
                def invoke(object, args, block, called_from)
         
     | 
| 
       213 
     | 
    
         
            -
                   
     | 
| 
      
 212 
     | 
    
         
            +
                def invoke(object, args, kwargs, block, called_from)
         
     | 
| 
      
 213 
     | 
    
         
            +
                  arity = args.size
         
     | 
| 
      
 214 
     | 
    
         
            +
                  arity += 1 if kwargs.present?
         
     | 
| 
      
 215 
     | 
    
         
            +
                  check_arity!(arity)
         
     | 
| 
       214 
216 
     | 
    
         | 
| 
       215 
217 
     | 
    
         
             
                  result =
         
     | 
| 
       216 
218 
     | 
    
         
             
                    if @call_through
         
     | 
| 
       217 
     | 
    
         
            -
                      call_plan(build_call_through_plan(object), block, *args)
         
     | 
| 
      
 219 
     | 
    
         
            +
                      call_plan(build_call_through_plan(object), block, *args, **kwargs)
         
     | 
| 
       218 
220 
     | 
    
         
             
                    elsif @plan
         
     | 
| 
       219 
221 
     | 
    
         
             
                      check_for_too_many_arguments!(@plan)
         
     | 
| 
       220 
     | 
    
         
            -
                       
     | 
| 
       221 
     | 
    
         
            -
                        call_plan(@plan, block, object, *args)
         
     | 
| 
       222 
     | 
    
         
            -
                      else
         
     | 
| 
       223 
     | 
    
         
            -
                        call_plan(@plan, block, *args)
         
     | 
| 
       224 
     | 
    
         
            -
                      end
         
     | 
| 
      
 222 
     | 
    
         
            +
                      call_plan(@plan, block, *args, **kwargs)
         
     | 
| 
       225 
223 
     | 
    
         
             
                    end
         
     | 
| 
       226 
224 
     | 
    
         
             
                ensure
         
     | 
| 
       227 
     | 
    
         
            -
                  calls << CallLog.new(object, called_from, args, block, result)
         
     | 
| 
      
 225 
     | 
    
         
            +
                  calls << CallLog.new(object, called_from, args, kwargs, block, result)
         
     | 
| 
       228 
226 
     | 
    
         
             
                end
         
     | 
| 
       229 
227 
     | 
    
         | 
| 
       230 
228 
     | 
    
         
             
                # reset the call log
         
     | 
| 
         @@ -241,11 +239,12 @@ module Spy 
     | 
|
| 
       241 
239 
     | 
    
         
             
                # we use eval to set the spy object id as a parameter so it can be extracted
         
     | 
| 
       242 
240 
     | 
    
         
             
                # and looked up later using `Method#parameters`
         
     | 
| 
       243 
241 
     | 
    
         
             
                SPY_ARGS_PREFIX='__spy_args_'.freeze
         
     | 
| 
      
 242 
     | 
    
         
            +
                SPY_KWARGS_PREFIX='__spy_kwargs_'.freeze
         
     | 
| 
       244 
243 
     | 
    
         
             
                def override_method
         
     | 
| 
       245 
244 
     | 
    
         
             
                  eval <<-METHOD, binding, __FILE__, __LINE__ + 1
         
     | 
| 
       246 
245 
     | 
    
         
             
                  __method_spy__ = self
         
     | 
| 
       247 
     | 
    
         
            -
                  lambda do |*#{SPY_ARGS_PREFIX}#{self.object_id}, &block|
         
     | 
| 
       248 
     | 
    
         
            -
                    __method_spy__.invoke(self, #{SPY_ARGS_PREFIX}#{self.object_id}, block, caller(1)[0])
         
     | 
| 
      
 246 
     | 
    
         
            +
                  lambda do |*#{SPY_ARGS_PREFIX}#{self.object_id}, **#{SPY_KWARGS_PREFIX}#{self.object_id}, &block|
         
     | 
| 
      
 247 
     | 
    
         
            +
                    __method_spy__.invoke(self, #{SPY_ARGS_PREFIX}#{self.object_id}, #{SPY_KWARGS_PREFIX}#{self.object_id}, block, caller(1)[0])
         
     | 
| 
       249 
248 
     | 
    
         
             
                  end
         
     | 
| 
       250 
249 
     | 
    
         
             
                  METHOD
         
     | 
| 
       251 
250 
     | 
    
         
             
                end
         
     | 
| 
         @@ -349,23 +348,8 @@ module Spy 
     | 
|
| 
       349 
348 
     | 
    
         
             
                  end
         
     | 
| 
       350 
349 
     | 
    
         
             
                end
         
     | 
| 
       351 
350 
     | 
    
         | 
| 
       352 
     | 
    
         
            -
                def call_plan(plan, block, *args)
         
     | 
| 
       353 
     | 
    
         
            -
                   
     | 
| 
       354 
     | 
    
         
            -
                    *prefix, last = args
         
     | 
| 
       355 
     | 
    
         
            -
                    plan.call(*prefix, **last, &block)
         
     | 
| 
       356 
     | 
    
         
            -
                  else
         
     | 
| 
       357 
     | 
    
         
            -
                    plan.call(*args, &block)
         
     | 
| 
       358 
     | 
    
         
            -
                  end
         
     | 
| 
       359 
     | 
    
         
            -
                end
         
     | 
| 
       360 
     | 
    
         
            -
             
     | 
| 
       361 
     | 
    
         
            -
                # Ruby 2.7 gives a deprecation warning about passing hash as last argument for a method
         
     | 
| 
       362 
     | 
    
         
            -
                # with a double-splat operator (**), and Ruby 3 raises an ArgumentError exception.
         
     | 
| 
       363 
     | 
    
         
            -
                # This checks if args has a hash as last element to extract it and pass it with double-splat to avoid an exception.
         
     | 
| 
       364 
     | 
    
         
            -
                def ruby_27_last_arg_hash?(args)
         
     | 
| 
       365 
     | 
    
         
            -
                  last = args.last
         
     | 
| 
       366 
     | 
    
         
            -
                  last.instance_of?(Hash) &&
         
     | 
| 
       367 
     | 
    
         
            -
                    !last.empty? &&
         
     | 
| 
       368 
     | 
    
         
            -
                    Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.7.0")
         
     | 
| 
      
 351 
     | 
    
         
            +
                def call_plan(plan, block, *args, **kwargs)
         
     | 
| 
      
 352 
     | 
    
         
            +
                  plan.call(*args, **kwargs, &block)
         
     | 
| 
       369 
353 
     | 
    
         
             
                end
         
     | 
| 
       370 
354 
     | 
    
         | 
| 
       371 
355 
     | 
    
         
             
                class << self
         
     | 
    
        data/lib/spy/version.rb
    CHANGED
    
    
    
        data/spy.gemspec
    CHANGED
    
    | 
         @@ -6,7 +6,7 @@ require 'spy/version' 
     | 
|
| 
       6 
6 
     | 
    
         
             
            Gem::Specification.new do |gem|
         
     | 
| 
       7 
7 
     | 
    
         
             
              gem.name          = "spy"
         
     | 
| 
       8 
8 
     | 
    
         
             
              gem.version       = Spy::VERSION
         
     | 
| 
       9 
     | 
    
         
            -
              gem.required_ruby_version = '>= 2. 
     | 
| 
      
 9 
     | 
    
         
            +
              gem.required_ruby_version = '>= 2.7.0'
         
     | 
| 
       10 
10 
     | 
    
         
             
              gem.license       = 'MIT'
         
     | 
| 
       11 
11 
     | 
    
         
             
              gem.authors       = ["Ryan Ong"]
         
     | 
| 
       12 
12 
     | 
    
         
             
              gem.email         = ["ryanong@gmail.com"]
         
     | 
| 
         @@ -0,0 +1,24 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            class TestClassMethod < Minitest::Test
         
     | 
| 
      
 4 
     | 
    
         
            +
              def teardown
         
     | 
| 
      
 5 
     | 
    
         
            +
                Spy::Agency.instance.dissolve!
         
     | 
| 
      
 6 
     | 
    
         
            +
              end
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              def test_and_return
         
     | 
| 
      
 9 
     | 
    
         
            +
                klass = Class.new do
         
     | 
| 
      
 10 
     | 
    
         
            +
                  def self.class_method(*args, &block)
         
     | 
| 
      
 11 
     | 
    
         
            +
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
                received_args = nil
         
     | 
| 
      
 14 
     | 
    
         
            +
                received_block = nil
         
     | 
| 
      
 15 
     | 
    
         
            +
                Spy.on(klass, :class_method).and_return do |*args, &block|
         
     | 
| 
      
 16 
     | 
    
         
            +
                  received_args = args
         
     | 
| 
      
 17 
     | 
    
         
            +
                  received_block = block
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
                block = -> {}
         
     | 
| 
      
 20 
     | 
    
         
            +
                klass.class_method(:a, :b, &block)
         
     | 
| 
      
 21 
     | 
    
         
            +
                assert_equal [:a, :b], received_args
         
     | 
| 
      
 22 
     | 
    
         
            +
                assert_equal block, received_block
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
            end
         
     | 
    
        data/test/spy/test_subroutine.rb
    CHANGED
    
    | 
         @@ -150,6 +150,14 @@ module Spy 
     | 
|
| 
       150 
150 
     | 
    
         
             
                  assert_equal string, result
         
     | 
| 
       151 
151 
     | 
    
         
             
                end
         
     | 
| 
       152 
152 
     | 
    
         | 
| 
      
 153 
     | 
    
         
            +
                def test_spy_and_call_through_with_hash_and_keyword_args
         
     | 
| 
      
 154 
     | 
    
         
            +
                  spy_on(@pen, 'hash_and_keyword_arg').and_call_through
         
     | 
| 
      
 155 
     | 
    
         
            +
                  hsh = { hello: 'world' }
         
     | 
| 
      
 156 
     | 
    
         
            +
             
     | 
| 
      
 157 
     | 
    
         
            +
                  assert_equal [hsh, nil], @pen.hash_and_keyword_arg(hsh)
         
     | 
| 
      
 158 
     | 
    
         
            +
                  assert_equal [hsh, 'foo'], @pen.hash_and_keyword_arg(hsh, keyword: 'foo')
         
     | 
| 
      
 159 
     | 
    
         
            +
                end
         
     | 
| 
      
 160 
     | 
    
         
            +
             
     | 
| 
       153 
161 
     | 
    
         
             
                def test_spy_and_call_through_returns_original_method_result
         
     | 
| 
       154 
162 
     | 
    
         
             
                  string = "hello world"
         
     | 
| 
       155 
163 
     | 
    
         | 
| 
         @@ -237,6 +245,20 @@ module Spy 
     | 
|
| 
       237 
245 
     | 
    
         
             
                  assert pen_write_spy.has_been_called_with?("hello")
         
     | 
| 
       238 
246 
     | 
    
         
             
                end
         
     | 
| 
       239 
247 
     | 
    
         | 
| 
      
 248 
     | 
    
         
            +
                def test_has_been_called_with_kwargs
         
     | 
| 
      
 249 
     | 
    
         
            +
                  pen_write_spy = spy_on(@pen, :opt_kwargs)
         
     | 
| 
      
 250 
     | 
    
         
            +
                  refute pen_write_spy.has_been_called_with?("hello")
         
     | 
| 
      
 251 
     | 
    
         
            +
             
     | 
| 
      
 252 
     | 
    
         
            +
                  @pen.opt_kwargs("hello")
         
     | 
| 
      
 253 
     | 
    
         
            +
                  assert pen_write_spy.has_been_called_with?("hello")
         
     | 
| 
      
 254 
     | 
    
         
            +
             
     | 
| 
      
 255 
     | 
    
         
            +
                  @pen.opt_kwargs("world", opt: "hello")
         
     | 
| 
      
 256 
     | 
    
         
            +
                  assert pen_write_spy.has_been_called_with?("world", opt: "hello")
         
     | 
| 
      
 257 
     | 
    
         
            +
             
     | 
| 
      
 258 
     | 
    
         
            +
                  @pen.opt_kwargs("hello world", opt: "world", opt2: "hello")
         
     | 
| 
      
 259 
     | 
    
         
            +
                  assert pen_write_spy.has_been_called_with?("hello world", opt: "world", opt2: "hello")
         
     | 
| 
      
 260 
     | 
    
         
            +
                end
         
     | 
| 
      
 261 
     | 
    
         
            +
             
     | 
| 
       240 
262 
     | 
    
         
             
                def test_spy_hook_records_number_of_calls2
         
     | 
| 
       241 
263 
     | 
    
         
             
                  args = ["hello world"]
         
     | 
| 
       242 
264 
     | 
    
         
             
                  block = Proc.new {}
         
     | 
| 
         @@ -0,0 +1,76 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Spy
         
     | 
| 
      
 4 
     | 
    
         
            +
              class TestUnhook < Minitest::Test
         
     | 
| 
      
 5 
     | 
    
         
            +
                module ModuleFunctionStyle
         
     | 
| 
      
 6 
     | 
    
         
            +
                  extend self
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                  def hello
         
     | 
| 
      
 9 
     | 
    
         
            +
                    'hello world'
         
     | 
| 
      
 10 
     | 
    
         
            +
                  end
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                module Injected
         
     | 
| 
      
 14 
     | 
    
         
            +
                  def hello
         
     | 
| 
      
 15 
     | 
    
         
            +
                    'hello world'
         
     | 
| 
      
 16 
     | 
    
         
            +
                  end
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                class ModuleInjectedStyle
         
     | 
| 
      
 20 
     | 
    
         
            +
                  include Injected
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                class ModuleExtendedStyle
         
     | 
| 
      
 24 
     | 
    
         
            +
                  extend Injected
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                class SingletonMethodStyle
         
     | 
| 
      
 28 
     | 
    
         
            +
                  def self.hello
         
     | 
| 
      
 29 
     | 
    
         
            +
                    'hello world'
         
     | 
| 
      
 30 
     | 
    
         
            +
                  end
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                class InstanceMethodStyle
         
     | 
| 
      
 34 
     | 
    
         
            +
                  def hello
         
     | 
| 
      
 35 
     | 
    
         
            +
                    'hello world'
         
     | 
| 
      
 36 
     | 
    
         
            +
                  end
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                def test_ModuleFunctionStyle
         
     | 
| 
      
 40 
     | 
    
         
            +
                  spy = Spy.on(ModuleFunctionStyle, :hello).and_return('yo')
         
     | 
| 
      
 41 
     | 
    
         
            +
                  assert_equal ModuleFunctionStyle.hello, 'yo'
         
     | 
| 
      
 42 
     | 
    
         
            +
                  spy.unhook
         
     | 
| 
      
 43 
     | 
    
         
            +
                  assert_equal ModuleFunctionStyle.hello, 'hello world'
         
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                def test_ModuleInjectedStyle
         
     | 
| 
      
 47 
     | 
    
         
            +
                  instance = ModuleInjectedStyle.new
         
     | 
| 
      
 48 
     | 
    
         
            +
                  spy = Spy.on(instance, :hello).and_return('yo')
         
     | 
| 
      
 49 
     | 
    
         
            +
                  assert_equal instance.hello, 'yo'
         
     | 
| 
      
 50 
     | 
    
         
            +
                  spy.unhook
         
     | 
| 
      
 51 
     | 
    
         
            +
                  assert_equal instance.hello, 'hello world'
         
     | 
| 
      
 52 
     | 
    
         
            +
                end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                def test_ModuleExtendedStyle
         
     | 
| 
      
 55 
     | 
    
         
            +
                  spy = Spy.on(ModuleExtendedStyle, :hello).and_return('yo')
         
     | 
| 
      
 56 
     | 
    
         
            +
                  assert_equal ModuleExtendedStyle.hello, 'yo'
         
     | 
| 
      
 57 
     | 
    
         
            +
                  spy.unhook
         
     | 
| 
      
 58 
     | 
    
         
            +
                  assert_equal ModuleExtendedStyle.hello, 'hello world'
         
     | 
| 
      
 59 
     | 
    
         
            +
                end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                def test_SingletonMethodStyle
         
     | 
| 
      
 62 
     | 
    
         
            +
                  spy = Spy.on(SingletonMethodStyle, :hello).and_return('yo')
         
     | 
| 
      
 63 
     | 
    
         
            +
                  assert_equal SingletonMethodStyle.hello, 'yo'
         
     | 
| 
      
 64 
     | 
    
         
            +
                  spy.unhook
         
     | 
| 
      
 65 
     | 
    
         
            +
                  assert_equal SingletonMethodStyle.hello, 'hello world'
         
     | 
| 
      
 66 
     | 
    
         
            +
                end
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                def test_InstanceMethodStyle
         
     | 
| 
      
 69 
     | 
    
         
            +
                  instance = InstanceMethodStyle.new
         
     | 
| 
      
 70 
     | 
    
         
            +
                  spy = Spy.on(instance, :hello).and_return('yo')
         
     | 
| 
      
 71 
     | 
    
         
            +
                  assert_equal instance.hello, 'yo'
         
     | 
| 
      
 72 
     | 
    
         
            +
                  spy.unhook
         
     | 
| 
      
 73 
     | 
    
         
            +
                  assert_equal instance.hello, 'hello world'
         
     | 
| 
      
 74 
     | 
    
         
            +
                end
         
     | 
| 
      
 75 
     | 
    
         
            +
              end
         
     | 
| 
      
 76 
     | 
    
         
            +
            end
         
     | 
    
        data/test/support/pen.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: spy
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.4
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Ryan Ong
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2022- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-12-21 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: pry
         
     | 
| 
         @@ -117,9 +117,9 @@ executables: [] 
     | 
|
| 
       117 
117 
     | 
    
         
             
            extensions: []
         
     | 
| 
       118 
118 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       119 
119 
     | 
    
         
             
            files:
         
     | 
| 
      
 120 
     | 
    
         
            +
            - ".github/workflows/ruby.yml"
         
     | 
| 
       120 
121 
     | 
    
         
             
            - ".gitignore"
         
     | 
| 
       121 
122 
     | 
    
         
             
            - ".tool-versions"
         
     | 
| 
       122 
     | 
    
         
            -
            - ".travis.yml"
         
     | 
| 
       123 
123 
     | 
    
         
             
            - ".yardopts"
         
     | 
| 
       124 
124 
     | 
    
         
             
            - CHANGELOG.md
         
     | 
| 
       125 
125 
     | 
    
         
             
            - Gemfile
         
     | 
| 
         @@ -139,30 +139,16 @@ files: 
     | 
|
| 
       139 
139 
     | 
    
         
             
            - lib/spy/nest.rb
         
     | 
| 
       140 
140 
     | 
    
         
             
            - lib/spy/subroutine.rb
         
     | 
| 
       141 
141 
     | 
    
         
             
            - lib/spy/version.rb
         
     | 
| 
       142 
     | 
    
         
            -
            - spec/spec_helper.rb
         
     | 
| 
       143 
     | 
    
         
            -
            - spec/spy/and_call_original_spec.rb
         
     | 
| 
       144 
     | 
    
         
            -
            - spec/spy/and_yield_spec.rb
         
     | 
| 
       145 
     | 
    
         
            -
            - spec/spy/any_instance_spec.rb
         
     | 
| 
       146 
     | 
    
         
            -
            - spec/spy/hash_excluding_matcher_spec.rb
         
     | 
| 
       147 
     | 
    
         
            -
            - spec/spy/hash_including_matcher_spec.rb
         
     | 
| 
       148 
     | 
    
         
            -
            - spec/spy/mutate_const_spec.rb
         
     | 
| 
       149 
     | 
    
         
            -
            - spec/spy/nil_expectation_warning_spec.rb
         
     | 
| 
       150 
     | 
    
         
            -
            - spec/spy/null_object_mock_spec.rb
         
     | 
| 
       151 
     | 
    
         
            -
            - spec/spy/partial_mock_spec.rb
         
     | 
| 
       152 
     | 
    
         
            -
            - spec/spy/passing_argument_matchers_spec.rb
         
     | 
| 
       153 
     | 
    
         
            -
            - spec/spy/serialization_spec.rb
         
     | 
| 
       154 
     | 
    
         
            -
            - spec/spy/stash_spec.rb
         
     | 
| 
       155 
     | 
    
         
            -
            - spec/spy/stub_implementation_spec.rb
         
     | 
| 
       156 
     | 
    
         
            -
            - spec/spy/stub_spec.rb
         
     | 
| 
       157 
     | 
    
         
            -
            - spec/spy/to_ary_spec.rb
         
     | 
| 
       158 
142 
     | 
    
         
             
            - spy.gemspec
         
     | 
| 
       159 
143 
     | 
    
         
             
            - test/integration/test_api.rb
         
     | 
| 
      
 144 
     | 
    
         
            +
            - test/integration/test_class_method.rb
         
     | 
| 
       160 
145 
     | 
    
         
             
            - test/integration/test_constant_spying.rb
         
     | 
| 
       161 
146 
     | 
    
         
             
            - test/integration/test_instance_method.rb
         
     | 
| 
       162 
147 
     | 
    
         
             
            - test/integration/test_mocking.rb
         
     | 
| 
       163 
148 
     | 
    
         
             
            - test/integration/test_subroutine_spying.rb
         
     | 
| 
       164 
149 
     | 
    
         
             
            - test/spy/test_mock.rb
         
     | 
| 
       165 
150 
     | 
    
         
             
            - test/spy/test_subroutine.rb
         
     | 
| 
      
 151 
     | 
    
         
            +
            - test/spy/test_unhook.rb
         
     | 
| 
       166 
152 
     | 
    
         
             
            - test/support/pen.rb
         
     | 
| 
       167 
153 
     | 
    
         
             
            - test/test_helper.rb
         
     | 
| 
       168 
154 
     | 
    
         
             
            homepage: https://github.com/ryanong/spy
         
     | 
| 
         @@ -177,41 +163,27 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       177 
163 
     | 
    
         
             
              requirements:
         
     | 
| 
       178 
164 
     | 
    
         
             
              - - ">="
         
     | 
| 
       179 
165 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       180 
     | 
    
         
            -
                  version: 2. 
     | 
| 
      
 166 
     | 
    
         
            +
                  version: 2.7.0
         
     | 
| 
       181 
167 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       182 
168 
     | 
    
         
             
              requirements:
         
     | 
| 
       183 
169 
     | 
    
         
             
              - - ">="
         
     | 
| 
       184 
170 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       185 
171 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       186 
172 
     | 
    
         
             
            requirements: []
         
     | 
| 
       187 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
      
 173 
     | 
    
         
            +
            rubygems_version: 3.3.17
         
     | 
| 
       188 
174 
     | 
    
         
             
            signing_key:
         
     | 
| 
       189 
175 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       190 
176 
     | 
    
         
             
            summary: A simple modern mocking library that uses the spy pattern and checks method's
         
     | 
| 
       191 
177 
     | 
    
         
             
              existence and arity.
         
     | 
| 
       192 
178 
     | 
    
         
             
            test_files:
         
     | 
| 
       193 
     | 
    
         
            -
            - spec/spec_helper.rb
         
     | 
| 
       194 
     | 
    
         
            -
            - spec/spy/and_call_original_spec.rb
         
     | 
| 
       195 
     | 
    
         
            -
            - spec/spy/and_yield_spec.rb
         
     | 
| 
       196 
     | 
    
         
            -
            - spec/spy/any_instance_spec.rb
         
     | 
| 
       197 
     | 
    
         
            -
            - spec/spy/hash_excluding_matcher_spec.rb
         
     | 
| 
       198 
     | 
    
         
            -
            - spec/spy/hash_including_matcher_spec.rb
         
     | 
| 
       199 
     | 
    
         
            -
            - spec/spy/mutate_const_spec.rb
         
     | 
| 
       200 
     | 
    
         
            -
            - spec/spy/nil_expectation_warning_spec.rb
         
     | 
| 
       201 
     | 
    
         
            -
            - spec/spy/null_object_mock_spec.rb
         
     | 
| 
       202 
     | 
    
         
            -
            - spec/spy/partial_mock_spec.rb
         
     | 
| 
       203 
     | 
    
         
            -
            - spec/spy/passing_argument_matchers_spec.rb
         
     | 
| 
       204 
     | 
    
         
            -
            - spec/spy/serialization_spec.rb
         
     | 
| 
       205 
     | 
    
         
            -
            - spec/spy/stash_spec.rb
         
     | 
| 
       206 
     | 
    
         
            -
            - spec/spy/stub_implementation_spec.rb
         
     | 
| 
       207 
     | 
    
         
            -
            - spec/spy/stub_spec.rb
         
     | 
| 
       208 
     | 
    
         
            -
            - spec/spy/to_ary_spec.rb
         
     | 
| 
       209 
179 
     | 
    
         
             
            - test/integration/test_api.rb
         
     | 
| 
      
 180 
     | 
    
         
            +
            - test/integration/test_class_method.rb
         
     | 
| 
       210 
181 
     | 
    
         
             
            - test/integration/test_constant_spying.rb
         
     | 
| 
       211 
182 
     | 
    
         
             
            - test/integration/test_instance_method.rb
         
     | 
| 
       212 
183 
     | 
    
         
             
            - test/integration/test_mocking.rb
         
     | 
| 
       213 
184 
     | 
    
         
             
            - test/integration/test_subroutine_spying.rb
         
     | 
| 
       214 
185 
     | 
    
         
             
            - test/spy/test_mock.rb
         
     | 
| 
       215 
186 
     | 
    
         
             
            - test/spy/test_subroutine.rb
         
     | 
| 
      
 187 
     | 
    
         
            +
            - test/spy/test_unhook.rb
         
     | 
| 
       216 
188 
     | 
    
         
             
            - test/support/pen.rb
         
     | 
| 
       217 
189 
     | 
    
         
             
            - test/test_helper.rb
         
     | 
    
        data/.travis.yml
    DELETED
    
    
    
        data/spec/spec_helper.rb
    DELETED
    
    | 
         @@ -1,41 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require "rspec/core"
         
     | 
| 
       2 
     | 
    
         
            -
            require "rspec/matchers"
         
     | 
| 
       3 
     | 
    
         
            -
            require "rspec/expectations"
         
     | 
| 
       4 
     | 
    
         
            -
            require "spy"
         
     | 
| 
       5 
     | 
    
         
            -
            require "pry"
         
     | 
| 
       6 
     | 
    
         
            -
            require "pry-nav"
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
            RSpec::Matchers.define :include_method do |expected|
         
     | 
| 
       9 
     | 
    
         
            -
              match do |actual|
         
     | 
| 
       10 
     | 
    
         
            -
                actual.map { |m| m.to_s }.include?(expected.to_s)
         
     | 
| 
       11 
     | 
    
         
            -
              end
         
     | 
| 
       12 
     | 
    
         
            -
            end
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
            RSpec.configure do |config|
         
     | 
| 
       15 
     | 
    
         
            -
              config.color_enabled = true
         
     | 
| 
       16 
     | 
    
         
            -
              config.order = :random
         
     | 
| 
       17 
     | 
    
         
            -
              config.run_all_when_everything_filtered = true
         
     | 
| 
       18 
     | 
    
         
            -
              config.treat_symbols_as_metadata_keys_with_true_values = true
         
     | 
| 
       19 
     | 
    
         
            -
              config.filter_run_including :focus
         
     | 
| 
       20 
     | 
    
         
            -
              config.filter_run_excluding :broken => true
         
     | 
| 
       21 
     | 
    
         
            -
              config.mock_with :absolutely_nothing
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
              config.expect_with :rspec do |expectations|
         
     | 
| 
       24 
     | 
    
         
            -
                expectations.syntax = :expect
         
     | 
| 
       25 
     | 
    
         
            -
              end
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
              old_verbose = nil
         
     | 
| 
       28 
     | 
    
         
            -
              config.before(:each, :silence_warnings) do
         
     | 
| 
       29 
     | 
    
         
            -
                old_verbose = $VERBOSE
         
     | 
| 
       30 
     | 
    
         
            -
                $VERBOSE = nil
         
     | 
| 
       31 
     | 
    
         
            -
              end
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
              config.after(:each, :silence_warnings) do
         
     | 
| 
       34 
     | 
    
         
            -
                $VERBOSE = old_verbose
         
     | 
| 
       35 
     | 
    
         
            -
              end
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
              config.after(:each) do
         
     | 
| 
       38 
     | 
    
         
            -
                Spy.teardown
         
     | 
| 
       39 
     | 
    
         
            -
              end
         
     | 
| 
       40 
     | 
    
         
            -
            end
         
     | 
| 
       41 
     | 
    
         
            -
             
     |