pry-rescue 1.5.1 → 1.5.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: c70d483edf7b738214f0f22aa4d9fb81909de0de007cb6e581124331d1d8eeb8
4
- data.tar.gz: d9cfd93f342bfe7373ab80b83e2f7f0304ea3472037e10877b640324bf0b5fc3
3
+ metadata.gz: 785059388e26fc08a04afc6d370b89efdc4506f3882738444e2ab0b99c229f20
4
+ data.tar.gz: 11ab228ba3b614eef01ba6687c97a36c76411245fdc6bcb03aaaaf9cd2a3c59c
5
5
  SHA512:
6
- metadata.gz: ff2b45da86ffec10f67fae0c3aa4d24270d5c907d8b3380cecb580f50ff37a0c733c2d8dd956c925081bc20d84e1b9bc9a15e10030ba49ed8bce1a83824b5732
7
- data.tar.gz: 22e51ce3bcc20834edb13e115c9030d2c6945466886d85d0a9a239a69ebfdc38dde922e2968a07c0408134e00a8adc7954e071c21e1cf9b4604b2ea7073b9b8c
6
+ metadata.gz: 4ebeff09115b1ad7937b09e42ced421309b24d9674f7edab5d4f9c6acb504778de1506732220f687f81ebccdb0b16b1c34e49bed0c294b980a6eb3701e6d9d1a
7
+ data.tar.gz: 5c4ecf866a9d06f07447bab62cb51046e40cecbc8ad8cac796c7e40e573ce6c8ceda1a390e6d457a9eef146d9e2c8be79336025515c59188690d8567bc244f47
@@ -1,3 +1,11 @@
1
+ ## v1.5.2 (24 June 2020)
2
+ * RSpec: Fix Rescue opening after transactional tests are rolled back.
3
+ (issue #99 - PR #118) (@joallard)
4
+
5
+ * bin/rescue: Use realpaths (issue #109 - PR #110)
6
+
7
+ *(Damien Robert)*
8
+
1
9
  ## v1.5.1 (22 May 2020)
2
10
  * Make Binding#source_location polyfill. (Removes deprecation warnings
3
11
  for Ruby 2.6+)
data/README.md CHANGED
@@ -84,7 +84,6 @@ browser on unhandled exceptions, and [pry-rails](https://github.com/rweng/pry-ra
84
84
  adds some Rails specific helpers to Pry, and replaces `rails console` by Pry.
85
85
 
86
86
  ### RSpec
87
- **ActiveRecord users: see below caveat**
88
87
 
89
88
  If you're using [RSpec](https://rspec.org) or
90
89
  [respec](https://github.com/oggy/respec), you can open a Pry session on
@@ -106,26 +105,10 @@ RSpec::Expectations::ExpectationNotMetError: expected: 0.3
106
105
  [1] pry(main)>
107
106
  ```
108
107
 
109
- ### Important caveat when using with Rails/ActiveRecord and transactional fixtures
110
- > Records are missing but should be there! Am I losing track of reality?
111
-
112
- You are not. (Probably.)
113
-
114
- By default, RSpec runs test examples in a transaction, and rolls it back when done.
115
- By the time Pry-Rescue fires, the transaction has already been rolled back and records are gone!
116
-
117
- A good sanity check is to call `Model.all`. It will usually be empty. However, at the time of the test, they were truly there.
118
-
119
- This bug is currently tracked at [#99](https://github.com/ConradIrwin/pry-rescue/issues/99).
120
-
121
- Current workaround: Pry-Rescue can't be used, but you can use `binding.pry` inside the test. You'll have access to all records you need there.
122
-
123
- ### Using pry `edit`
124
108
  Unfortunately using `edit -c` to edit `_spec.rb` files does not yet reload the
125
109
  code in a way that the `try-again` command can understand. You can still use
126
110
  `try-again` if you edit code that is not in spec files.
127
111
 
128
- ### Always enabled
129
112
  If you want pry-rescue to *always* be enabled when you run tests, simply add this line to your `test_helper.rb`:
130
113
 
131
114
  ```ruby
data/Rakefile CHANGED
@@ -1,3 +1,4 @@
1
+ require "bundler/gem_tasks"
1
2
  require 'rspec/core/rake_task'
2
3
 
3
4
  task :default => :test
data/bin/rescue CHANGED
@@ -40,7 +40,7 @@ else
40
40
  ENV['PRY_RESCUE_RAILS'] = 'true'
41
41
  exec(*ARGV)
42
42
  when 'rake'
43
- require File.expand_path('../../lib/pry-rescue.rb', __FILE__)
43
+ require File.realpath(File.expand_path('../../lib/pry-rescue.rb', __FILE__))
44
44
  PryRescue.load_rake ARGV[1]
45
45
  exit
46
46
  when /^re?spec$/
@@ -51,8 +51,9 @@ end
51
51
 
52
52
  if script = ARGV.shift
53
53
  $0 = File.expand_path(script)
54
+
54
55
  if File.exists? script
55
- require File.expand_path('../../lib/pry-rescue.rb', __FILE__)
56
+ require File.realpath(File.expand_path('../../lib/pry-rescue.rb', __FILE__))
56
57
  PryRescue.load $0, ensure_repl
57
58
  else
58
59
  $stderr.puts "Error: #{script.inspect} not found."
@@ -8,29 +8,23 @@ class PryRescue
8
8
  # Run an Rspec example within Pry::rescue{ }.
9
9
  #
10
10
  # Takes care to ensure that `try-again` will work.
11
+ #
12
+ # `example` is a RSpec::Core::Example::Procsy
11
13
  def self.run(example)
12
14
  Pry::rescue do
13
15
  begin
14
16
  before
15
17
 
16
- example.binding.eval('@exception = nil; @example && @example.instance_variable_set(:@exception, nil)')
17
- example.binding.eval('example.instance_variable_set(:@exception, nil) if defined?(example)')
18
- if example.example_group_instance.respond_to?(:__init_memoized, true)
19
- example.binding.eval('@example && @example.example_group_instance.instance_variable_set(:@__init_memoized, true)')
20
- example.binding.eval('example.example_group_instance.instance_variable_set(:@__init_memoized, true) if defined?(example)')
21
- else
22
- example.binding.eval('@example && @example.example_group_instance.instance_variable_set(:@__memoized, {})')
23
- example.binding.eval('example.example_group_instance.instance_variable_set(:@__memoized, {}) if defined?(example)')
24
- end
18
+ example.example.instance_variable_set(:@exception, nil)
19
+ example.example_group_instance.instance_variable_set(:@__init_memoized, true)
20
+
25
21
  example.run
26
- e = example.binding.eval('@exception || @example && @example.instance_variable_get(:@exception)')
27
- e ||= example.binding.eval('example.instance_variable_get(:@exception) if defined?(example)')
28
- if e
29
- Pry::rescued(e)
30
- end
22
+
23
+ # Rescued will be called in :after hook, which is ran before the second
24
+ # :around leg
31
25
 
32
26
  ensure
33
- after
27
+ after_outside
34
28
  end
35
29
  end
36
30
  end
@@ -39,7 +33,12 @@ class PryRescue
39
33
  monkeypatch_capybara if defined?(Capybara)
40
34
  end
41
35
 
42
- def self.after
36
+ def self.after(example)
37
+ e = example.exception
38
+ Pry::rescued(e) if e
39
+ end
40
+
41
+ def self.after_outside
43
42
  after_filters.each(&:call)
44
43
  end
45
44
 
@@ -68,4 +67,8 @@ RSpec.configure do |c|
68
67
  c.around(:each) do |example|
69
68
  PryRescue::RSpec.run example
70
69
  end
70
+
71
+ c.after(:each) do |example|
72
+ PryRescue::RSpec.after(example)
73
+ end
71
74
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'pry-rescue'
3
- s.version = '1.5.1'
3
+ s.version = '1.5.2'
4
4
  s.summary = 'Open a pry session on any unhandled exceptions'
5
5
  s.description = 'Allows you to wrap code in Pry::rescue{ } to open a pry session at any unhandled exceptions'
6
6
  s.homepage = 'https://github.com/ConradIrwin/pry-rescue'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pry-rescue
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Conrad Irwin
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-05-29 00:00:00.000000000 Z
13
+ date: 2020-06-25 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: pry
@@ -192,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
192
  - !ruby/object:Gem::Version
193
193
  version: '0'
194
194
  requirements: []
195
- rubygems_version: 3.0.3
195
+ rubygems_version: 3.1.2
196
196
  signing_key:
197
197
  specification_version: 4
198
198
  summary: Open a pry session on any unhandled exceptions