Class: PryRescue::RSpec
- Inherits:
-
Object
- Object
- PryRescue::RSpec
- Defined in:
- lib/pry-rescue/rspec.rb
Class Method Summary collapse
- .after ⇒ Object
- .after_filters ⇒ Object
- .before ⇒ Object
-
.monkeypatch_capybara ⇒ Object
Shunt Capybara’s after filter from before Pry::rescued to after.
-
.run(example) ⇒ Object
Run an Rspec example within Pry::rescue{ }.
Class Method Details
.after ⇒ Object
29 30 31 |
# File 'lib/pry-rescue/rspec.rb', line 29 def self.after after_filters.each(&:call) end |
.after_filters ⇒ Object
48 49 50 |
# File 'lib/pry-rescue/rspec.rb', line 48 def self.after_filters @after_filters ||= [] end |
.before ⇒ Object
25 26 27 |
# File 'lib/pry-rescue/rspec.rb', line 25 def self.before if defined?(Capybara) end |
.monkeypatch_capybara ⇒ Object
Shunt Capybara’s after filter from before Pry::rescued to after.
The after filter navigates to ‘about:blank’, but people debugging tests probably want to see the page that failed.
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/pry-rescue/rspec.rb', line 37 def self. unless Capybara.respond_to?(:reset_sessions_after_rescue!) class << Capybara alias_method :reset_sessions_after_rescue!, :reset_sessions! def reset_sessions!; end end after_filters << Capybara.method(:reset_sessions_after_rescue!) end end |
.run(example) ⇒ Object
Run an Rspec example within Pry::rescue{ }.
Takes care to ensure that ‘try-again` will work.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/pry-rescue/rspec.rb', line 8 def self.run(example) Pry::rescue do begin before example.binding.eval('@exception = nil') example.run if e = example.binding.eval('@exception') Pry::rescued(e) end ensure after end end end |