rspec-mocks-diag 3.8.1.1 → 3.8.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 77e3ee2ecfc877fba5c1c9032d0f07f108407f504e18afdb32a3b47da49d44af
4
- data.tar.gz: fa4505b692822a38ecff0dab0e3906fae12ef68e1f8bcd4b5fc465935bdf37fc
3
+ metadata.gz: cabd49758a2f5b8020f328ab1105cc85886cda2739117cd2015961e2be8d439c
4
+ data.tar.gz: c2f58dbff88f7bbebbf1a950f6b3bb47ba42378bbafa45f722f65d523a04b599
5
5
  SHA512:
6
- metadata.gz: 1def73cb2de11472ad0a7b573fea7dc93a9f19afce654072331d3c9ec378ef28e3263e99cbc45a06fd2223bdc7fdcd3997f3eb710a0b3a34a35d7f468367aa70
7
- data.tar.gz: d4f6f36a9c8e18b624c2b5300b7fb703fdf4291c9231f9067662abc1f1794b4ce1a89a238d50c5702aca46b37c408f64a78a11322db3ba42245d410a3a07757a
6
+ metadata.gz: ad6f5c38c0a79a3fa75dbaaf721d7ceeb85d7a23be1e52198f76343fd4e48cc7ab32682bc9964cd290a23754e70ac847325758f26ef73b0350a0c18fe1dded91
7
+ data.tar.gz: 72a03fa13751b377146bc4186c604f3e32657292f787d20b14f4ef5270249ff5510302f14cf221b127b0f2ce4313dfe4ec1bad98054a1e18667c199b927e521e
@@ -12,9 +12,17 @@ module RSpec
12
12
  __raise "#{klass} does not implement ##{method_name}"
13
13
  end
14
14
 
15
- def raise_message_already_received_by_other_instance_error(method_name, object_inspect, invoked_instance)
15
+ def raise_message_already_received_by_other_instance_error(method_name, object_inspect, invoked_instance, invoked_backtrace)
16
+ begin
17
+ raise RuntimeError
18
+ rescue => e
19
+ backtrace = e.backtrace
20
+ end
16
21
  __raise "The message '#{method_name}' was received by #{object_inspect} " \
17
- "but has already been received by #{invoked_instance}"
22
+ "but has already been received by #{invoked_instance}.\nCurrent backtrace:\n" +
23
+ backtrace.map { |line| ' ' + line }.join("\n") +
24
+ "\nPrevious backtrace: \n" +
25
+ invoked_backtrace.map { |line| ' ' + line }.join("\n")
18
26
  end
19
27
 
20
28
  def raise_not_supported_with_prepend_error(method_name, problem_mod)
@@ -261,11 +261,16 @@ module RSpec
261
261
  def mark_invoked!(method_name)
262
262
  backup_method!(method_name)
263
263
  recorder = self
264
+ begin
265
+ raise RuntimeError
266
+ rescue => e
267
+ invoked_backtrace = e.backtrace
268
+ end
264
269
  @klass.__send__(:define_method, method_name) do |*_args, &_blk|
265
270
  invoked_instance = recorder.instance_that_received(method_name)
266
271
  inspect = "#<#{self.class}:#{object_id} #{instance_variables.map { |name| "#{name}=#{instance_variable_get name}" }.join(', ')}>"
267
272
  AnyInstance.error_generator.raise_message_already_received_by_other_instance_error(
268
- method_name, inspect, invoked_instance
273
+ method_name, inspect, invoked_instance, invoked_backtrace
269
274
  )
270
275
  end
271
276
  end
@@ -47,7 +47,7 @@ module RSpec
47
47
 
48
48
  # @private
49
49
  def raise_unexpected_message_error(message, args)
50
- __raise "#{intro} received unexpected message :#{message} with #{format_args(args)}"
50
+ __raise "#{intro} received unexpected message :#{message} with #{format_args(args)}\nDouble instantiated from:\n#{@target._rspec_backtrace.map { |line| ' ' + line }.join("\n")}"
51
51
  end
52
52
 
53
53
  # @private
@@ -15,8 +15,18 @@ module RSpec
15
15
  @name = name
16
16
  end
17
17
  assign_stubs(stubs)
18
+
19
+ begin
20
+ raise RuntimeError
21
+ rescue => e
22
+ @_rspec_backtrace = e.backtrace.dup.tap do |bt|
23
+ bt.shift
24
+ end
25
+ end
18
26
  end
19
27
 
28
+ attr_reader :_rspec_backtrace
29
+
20
30
  # Tells the object to respond to all messages. If specific stub values
21
31
  # are declared, they'll work as expected. If not, the receiver is
22
32
  # returned.
@@ -3,7 +3,7 @@ module RSpec
3
3
  # Version information for RSpec mocks.
4
4
  module Version
5
5
  # Version of RSpec mocks currently in use in SemVer format.
6
- STRING = '3.8.1.1'
6
+ STRING = '3.8.1.2'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-mocks-diag
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.1.1
4
+ version: 3.8.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Baker
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-08-12 00:00:00.000000000 Z
13
+ date: 2019-08-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec-support
@@ -159,7 +159,7 @@ licenses:
159
159
  - MIT
160
160
  metadata:
161
161
  bug_tracker_uri: https://github.com/p-mongo/rspec-mocks/issues
162
- changelog_uri: https://github.com/p-mongo/rspec-mocks/blob/v3.8.1.1/Changelog.md
162
+ changelog_uri: https://github.com/p-mongo/rspec-mocks/blob/v3.8.1.2/Changelog.md
163
163
  documentation_uri: https://rspec.info/documentation/
164
164
  mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
165
165
  source_code_uri: https://github.com/p-mongo/rspec-mocks
@@ -182,5 +182,5 @@ requirements: []
182
182
  rubygems_version: 3.0.3
183
183
  signing_key:
184
184
  specification_version: 4
185
- summary: rspec-mocks-3.8.1.1
185
+ summary: rspec-mocks-3.8.1.2
186
186
  test_files: []