pry-stack_explorer 0.2.9pre5 → 0.2.9pre7
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/Rakefile +1 -1
- data/lib/pry-stack_explorer/commands.rb +24 -24
- data/lib/pry-stack_explorer/version.rb +1 -1
- data/lib/pry-stack_explorer/when_started_hook.rb +4 -6
- data/pry-stack_explorer.gemspec +15 -15
- data/test/test_commands.rb +10 -0
- metadata +52 -45
data/Rakefile
CHANGED
@@ -23,7 +23,7 @@ def apply_spec_defaults(s)
|
|
23
23
|
s.description = s.summary
|
24
24
|
s.require_path = 'lib'
|
25
25
|
s.add_dependency("binding_of_caller","~>0.6.1")
|
26
|
-
s.add_dependency("pry","0.9.
|
26
|
+
s.add_dependency("pry","0.9.8pre7")
|
27
27
|
s.add_development_dependency("bacon","~>1.1.0")
|
28
28
|
s.add_development_dependency('rake', '~> 0.9')
|
29
29
|
s.required_ruby_version = '>= 1.9.2'
|
@@ -38,10 +38,28 @@ module PryStackExplorer
|
|
38
38
|
"#{type} #{desc} #{sig}\n in #{self_clipped} #{path}"
|
39
39
|
end
|
40
40
|
end
|
41
|
+
|
42
|
+
def signature_with_owner(meth_obj)
|
43
|
+
if !meth_obj.undefined?
|
44
|
+
args = meth_obj.parameters.inject([]) do |arr, (type, name)|
|
45
|
+
name ||= (type == :block ? 'block' : "arg#{arr.size + 1}")
|
46
|
+
arr << case type
|
47
|
+
when :req then name.to_s
|
48
|
+
when :opt then "#{name}=?"
|
49
|
+
when :rest then "*#{name}"
|
50
|
+
when :block then "&#{name}"
|
51
|
+
else '?'
|
52
|
+
end
|
53
|
+
end
|
54
|
+
"#{meth_obj.name_with_owner}(#{args.join(', ')})"
|
55
|
+
else
|
56
|
+
"#{meth_obj.name_with_owner}(UNKNOWN) (undefined method)"
|
57
|
+
end
|
58
|
+
end
|
41
59
|
end
|
42
60
|
|
43
61
|
Commands = Pry::CommandSet.new do
|
44
|
-
|
62
|
+
create_command "up", "Go up to the caller's context. Accepts optional numeric parameter for how many frames to move up." do
|
45
63
|
include FrameHelpers
|
46
64
|
|
47
65
|
banner <<-BANNER
|
@@ -62,7 +80,7 @@ module PryStackExplorer
|
|
62
80
|
end
|
63
81
|
end
|
64
82
|
|
65
|
-
|
83
|
+
create_command "down", "Go down to the callee's context. Accepts optional numeric parameter for how many frames to move down." do
|
66
84
|
include FrameHelpers
|
67
85
|
|
68
86
|
banner <<-BANNER
|
@@ -87,7 +105,7 @@ module PryStackExplorer
|
|
87
105
|
end
|
88
106
|
end
|
89
107
|
|
90
|
-
|
108
|
+
create_command "show-stack", "Show all frames" do
|
91
109
|
include FrameHelpers
|
92
110
|
|
93
111
|
banner <<-BANNER
|
@@ -119,30 +137,12 @@ module PryStackExplorer
|
|
119
137
|
end
|
120
138
|
end
|
121
139
|
|
122
|
-
private
|
123
|
-
def signature_with_owner(meth_obj)
|
124
|
-
if !meth_obj.undefined?
|
125
|
-
args = meth_obj.parameters.inject([]) do |arr, (type, name)|
|
126
|
-
name ||= (type == :block ? 'block' : "arg#{arr.size + 1}")
|
127
|
-
arr << case type
|
128
|
-
when :req then name.to_s
|
129
|
-
when :opt then "#{name}=?"
|
130
|
-
when :rest then "*#{name}"
|
131
|
-
when :block then "&#{name}"
|
132
|
-
else '?'
|
133
|
-
end
|
134
|
-
end
|
135
|
-
"#{meth_obj.name_with_owner}(#{args.join(', ')})"
|
136
|
-
else
|
137
|
-
"#{meth_obj.name_with_owner}(UNKNOWN) (undefined method)"
|
138
|
-
end
|
139
|
-
end
|
140
140
|
end
|
141
141
|
|
142
142
|
# TODO: currently using `arg_string` as a work-around for a Slop
|
143
143
|
# bug where `-2` (negative number) is interpreted as a
|
144
144
|
# non-existent option rather than a non-option
|
145
|
-
|
145
|
+
create_command "frame", "Switch to a particular frame. Accepts numeric parameter for the target frame to switch to (use with show-stack). Negative frame numbers allowed." do
|
146
146
|
include FrameHelpers
|
147
147
|
|
148
148
|
banner <<-BANNER
|
@@ -157,8 +157,8 @@ module PryStackExplorer
|
|
157
157
|
raise Pry::CommandError, "nowhere to go!"
|
158
158
|
else
|
159
159
|
|
160
|
-
if
|
161
|
-
frame_manager.change_frame_to
|
160
|
+
if args[0]
|
161
|
+
frame_manager.change_frame_to args[0].to_i
|
162
162
|
else
|
163
163
|
output.puts "##{frame_manager.binding_index} #{frame_info(target, true)}"
|
164
164
|
end
|
@@ -1,10 +1,8 @@
|
|
1
1
|
module PryStackExplorer
|
2
2
|
class WhenStartedHook
|
3
3
|
|
4
|
-
def caller_bindings(
|
5
|
-
|
6
|
-
|
7
|
-
if binding.of_caller(7).eval('__method__') == :pry
|
4
|
+
def caller_bindings(target)
|
5
|
+
if binding.of_caller(8).eval('__method__') == :pry
|
8
6
|
drop_number = 9
|
9
7
|
else
|
10
8
|
drop_number = 8
|
@@ -23,7 +21,7 @@ module PryStackExplorer
|
|
23
21
|
bindings
|
24
22
|
end
|
25
23
|
|
26
|
-
def call(
|
24
|
+
def call(target, options, _pry_)
|
27
25
|
options = {
|
28
26
|
:call_stack => true,
|
29
27
|
:initial_frame => 0
|
@@ -38,7 +36,7 @@ module PryStackExplorer
|
|
38
36
|
raise ArgumentError, ":call_stack must be an array of bindings"
|
39
37
|
end
|
40
38
|
else
|
41
|
-
bindings = caller_bindings(
|
39
|
+
bindings = caller_bindings(target)
|
42
40
|
end
|
43
41
|
|
44
42
|
PryStackExplorer.create_and_push_frame_manager bindings, _pry_, :initial_frame => options[:initial_frame]
|
data/pry-stack_explorer.gemspec
CHANGED
@@ -1,39 +1,39 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
|
-
s.name =
|
5
|
-
s.version = "0.2.
|
4
|
+
s.name = "pry-stack_explorer"
|
5
|
+
s.version = "0.2.9pre7"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = [
|
9
|
-
s.date =
|
10
|
-
s.description =
|
11
|
-
s.email =
|
12
|
-
s.files = [
|
13
|
-
s.homepage =
|
14
|
-
s.require_paths = [
|
8
|
+
s.authors = ["John Mair (banisterfiend)"]
|
9
|
+
s.date = "2012-01-21"
|
10
|
+
s.description = "Walk the stack in a Pry session"
|
11
|
+
s.email = "jrmair@gmail.com"
|
12
|
+
s.files = [".gemtest", ".gitignore", ".travis.yml", ".yardopts", "CHANGELOG", "Gemfile", "LICENSE", "README.md", "Rakefile", "examples/example.rb", "examples/example2.rb", "lib/pry-stack_explorer.rb", "lib/pry-stack_explorer/commands.rb", "lib/pry-stack_explorer/frame_manager.rb", "lib/pry-stack_explorer/version.rb", "lib/pry-stack_explorer/when_started_hook.rb", "pry-stack_explorer.gemspec", "test/helper.rb", "test/test_commands.rb", "test/test_frame_manager.rb", "test/test_stack_explorer.rb", "tester.rb"]
|
13
|
+
s.homepage = "https://github.com/banister"
|
14
|
+
s.require_paths = ["lib"]
|
15
15
|
s.required_ruby_version = Gem::Requirement.new(">= 1.9.2")
|
16
|
-
s.rubygems_version =
|
17
|
-
s.summary =
|
18
|
-
s.test_files = [
|
16
|
+
s.rubygems_version = "1.8.11"
|
17
|
+
s.summary = "Walk the stack in a Pry session"
|
18
|
+
s.test_files = ["test/helper.rb", "test/test_commands.rb", "test/test_frame_manager.rb", "test/test_stack_explorer.rb"]
|
19
19
|
|
20
20
|
if s.respond_to? :specification_version then
|
21
21
|
s.specification_version = 3
|
22
22
|
|
23
23
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
24
24
|
s.add_runtime_dependency(%q<binding_of_caller>, ["~> 0.6.1"])
|
25
|
-
s.add_runtime_dependency(%q<pry>, ["= 0.9.
|
25
|
+
s.add_runtime_dependency(%q<pry>, ["= 0.9.8pre7"])
|
26
26
|
s.add_development_dependency(%q<bacon>, ["~> 1.1.0"])
|
27
27
|
s.add_development_dependency(%q<rake>, ["~> 0.9"])
|
28
28
|
else
|
29
29
|
s.add_dependency(%q<binding_of_caller>, ["~> 0.6.1"])
|
30
|
-
s.add_dependency(%q<pry>, ["= 0.9.
|
30
|
+
s.add_dependency(%q<pry>, ["= 0.9.8pre7"])
|
31
31
|
s.add_dependency(%q<bacon>, ["~> 1.1.0"])
|
32
32
|
s.add_dependency(%q<rake>, ["~> 0.9"])
|
33
33
|
end
|
34
34
|
else
|
35
35
|
s.add_dependency(%q<binding_of_caller>, ["~> 0.6.1"])
|
36
|
-
s.add_dependency(%q<pry>, ["= 0.9.
|
36
|
+
s.add_dependency(%q<pry>, ["= 0.9.8pre7"])
|
37
37
|
s.add_dependency(%q<bacon>, ["~> 1.1.0"])
|
38
38
|
s.add_dependency(%q<rake>, ["~> 0.9"])
|
39
39
|
end
|
data/test/test_commands.rb
CHANGED
@@ -88,6 +88,16 @@ describe PryStackExplorer::Commands do
|
|
88
88
|
@o.first_method.should == :bing
|
89
89
|
end
|
90
90
|
|
91
|
+
it 'should return info on current frame when given no parameters' do
|
92
|
+
redirect_pry_io(InputTester.new("frame",
|
93
|
+
"exit-all"), out=StringIO.new) do
|
94
|
+
@o.bing
|
95
|
+
end
|
96
|
+
|
97
|
+
out.string.should =~ /\#0.*?bang/
|
98
|
+
out.string.should.not =~ /\#1/
|
99
|
+
end
|
100
|
+
|
91
101
|
describe "negative indices" do
|
92
102
|
it 'should work with negative frame numbers' do
|
93
103
|
o = Object.new
|
metadata
CHANGED
@@ -1,66 +1,70 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: pry-stack_explorer
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.9pre5
|
3
|
+
version: !ruby/object:Gem::Version
|
5
4
|
prerelease: 5
|
5
|
+
version: 0.2.9pre7
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- John Mair (banisterfiend)
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
|
13
|
+
date: 2012-01-21 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
15
16
|
name: binding_of_caller
|
16
|
-
|
17
|
+
prerelease: false
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
19
|
none: false
|
18
|
-
requirements:
|
20
|
+
requirements:
|
19
21
|
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
22
|
+
- !ruby/object:Gem::Version
|
21
23
|
version: 0.6.1
|
22
24
|
type: :runtime
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
25
|
+
version_requirements: *id001
|
26
|
+
- !ruby/object:Gem::Dependency
|
26
27
|
name: pry
|
27
|
-
|
28
|
+
prerelease: false
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
30
|
none: false
|
29
|
-
requirements:
|
30
|
-
- - =
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 0.9.
|
31
|
+
requirements:
|
32
|
+
- - "="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 0.9.8pre7
|
33
35
|
type: :runtime
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
36
|
+
version_requirements: *id002
|
37
|
+
- !ruby/object:Gem::Dependency
|
37
38
|
name: bacon
|
38
|
-
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
41
|
none: false
|
40
|
-
requirements:
|
42
|
+
requirements:
|
41
43
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
44
|
+
- !ruby/object:Gem::Version
|
43
45
|
version: 1.1.0
|
44
46
|
type: :development
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: *id003
|
48
|
+
- !ruby/object:Gem::Dependency
|
48
49
|
name: rake
|
49
|
-
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
52
|
none: false
|
51
|
-
requirements:
|
53
|
+
requirements:
|
52
54
|
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: "0.9"
|
55
57
|
type: :development
|
56
|
-
|
57
|
-
version_requirements: *70127592903060
|
58
|
+
version_requirements: *id004
|
58
59
|
description: Walk the stack in a Pry session
|
59
60
|
email: jrmair@gmail.com
|
60
61
|
executables: []
|
62
|
+
|
61
63
|
extensions: []
|
64
|
+
|
62
65
|
extra_rdoc_files: []
|
63
|
-
|
66
|
+
|
67
|
+
files:
|
64
68
|
- .gemtest
|
65
69
|
- .gitignore
|
66
70
|
- .travis.yml
|
@@ -85,29 +89,32 @@ files:
|
|
85
89
|
- tester.rb
|
86
90
|
homepage: https://github.com/banister
|
87
91
|
licenses: []
|
92
|
+
|
88
93
|
post_install_message:
|
89
94
|
rdoc_options: []
|
90
|
-
|
95
|
+
|
96
|
+
require_paths:
|
91
97
|
- lib
|
92
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
98
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
93
99
|
none: false
|
94
|
-
requirements:
|
95
|
-
- -
|
96
|
-
- !ruby/object:Gem::Version
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
97
103
|
version: 1.9.2
|
98
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
105
|
none: false
|
100
|
-
requirements:
|
101
|
-
- -
|
102
|
-
- !ruby/object:Gem::Version
|
106
|
+
requirements:
|
107
|
+
- - ">"
|
108
|
+
- !ruby/object:Gem::Version
|
103
109
|
version: 1.3.1
|
104
110
|
requirements: []
|
111
|
+
|
105
112
|
rubyforge_project:
|
106
|
-
rubygems_version: 1.8.
|
113
|
+
rubygems_version: 1.8.11
|
107
114
|
signing_key:
|
108
115
|
specification_version: 3
|
109
116
|
summary: Walk the stack in a Pry session
|
110
|
-
test_files:
|
117
|
+
test_files:
|
111
118
|
- test/helper.rb
|
112
119
|
- test/test_commands.rb
|
113
120
|
- test/test_frame_manager.rb
|