pry-rescue 1.3.1 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -1
- data/bin/rescue +12 -5
- data/lib/pry-rescue.rb +11 -2
- data/lib/pry-rescue/kernel_exit_hooks.rb +20 -0
- data/pry-rescue.gemspec +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 008a4a4f62d94f4b5cf467c311f520979131feae
|
4
|
+
data.tar.gz: 79f4cd04eb646a813ce15b4eea2adbd72b00b81c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5a9cc31ce909e9e79bc5fe46700337cbaf236147f78e058ae74452290d2c27b5a9b09fda7a251d36f9a4d51decc10d88bacc14867d50ea94c7902696f6f5940
|
7
|
+
data.tar.gz: 5f309de666004631feba445d965e9aed2b2d8e3bcd1e7663531c88dd3f1fcf00b57fa07c72ac98131d061f4c0a6492de33109f7058faa25803a32f09776e0850
|
data/.travis.yml
CHANGED
data/bin/rescue
CHANGED
@@ -4,7 +4,7 @@ USAGE = %{
|
|
4
4
|
rescue (pry-rescue wrapper)
|
5
5
|
|
6
6
|
Usage:
|
7
|
-
rescue [
|
7
|
+
rescue [-i] <script.rb> [arguments...]
|
8
8
|
|
9
9
|
What it does:
|
10
10
|
Runs <script.rb>, and if an uncaught exception is raised,
|
@@ -13,16 +13,23 @@ What it does:
|
|
13
13
|
|
14
14
|
You can then poke around to figure out why your code broke!
|
15
15
|
|
16
|
-
If
|
17
|
-
|
16
|
+
If -i is specified, then rescue will open a REPL whether or
|
17
|
+
not there was an exception. Specifying -i will also wrap
|
18
|
+
Kernel.at_exit and run exit callbacks before launching the
|
19
|
+
REPL if the script succeeds. This is useful for minitest and
|
20
|
+
other testing frameworks.
|
18
21
|
|
19
22
|
See the README (http://bitly.com/pry-rescue) for more.
|
20
23
|
}
|
24
|
+
|
25
|
+
ensure_repl = false
|
26
|
+
|
21
27
|
case ARGV[0]
|
22
28
|
when '-h', '--help'
|
23
29
|
puts USAGE
|
24
30
|
exit
|
25
|
-
when '
|
31
|
+
when '-i'
|
32
|
+
ensure_repl = true
|
26
33
|
ARGV.shift
|
27
34
|
when /\A-/
|
28
35
|
puts USAGE
|
@@ -39,7 +46,7 @@ if script = ARGV.shift
|
|
39
46
|
$0 = File.expand_path(script)
|
40
47
|
if File.exists? script
|
41
48
|
require File.expand_path('../../lib/pry-rescue.rb', __FILE__)
|
42
|
-
PryRescue.load $0
|
49
|
+
PryRescue.load $0, ensure_repl
|
43
50
|
else
|
44
51
|
$stderr.puts "Error: #{script.inspect} not found."
|
45
52
|
end
|
data/lib/pry-rescue.rb
CHANGED
@@ -38,10 +38,12 @@ end
|
|
38
38
|
# @see {Pry::rescue}
|
39
39
|
class PryRescue
|
40
40
|
class << self
|
41
|
+
attr_accessor :any_exception_captured
|
41
42
|
|
42
43
|
# Start a Pry session in the context of the exception.
|
43
44
|
# @param [Exception] exception The exception raised
|
44
45
|
def enter_exception_context(exception)
|
46
|
+
@any_exception_captured = true
|
45
47
|
@exception_context_depth ||= 0
|
46
48
|
@exception_context_depth += 1
|
47
49
|
|
@@ -66,8 +68,15 @@ class PryRescue
|
|
66
68
|
|
67
69
|
# Load a script wrapped in Pry::rescue{ }
|
68
70
|
# @param [String] script The name of the script
|
69
|
-
def load(script)
|
70
|
-
|
71
|
+
def load(script, ensure_repl = false)
|
72
|
+
require File.expand_path('../pry-rescue/kernel_exit_hooks.rb', __FILE__) if ensure_repl
|
73
|
+
Pry::rescue do
|
74
|
+
begin
|
75
|
+
TOPLEVEL_BINDING.eval File.read(script), script, 1
|
76
|
+
rescue SyntaxError => exception
|
77
|
+
puts "#{exception}\n"
|
78
|
+
end
|
79
|
+
end
|
71
80
|
end
|
72
81
|
|
73
82
|
# Is the user currently inside pry rescue?
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class << PryRescue
|
2
|
+
def exit_callbacks
|
3
|
+
@exit_callbacks ||= []
|
4
|
+
end
|
5
|
+
|
6
|
+
def run_exit_callbacks
|
7
|
+
Pry::rescue do
|
8
|
+
exit_callbacks.dup.each(&:call)
|
9
|
+
end
|
10
|
+
TOPLEVEL_BINDING.pry unless any_exception_captured
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
Kernel.at_exit { PryRescue.run_exit_callbacks }
|
15
|
+
|
16
|
+
module Kernel
|
17
|
+
def at_exit(&block)
|
18
|
+
PryRescue.exit_callbacks.push block
|
19
|
+
end
|
20
|
+
end
|
data/pry-rescue.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'pry-rescue'
|
3
|
-
s.version = '1.
|
3
|
+
s.version = '1.4.0'
|
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.
|
4
|
+
version: 1.4.0
|
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: 2014-
|
13
|
+
date: 2014-02-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: pry
|
@@ -157,6 +157,7 @@ files:
|
|
157
157
|
- lib/pry-rescue/cli.rb
|
158
158
|
- lib/pry-rescue/commands.rb
|
159
159
|
- lib/pry-rescue/core_ext.rb
|
160
|
+
- lib/pry-rescue/kernel_exit_hooks.rb
|
160
161
|
- lib/pry-rescue/minitest.rb
|
161
162
|
- lib/pry-rescue/peek.rb
|
162
163
|
- lib/pry-rescue/peek/exit.rb
|