pry-stack_explorer 0.2.9pre4 → 0.2.9pre5
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.rb +99 -62
- data/lib/pry-stack_explorer/frame_manager.rb +5 -1
- data/lib/pry-stack_explorer/version.rb +1 -1
- data/lib/pry-stack_explorer/when_started_hook.rb +13 -11
- data/pry-stack_explorer.gemspec +15 -15
- data/test/helper.rb +1 -0
- data/test/test_stack_explorer.rb +88 -7
- metadata +45 -52
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.8pre6")
|
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'
|
data/lib/pry-stack_explorer.rb
CHANGED
@@ -10,68 +10,105 @@ require "binding_of_caller"
|
|
10
10
|
|
11
11
|
module PryStackExplorer
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
13
|
+
class << self
|
14
|
+
# @return [Hash] The hash storing all frames for all Pry instances for
|
15
|
+
# the current thread.
|
16
|
+
def frame_hash
|
17
|
+
Thread.current[:__pry_frame_managers__] ||= Hash.new { |h, k| h[k] = [] }
|
18
|
+
end
|
19
|
+
|
20
|
+
# Return the complete frame manager stack for the Pry instance
|
21
|
+
# @param [Pry] _pry_ The Pry instance associated with the frame
|
22
|
+
# managers
|
23
|
+
# @return [Array] The stack of Pry::FrameManager objections
|
24
|
+
def frame_managers(_pry_)
|
25
|
+
frame_hash[_pry_]
|
26
|
+
end
|
27
|
+
|
28
|
+
# Create a `Pry::FrameManager` object and push it onto the frame
|
29
|
+
# manager stack for the relevant `_pry_` instance.
|
30
|
+
# @param [Array] bindings The array of bindings (frames)
|
31
|
+
# @param [Pry] _pry_ The Pry instance associated with the frame manager
|
32
|
+
def create_and_push_frame_manager(bindings, _pry_, options={})
|
33
|
+
fm = FrameManager.new(bindings, _pry_)
|
34
|
+
frame_hash[_pry_].push fm
|
35
|
+
push_helper(fm, options)
|
36
|
+
fm
|
37
|
+
end
|
38
|
+
|
39
|
+
# Update the Pry instance to operate on the specified frame for the
|
40
|
+
# current frame manager.
|
41
|
+
# @param [PryStackExplorer::FrameManager] fm The active frame manager.
|
42
|
+
# @param [Hash] options The options hash.
|
43
|
+
def push_helper(fm, options={})
|
44
|
+
options = {
|
45
|
+
:initial_frame => 0
|
46
|
+
}.merge!(options)
|
47
|
+
|
48
|
+
fm.change_frame_to(options[:initial_frame], false)
|
49
|
+
end
|
50
|
+
|
51
|
+
private :push_helper
|
52
|
+
|
53
|
+
# Delete the currently active frame manager
|
54
|
+
# @param [Pry] _pry_ The Pry instance associated with the frame
|
55
|
+
# managers.
|
56
|
+
# @return [Pry::FrameManager] The popped frame manager.
|
57
|
+
def pop_frame_manager(_pry_)
|
58
|
+
return if frame_managers(_pry_).empty?
|
59
|
+
|
60
|
+
popped_fm = frame_managers(_pry_).pop
|
61
|
+
pop_helper(popped_fm, _pry_)
|
62
|
+
popped_fm
|
63
|
+
end
|
64
|
+
|
65
|
+
# Restore the Pry instance to operate on the previous
|
66
|
+
# binding. Also responsible for restoring Pry instance's backtrace.
|
67
|
+
# @param [Pry::FrameManager] popped_fm The recently popped frame manager.
|
68
|
+
# @param [Pry] _pry_ The Pry instance associated with the frame managers.
|
69
|
+
def pop_helper(popped_fm, _pry_)
|
70
|
+
if frame_managers(_pry_).empty?
|
71
|
+
if _pry_.binding_stack.empty?
|
72
|
+
_pry_.binding_stack.push popped_fm.prior_binding
|
73
|
+
else
|
74
|
+
_pry_.binding_stack[-1] = popped_fm.prior_binding
|
75
|
+
end
|
76
|
+
|
77
|
+
frame_hash.delete(_pry_)
|
78
|
+
else
|
79
|
+
frame_manager(_pry_).refresh_frame(false)
|
80
|
+
end
|
81
|
+
|
82
|
+
# restore backtrace
|
83
|
+
_pry_.backtrace = popped_fm.prior_backtrace
|
84
|
+
end
|
85
|
+
|
86
|
+
private :pop_helper
|
87
|
+
|
88
|
+
# Clear the stack of frame managers for the Pry instance
|
89
|
+
# @param [Pry] _pry_ The Pry instance associated with the frame managers
|
90
|
+
def clear_frame_managers(_pry_)
|
91
|
+
pop_frame_manager(_pry_) until frame_managers(_pry_).empty?
|
92
|
+
frame_hash.delete(_pry_) # this line should be unnecessary!
|
93
|
+
end
|
94
|
+
|
95
|
+
alias_method :delete_frame_managers, :clear_frame_managers
|
96
|
+
|
97
|
+
# @return [PryStackExplorer::FrameManager] The currently active frame manager
|
98
|
+
def frame_manager(_pry_)
|
99
|
+
frame_hash[_pry_].last
|
100
|
+
end
|
101
|
+
|
102
|
+
# Simple test to check whether two `Binding` objects are equal.
|
103
|
+
# @param [Binding] b1 First binding.
|
104
|
+
# @param [Binding] b2 Second binding.
|
105
|
+
# @return [Boolean] Whether the `Binding`s are equal.
|
106
|
+
def bindings_equal?(b1, b2)
|
107
|
+
(b1.eval('self') == b2.eval('self')) &&
|
108
|
+
(b1.eval('__method__') == b2.eval('__method__')) &&
|
109
|
+
(b1.eval('local_variables').map { |v| b1.eval("#{v}") } ==
|
110
|
+
b2.eval('local_variables').map { |v| b2.eval("#{v}") })
|
111
|
+
end
|
75
112
|
end
|
76
113
|
end
|
77
114
|
|
@@ -3,9 +3,13 @@ module PryStackExplorer
|
|
3
3
|
class FrameManager
|
4
4
|
include Enumerable
|
5
5
|
|
6
|
-
|
6
|
+
# @return [Array<Binding>] The array of bindings that constitute
|
7
|
+
# the call-stack.
|
7
8
|
attr_accessor :bindings
|
8
9
|
|
10
|
+
# @return [Fixnum] The index of the active frame (binding) in the call-stack.
|
11
|
+
attr_accessor :binding_index
|
12
|
+
|
9
13
|
# @return [Hash] A hash for user defined data
|
10
14
|
attr_reader :user
|
11
15
|
|
@@ -4,10 +4,10 @@ module PryStackExplorer
|
|
4
4
|
def caller_bindings(binding_stack)
|
5
5
|
target = binding_stack.last
|
6
6
|
|
7
|
-
if binding.of_caller(
|
8
|
-
drop_number =
|
7
|
+
if binding.of_caller(7).eval('__method__') == :pry
|
8
|
+
drop_number = 9
|
9
9
|
else
|
10
|
-
drop_number =
|
10
|
+
drop_number = 8
|
11
11
|
end
|
12
12
|
|
13
13
|
bindings = binding.callers.drop(drop_number)
|
@@ -24,22 +24,24 @@ module PryStackExplorer
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def call(binding_stack, options, _pry_)
|
27
|
-
options
|
28
|
-
|
29
|
-
|
27
|
+
options = {
|
28
|
+
:call_stack => true,
|
29
|
+
:initial_frame => 0
|
30
|
+
}.merge!(options)
|
30
31
|
|
31
32
|
return if !options[:call_stack]
|
32
33
|
|
33
34
|
if options[:call_stack].is_a?(Array)
|
34
35
|
bindings = options[:call_stack]
|
35
|
-
|
36
|
+
|
37
|
+
if bindings.empty? || !bindings.all? { |v| v.is_a?(Binding) }
|
38
|
+
raise ArgumentError, ":call_stack must be an array of bindings"
|
39
|
+
end
|
36
40
|
else
|
37
|
-
|
41
|
+
bindings = caller_bindings(binding_stack)
|
38
42
|
end
|
39
43
|
|
40
|
-
|
41
|
-
PryStackExplorer.create_and_push_frame_manager(bindings, _pry_)
|
42
|
-
PryStackExplorer.frame_manager(_pry_).set_binding_index_safely(initial_frame)
|
44
|
+
PryStackExplorer.create_and_push_frame_manager bindings, _pry_, :initial_frame => options[:initial_frame]
|
43
45
|
end
|
44
46
|
end
|
45
47
|
end
|
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 = %q{pry-stack_explorer}
|
5
|
+
s.version = "0.2.9pre5"
|
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 = [%q{John Mair (banisterfiend)}]
|
9
|
+
s.date = %q{2012-01-20}
|
10
|
+
s.description = %q{Walk the stack in a Pry session}
|
11
|
+
s.email = %q{jrmair@gmail.com}
|
12
|
+
s.files = [%q{.gemtest}, %q{.gitignore}, %q{.travis.yml}, %q{.yardopts}, %q{CHANGELOG}, %q{Gemfile}, %q{LICENSE}, %q{README.md}, %q{Rakefile}, %q{examples/example.rb}, %q{examples/example2.rb}, %q{lib/pry-stack_explorer.rb}, %q{lib/pry-stack_explorer/commands.rb}, %q{lib/pry-stack_explorer/frame_manager.rb}, %q{lib/pry-stack_explorer/version.rb}, %q{lib/pry-stack_explorer/when_started_hook.rb}, %q{pry-stack_explorer.gemspec}, %q{test/helper.rb}, %q{test/test_commands.rb}, %q{test/test_frame_manager.rb}, %q{test/test_stack_explorer.rb}, %q{tester.rb}]
|
13
|
+
s.homepage = %q{https://github.com/banister}
|
14
|
+
s.require_paths = [%q{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 = %q{1.8.6}
|
17
|
+
s.summary = %q{Walk the stack in a Pry session}
|
18
|
+
s.test_files = [%q{test/helper.rb}, %q{test/test_commands.rb}, %q{test/test_frame_manager.rb}, %q{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.8pre6"])
|
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.8pre6"])
|
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.8pre6"])
|
37
37
|
s.add_dependency(%q<bacon>, ["~> 1.1.0"])
|
38
38
|
s.add_dependency(%q<rake>, ["~> 0.9"])
|
39
39
|
end
|
data/test/helper.rb
CHANGED
data/test/test_stack_explorer.rb
CHANGED
@@ -33,9 +33,9 @@ describe PryStackExplorer do
|
|
33
33
|
class << o; attr_reader :frame; end
|
34
34
|
def o.bing() bong end
|
35
35
|
def o.bong() bang end
|
36
|
-
def o.bang() Pry.start(binding, :initial_frame => 1) end
|
36
|
+
def o.bang() Pry.start(binding, :initial_frame => 1) end #*
|
37
37
|
|
38
|
-
redirect_pry_io(StringIO.new("@frame = __method__\nexit\n"), out=StringIO.new) do
|
38
|
+
redirect_pry_io(StringIO.new("@frame = __method__\nexit-all\n"), out=StringIO.new) do
|
39
39
|
o.bing
|
40
40
|
end
|
41
41
|
|
@@ -93,14 +93,20 @@ describe PryStackExplorer do
|
|
93
93
|
out.string.should =~ /beta.*?gamma.*?alpha/m
|
94
94
|
end
|
95
95
|
|
96
|
-
it 'should raise if custom call stack does not contain bindings
|
97
|
-
|
98
|
-
|
96
|
+
it 'should raise if custom call stack does not contain bindings' do
|
97
|
+
o = OpenStruct.new
|
98
|
+
redirect_pry_io(StringIO.new("self.errors = _pry_.hooks.errors\nexit\n")) do
|
99
|
+
Pry.start(o, :call_stack => [1, 2, 3])
|
99
100
|
end
|
101
|
+
o.errors.first.is_a?(ArgumentError).should == true
|
102
|
+
end
|
100
103
|
|
101
|
-
|
102
|
-
|
104
|
+
it 'should raise if custom call stack is empty' do
|
105
|
+
o = OpenStruct.new
|
106
|
+
redirect_pry_io(StringIO.new("self.errors = _pry_.hooks.errors\nexit\n")) do
|
107
|
+
Pry.start o, :call_stack => []
|
103
108
|
end
|
109
|
+
o.errors.first.is_a?(ArgumentError).should == true
|
104
110
|
end
|
105
111
|
end
|
106
112
|
end
|
@@ -123,6 +129,12 @@ describe PryStackExplorer do
|
|
123
129
|
PE.frame_managers(@pry_instance).count.should == 1
|
124
130
|
end
|
125
131
|
|
132
|
+
it "should refresh Pry instance to use FrameManager's active binding" do
|
133
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
134
|
+
@pry_instance.binding_stack.size.should == 1
|
135
|
+
@pry_instance.binding_stack.first.should == @bindings.first
|
136
|
+
end
|
137
|
+
|
126
138
|
it 'should save prior binding in FrameManager instance' do
|
127
139
|
_pry_ = Pry.new
|
128
140
|
_pry_.binding_stack.push(b=binding)
|
@@ -130,6 +142,28 @@ describe PryStackExplorer do
|
|
130
142
|
PryStackExplorer.frame_manager(_pry_).prior_binding.should == b
|
131
143
|
end
|
132
144
|
|
145
|
+
describe ":initial_frame option" do
|
146
|
+
it 'should start on specified frame' do
|
147
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance, :initial_frame => 1)
|
148
|
+
@pry_instance.binding_stack.size.should == 1
|
149
|
+
@pry_instance.binding_stack.first.should == @bindings.last
|
150
|
+
end
|
151
|
+
|
152
|
+
describe "negative numbers" do
|
153
|
+
it 'should work with negative frame number (-1)' do
|
154
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance, :initial_frame => -1)
|
155
|
+
@pry_instance.binding_stack.size.should == 1
|
156
|
+
@pry_instance.binding_stack.first.should == @bindings.last
|
157
|
+
end
|
158
|
+
|
159
|
+
it 'should work with negative frame number (-2)' do
|
160
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance, :initial_frame => -2)
|
161
|
+
@pry_instance.binding_stack.size.should == 1
|
162
|
+
@pry_instance.binding_stack.first.should == @bindings.first
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
133
167
|
it 'should save prior backtrace in FrameManager instance' do
|
134
168
|
_pry_ = Pry.new
|
135
169
|
_pry_.backtrace = ["my backtrace"]
|
@@ -209,6 +243,53 @@ describe PryStackExplorer do
|
|
209
243
|
PE.frame_hash.has_key?(@pry_instance).should == false
|
210
244
|
end
|
211
245
|
|
246
|
+
it 'should not change size of binding_stack when popping' do
|
247
|
+
bindings = [bindings, bindings]
|
248
|
+
PE.create_and_push_frame_manager(bindings, @pry_instance)
|
249
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
250
|
+
PE.pop_frame_manager(@pry_instance)
|
251
|
+
@pry_instance.binding_stack.size.should == 1
|
252
|
+
end
|
253
|
+
|
254
|
+
it 'should return nil when popping non-existent frame manager' do
|
255
|
+
PE.pop_frame_manager(@pry_instance).should == nil
|
256
|
+
end
|
257
|
+
|
258
|
+
describe "restoring previous binding" do
|
259
|
+
it 'should restore previous binding for Pry instance on pop, where previous binding is not first frame' do
|
260
|
+
bindings = [binding, binding]
|
261
|
+
PE.create_and_push_frame_manager(bindings, @pry_instance).binding_index = 1
|
262
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
263
|
+
PE.pop_frame_manager(@pry_instance)
|
264
|
+
@pry_instance.binding_stack.first.should == bindings[1]
|
265
|
+
end
|
266
|
+
|
267
|
+
it 'should restore previous binding for Pry instance on pop (previous frame frame manager)' do
|
268
|
+
bindings = [binding, binding]
|
269
|
+
PE.create_and_push_frame_manager(bindings, @pry_instance)
|
270
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
271
|
+
PE.pop_frame_manager(@pry_instance)
|
272
|
+
@pry_instance.binding_stack.first.should == bindings.first
|
273
|
+
end
|
274
|
+
|
275
|
+
it 'should restore previous binding for Pry instance on pop (no previous frame manager)' do
|
276
|
+
b = binding
|
277
|
+
@pry_instance.binding_stack = [b]
|
278
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
279
|
+
PE.pop_frame_manager(@pry_instance)
|
280
|
+
@pry_instance.binding_stack.first.should == b
|
281
|
+
end
|
282
|
+
|
283
|
+
it 'should restore previous binding for Pry instance on pop (no previous frame manager AND no empty binding_stack)' do
|
284
|
+
b = binding
|
285
|
+
@pry_instance.binding_stack = [b]
|
286
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
287
|
+
@pry_instance.binding_stack.clear
|
288
|
+
PE.pop_frame_manager(@pry_instance)
|
289
|
+
@pry_instance.binding_stack.first.should == b
|
290
|
+
end
|
291
|
+
end
|
292
|
+
|
212
293
|
describe "_pry_.backtrace" do
|
213
294
|
it "should restore backtrace when frame is popped" do
|
214
295
|
p1 = Pry.new
|
metadata
CHANGED
@@ -1,70 +1,66 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: pry-stack_explorer
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.9pre5
|
4
5
|
prerelease: 5
|
5
|
-
version: 0.2.9pre4
|
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
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-01-20 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: binding_of_caller
|
17
|
-
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70127592869260 !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
18
|
+
requirements:
|
21
19
|
- - ~>
|
22
|
-
- !ruby/object:Gem::Version
|
20
|
+
- !ruby/object:Gem::Version
|
23
21
|
version: 0.6.1
|
24
22
|
type: :runtime
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: pry
|
28
23
|
prerelease: false
|
29
|
-
|
24
|
+
version_requirements: *70127592869260
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: pry
|
27
|
+
requirement: &70127592897240 !ruby/object:Gem::Requirement
|
30
28
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: 0.9.
|
29
|
+
requirements:
|
30
|
+
- - =
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.9.8pre6
|
35
33
|
type: :runtime
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: bacon
|
39
34
|
prerelease: false
|
40
|
-
|
35
|
+
version_requirements: *70127592897240
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: bacon
|
38
|
+
requirement: &70127592900320 !ruby/object:Gem::Requirement
|
41
39
|
none: false
|
42
|
-
requirements:
|
40
|
+
requirements:
|
43
41
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
42
|
+
- !ruby/object:Gem::Version
|
45
43
|
version: 1.1.0
|
46
44
|
type: :development
|
47
|
-
version_requirements: *id003
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: rake
|
50
45
|
prerelease: false
|
51
|
-
|
46
|
+
version_requirements: *70127592900320
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rake
|
49
|
+
requirement: &70127592903060 !ruby/object:Gem::Requirement
|
52
50
|
none: false
|
53
|
-
requirements:
|
51
|
+
requirements:
|
54
52
|
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version:
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.9'
|
57
55
|
type: :development
|
58
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70127592903060
|
59
58
|
description: Walk the stack in a Pry session
|
60
59
|
email: jrmair@gmail.com
|
61
60
|
executables: []
|
62
|
-
|
63
61
|
extensions: []
|
64
|
-
|
65
62
|
extra_rdoc_files: []
|
66
|
-
|
67
|
-
files:
|
63
|
+
files:
|
68
64
|
- .gemtest
|
69
65
|
- .gitignore
|
70
66
|
- .travis.yml
|
@@ -89,32 +85,29 @@ files:
|
|
89
85
|
- tester.rb
|
90
86
|
homepage: https://github.com/banister
|
91
87
|
licenses: []
|
92
|
-
|
93
88
|
post_install_message:
|
94
89
|
rdoc_options: []
|
95
|
-
|
96
|
-
require_paths:
|
90
|
+
require_paths:
|
97
91
|
- lib
|
98
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
92
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
99
93
|
none: false
|
100
|
-
requirements:
|
101
|
-
- -
|
102
|
-
- !ruby/object:Gem::Version
|
94
|
+
requirements:
|
95
|
+
- - ! '>='
|
96
|
+
- !ruby/object:Gem::Version
|
103
97
|
version: 1.9.2
|
104
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
99
|
none: false
|
106
|
-
requirements:
|
107
|
-
- -
|
108
|
-
- !ruby/object:Gem::Version
|
100
|
+
requirements:
|
101
|
+
- - ! '>'
|
102
|
+
- !ruby/object:Gem::Version
|
109
103
|
version: 1.3.1
|
110
104
|
requirements: []
|
111
|
-
|
112
105
|
rubyforge_project:
|
113
|
-
rubygems_version: 1.8.
|
106
|
+
rubygems_version: 1.8.6
|
114
107
|
signing_key:
|
115
108
|
specification_version: 3
|
116
109
|
summary: Walk the stack in a Pry session
|
117
|
-
test_files:
|
110
|
+
test_files:
|
118
111
|
- test/helper.rb
|
119
112
|
- test/test_commands.rb
|
120
113
|
- test/test_frame_manager.rb
|