pry-debugger 0.2.0 → 0.2.1
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.
- data/CHANGELOG.md +14 -3
- data/README.md +8 -1
- data/lib/pry-debugger/breakpoints.rb +16 -2
- data/lib/pry-debugger/commands.rb +2 -2
- data/lib/pry-debugger/pry_ext.rb +5 -4
- data/lib/pry-debugger/pry_remote_ext.rb +4 -3
- data/lib/pry-debugger/version.rb +1 -1
- data/pry-debugger.gemspec +3 -3
- metadata +35 -20
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,18 @@
|
|
1
|
+
## 0.2.1 (2012-12-26)
|
2
|
+
|
3
|
+
* Support breakpoints on methods defined in the pry console. (@banister)
|
4
|
+
* Fix support for specifying breakpoints by *file:line_number*. (@nviennot)
|
5
|
+
* Validate breakpoint conditionals are real Ruby expressions.
|
6
|
+
* Support for [debugger][debugger] ~> 1.2.0. (@jshou)
|
7
|
+
* Safer `alias_method_chain`-style patching of `Pry.start` and
|
8
|
+
`PryRemote::Server#teardown`. (@benizi)
|
9
|
+
|
10
|
+
|
1
11
|
## 0.2.0 (2012-06-11)
|
2
12
|
|
3
|
-
|
4
|
-
* **finish** command
|
5
|
-
* Internal cleanup and bug fixes
|
13
|
+
* Breakpoints
|
14
|
+
* **finish** command
|
15
|
+
* Internal cleanup and bug fixes
|
6
16
|
|
7
17
|
|
8
18
|
## 0.1.0 (2012-06-07)
|
@@ -12,3 +22,4 @@
|
|
12
22
|
|
13
23
|
|
14
24
|
[pry-remote]: https://github.com/Mon-Ouie/pry-remote
|
25
|
+
[debugger]: https://github.com/cldwalker/debugger
|
data/README.md
CHANGED
@@ -123,7 +123,14 @@ Pry.commands.alias_command 'f', 'finish'
|
|
123
123
|
```
|
124
124
|
|
125
125
|
|
126
|
-
##
|
126
|
+
## Contributors
|
127
|
+
|
128
|
+
* Gopal Patel (@nixme)
|
129
|
+
* John Mair (@banister)
|
130
|
+
* Nicolas Viennot (@nviennot)
|
131
|
+
* Benjamin R. Haskell (@benizi)
|
132
|
+
* Joshua Hou (@jshou)
|
133
|
+
* ...and others who helped with [pry-nav][pry-nav]
|
127
134
|
|
128
135
|
Patches and bug reports are welcome. Just send a [pull request][pullrequests] or
|
129
136
|
file an [issue][issues]. [Project changelog][changelog].
|
@@ -10,13 +10,20 @@ module PryDebugger
|
|
10
10
|
|
11
11
|
# Add a new breakpoint.
|
12
12
|
def add(file, line, expression = nil)
|
13
|
-
|
13
|
+
real_file = (file != Pry.eval_path)
|
14
|
+
raise ArgumentError, 'Invalid file!' if real_file && !File.exist?(file)
|
15
|
+
validate_expression expression
|
16
|
+
|
14
17
|
Pry.processor.debugging = true
|
15
|
-
|
18
|
+
|
19
|
+
path = (real_file ? File.expand_path(file) : file)
|
20
|
+
Debugger.add_breakpoint(path, line, expression)
|
16
21
|
end
|
17
22
|
|
18
23
|
# Change the conditional expression for a breakpoint.
|
19
24
|
def change(id, expression = nil)
|
25
|
+
validate_expression expression
|
26
|
+
|
20
27
|
breakpoint = find_by_id(id)
|
21
28
|
breakpoint.expr = expression
|
22
29
|
breakpoint
|
@@ -79,5 +86,12 @@ module PryDebugger
|
|
79
86
|
breakpoint.enabled = enabled
|
80
87
|
breakpoint
|
81
88
|
end
|
89
|
+
|
90
|
+
def validate_expression(expression)
|
91
|
+
if expression && # `nil` implies no expression given, so pass
|
92
|
+
(expression.empty? || !Pry::Code.complete_expression?(expression))
|
93
|
+
raise "Invalid breakpoint conditional: #{expression}"
|
94
|
+
end
|
95
|
+
end
|
82
96
|
end
|
83
97
|
end
|
@@ -142,13 +142,13 @@ module PryDebugger
|
|
142
142
|
|
143
143
|
file, line =
|
144
144
|
case place
|
145
|
-
when
|
145
|
+
when /^(\d+)$/ # Line number only
|
146
146
|
line = $1
|
147
147
|
unless PryDebugger.check_file_context(target)
|
148
148
|
raise ArgumentError, 'Line number declaration valid only in a file context.'
|
149
149
|
end
|
150
150
|
[target.eval('__FILE__'), line]
|
151
|
-
when
|
151
|
+
when /^(.+):(\d+)$/ # File and line number
|
152
152
|
[$1, $2]
|
153
153
|
else # Method or class name
|
154
154
|
self.args = [place]
|
data/lib/pry-debugger/pry_ext.rb
CHANGED
@@ -2,21 +2,22 @@ require 'pry'
|
|
2
2
|
require 'pry-debugger/processor'
|
3
3
|
|
4
4
|
class << Pry
|
5
|
-
alias_method :
|
5
|
+
alias_method :start_without_pry_debugger, :start
|
6
6
|
attr_reader :processor
|
7
7
|
|
8
|
-
def
|
8
|
+
def start_with_pry_debugger(target = TOPLEVEL_BINDING, options = {})
|
9
9
|
@processor ||= PryDebugger::Processor.new
|
10
10
|
|
11
11
|
if target.is_a?(Binding) && PryDebugger.check_file_context(target)
|
12
12
|
# Wrap the processer around the usual Pry.start to catch navigation
|
13
13
|
# commands.
|
14
14
|
@processor.run(true) do
|
15
|
-
|
15
|
+
start_without_pry_debugger(target, options)
|
16
16
|
end
|
17
17
|
else
|
18
18
|
# No need for the tracer unless we have a file context to step through
|
19
|
-
|
19
|
+
start_without_pry_debugger(target, options)
|
20
20
|
end
|
21
21
|
end
|
22
|
+
alias_method :start, :start_with_pry_debugger
|
22
23
|
end
|
@@ -19,14 +19,15 @@ module PryRemote
|
|
19
19
|
end
|
20
20
|
|
21
21
|
# Override to reset our saved global current server session.
|
22
|
-
alias_method :
|
23
|
-
def
|
22
|
+
alias_method :teardown_without_pry_debugger, :teardown
|
23
|
+
def teardown_with_pry_debugger
|
24
24
|
return if @torn
|
25
25
|
|
26
|
-
|
26
|
+
teardown_without_pry_debugger
|
27
27
|
PryDebugger.current_remote_server = nil
|
28
28
|
@torn = true
|
29
29
|
end
|
30
|
+
alias_method :teardown, :teardown_with_pry_debugger
|
30
31
|
end
|
31
32
|
end
|
32
33
|
|
data/lib/pry-debugger/version.rb
CHANGED
data/pry-debugger.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |gem|
|
|
19
19
|
|
20
20
|
# Dependencies
|
21
21
|
gem.required_ruby_version = '>= 1.9.2'
|
22
|
-
gem.add_runtime_dependency 'pry', '~> 0.9.
|
23
|
-
gem.add_runtime_dependency 'debugger', '~> 1.
|
24
|
-
gem.add_development_dependency 'pry-remote', '~> 0.1.
|
22
|
+
gem.add_runtime_dependency 'pry', '~> 0.9.10'
|
23
|
+
gem.add_runtime_dependency 'debugger', '~> 1.2.0'
|
24
|
+
gem.add_development_dependency 'pry-remote', '~> 0.1.6'
|
25
25
|
end
|
metadata
CHANGED
@@ -1,49 +1,64 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pry-debugger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.0
|
5
4
|
prerelease:
|
5
|
+
version: 0.2.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Gopal Patel
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
|
16
|
-
requirement: &70204822544220 !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.9.
|
19
|
+
version: 0.9.10
|
20
|
+
none: false
|
21
|
+
name: pry
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
requirement: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: 0.9.10
|
28
29
|
none: false
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
version_requirements: !ruby/object:Gem::Requirement
|
29
32
|
requirements:
|
30
33
|
- - ~>
|
31
34
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.
|
35
|
+
version: 1.2.0
|
36
|
+
none: false
|
37
|
+
name: debugger
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
40
|
+
requirement: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - ~>
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: 1.2.0
|
39
45
|
none: false
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
48
|
requirements:
|
41
49
|
- - ~>
|
42
50
|
- !ruby/object:Gem::Version
|
43
|
-
version: 0.1.
|
51
|
+
version: 0.1.6
|
52
|
+
none: false
|
53
|
+
name: pry-remote
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ~>
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 0.1.6
|
61
|
+
none: false
|
47
62
|
description: Combine 'pry' with 'debugger'. Adds 'step', 'next', and 'continue' commands
|
48
63
|
to control execution.
|
49
64
|
email: nixme@stillhope.com
|
@@ -75,20 +90,20 @@ rdoc_options: []
|
|
75
90
|
require_paths:
|
76
91
|
- lib
|
77
92
|
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
-
none: false
|
79
93
|
requirements:
|
80
94
|
- - ! '>='
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: 1.9.2
|
83
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
97
|
none: false
|
98
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
99
|
requirements:
|
86
100
|
- - ! '>='
|
87
101
|
- !ruby/object:Gem::Version
|
88
102
|
version: '0'
|
103
|
+
none: false
|
89
104
|
requirements: []
|
90
105
|
rubyforge_project:
|
91
|
-
rubygems_version: 1.8.
|
106
|
+
rubygems_version: 1.8.23
|
92
107
|
signing_key:
|
93
108
|
specification_version: 3
|
94
109
|
summary: Fast debugging with Pry.
|