pry-stack_explorer 0.2.8pre7 → 0.2.8pre8
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 +5 -2
- data/lib/pry-stack_explorer.rb +24 -15
- data/lib/pry-stack_explorer/commands.rb +17 -15
- data/lib/pry-stack_explorer/version.rb +1 -1
- data/pry-stack_explorer.gemspec +16 -15
- data/test/helper.rb +73 -0
- data/test/test_stack_explorer.rb +168 -105
- 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.8pre3")
|
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'
|
@@ -60,6 +60,9 @@ task :test do
|
|
60
60
|
sh "bacon -Itest -rubygems -a -q"
|
61
61
|
end
|
62
62
|
|
63
|
+
desc "generate gemspec"
|
64
|
+
task :gemspec => "ruby:gemspec"
|
65
|
+
|
63
66
|
namespace :ruby do
|
64
67
|
spec = Gem::Specification.new do |s|
|
65
68
|
apply_spec_defaults(s)
|
@@ -80,7 +83,7 @@ namespace :ruby do
|
|
80
83
|
end
|
81
84
|
|
82
85
|
desc "build all platform gems at once"
|
83
|
-
task :gems => [:clean, :rmgems, "ruby:gem"]
|
86
|
+
task :gems => [:clean, :rmgems, :gemspec, "ruby:gem"]
|
84
87
|
|
85
88
|
desc "remove all platform gems"
|
86
89
|
task :rmgems => ["ruby:clobber_package"]
|
data/lib/pry-stack_explorer.rb
CHANGED
@@ -66,23 +66,32 @@ Pry.config.hooks.add_hook(:after_session, :delete_frame_manager) do |_, _, _pry_
|
|
66
66
|
PryStackExplorer.clear_frame_managers(_pry_)
|
67
67
|
end
|
68
68
|
|
69
|
-
Pry.config.hooks.add_hook(:when_started, :save_caller_bindings) do |binding_stack, _pry_|
|
70
|
-
|
69
|
+
Pry.config.hooks.add_hook(:when_started, :save_caller_bindings) do |binding_stack, options, _pry_|
|
70
|
+
options[:call_stack] = true unless options.has_key?(:call_stack)
|
71
71
|
|
72
|
-
if
|
73
|
-
drop_number = 7
|
74
|
-
else
|
75
|
-
drop_number = 6
|
76
|
-
end
|
72
|
+
next if !options[:call_stack]
|
77
73
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
74
|
+
if options[:call_stack].is_a?(Array)
|
75
|
+
bindings = options[:call_stack]
|
76
|
+
raise ArgumentError, ":call_stack must be an array of bindings" if bindings.empty? || !bindings.all? { |v| v.is_a?(Binding) }
|
77
|
+
else
|
78
|
+
target = binding_stack.last
|
79
|
+
|
80
|
+
if binding.of_caller(6).eval('__method__') == :pry
|
81
|
+
drop_number = 7
|
82
|
+
else
|
83
|
+
drop_number = 6
|
84
|
+
end
|
85
|
+
|
86
|
+
bindings = binding.callers.drop(drop_number)
|
87
|
+
|
88
|
+
# Use the binding returned by #of_caller if possible (as we get
|
89
|
+
# access to frame_type).
|
90
|
+
# Otherwise stick to the given binding (target).
|
91
|
+
if !PryStackExplorer.bindings_equal?(target, bindings.first)
|
92
|
+
bindings.shift
|
93
|
+
bindings.unshift(target)
|
94
|
+
end
|
86
95
|
end
|
87
96
|
|
88
97
|
binding_stack.replace([bindings.first])
|
@@ -28,8 +28,8 @@ module PryStackExplorer
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
-
|
32
|
-
|
31
|
+
command_class "show-stack", "Show all frames" do
|
32
|
+
def options(opt)
|
33
33
|
opt.banner unindent <<-USAGE
|
34
34
|
Usage: show-stack [OPTIONS]
|
35
35
|
Show all accessible stack frames.
|
@@ -39,21 +39,23 @@ module PryStackExplorer
|
|
39
39
|
opt.on :v, :verbose, "Include extra information."
|
40
40
|
end
|
41
41
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
42
|
+
def process
|
43
|
+
if !PryStackExplorer.frame_manager(_pry_)
|
44
|
+
output.puts "No caller stack available!"
|
45
|
+
else
|
46
|
+
content = ""
|
47
|
+
content << "\n#{text.bold('Showing all accessible frames in stack:')}\n--\n"
|
48
|
+
|
49
|
+
PryStackExplorer.frame_manager(_pry_).each_with_index do |b, i|
|
50
|
+
if i == PryStackExplorer.frame_manager(_pry_).binding_index
|
51
|
+
content << "=> ##{i} #{frame_info(b, opts[:v])}\n"
|
52
|
+
else
|
53
|
+
content << " ##{i} #{frame_info(b, opts[:v])}\n"
|
54
|
+
end
|
53
55
|
end
|
54
|
-
end
|
55
56
|
|
56
|
-
|
57
|
+
stagger_output content
|
58
|
+
end
|
57
59
|
end
|
58
60
|
end
|
59
61
|
|
data/pry-stack_explorer.gemspec
CHANGED
@@ -1,38 +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.8pre8"
|
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 = [
|
15
|
-
s.
|
16
|
-
s.
|
17
|
-
s.
|
8
|
+
s.authors = ["John Mair (banisterfiend)"]
|
9
|
+
s.date = "2012-01-05"
|
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", "pry-stack_explorer.gemspec", "test/helper.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
|
+
s.required_ruby_version = Gem::Requirement.new(">= 1.9.2")
|
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_frame_manager.rb", "test/test_stack_explorer.rb"]
|
18
19
|
|
19
20
|
if s.respond_to? :specification_version then
|
20
21
|
s.specification_version = 3
|
21
22
|
|
22
23
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
23
24
|
s.add_runtime_dependency(%q<binding_of_caller>, ["~> 0.6.1"])
|
24
|
-
s.add_runtime_dependency(%q<pry>, ["= 0.9.
|
25
|
+
s.add_runtime_dependency(%q<pry>, ["= 0.9.8pre3"])
|
25
26
|
s.add_development_dependency(%q<bacon>, ["~> 1.1.0"])
|
26
27
|
s.add_development_dependency(%q<rake>, ["~> 0.9"])
|
27
28
|
else
|
28
29
|
s.add_dependency(%q<binding_of_caller>, ["~> 0.6.1"])
|
29
|
-
s.add_dependency(%q<pry>, ["= 0.9.
|
30
|
+
s.add_dependency(%q<pry>, ["= 0.9.8pre3"])
|
30
31
|
s.add_dependency(%q<bacon>, ["~> 1.1.0"])
|
31
32
|
s.add_dependency(%q<rake>, ["~> 0.9"])
|
32
33
|
end
|
33
34
|
else
|
34
35
|
s.add_dependency(%q<binding_of_caller>, ["~> 0.6.1"])
|
35
|
-
s.add_dependency(%q<pry>, ["= 0.9.
|
36
|
+
s.add_dependency(%q<pry>, ["= 0.9.8pre3"])
|
36
37
|
s.add_dependency(%q<bacon>, ["~> 1.1.0"])
|
37
38
|
s.add_dependency(%q<rake>, ["~> 0.9"])
|
38
39
|
end
|
data/test/helper.rb
CHANGED
@@ -11,3 +11,76 @@ puts "Testing pry-stack_explorer version #{PryStackExplorer::VERSION}..."
|
|
11
11
|
puts "Ruby version: #{RUBY_VERSION}"
|
12
12
|
|
13
13
|
PE = PryStackExplorer
|
14
|
+
|
15
|
+
class << Pry
|
16
|
+
alias_method :orig_reset_defaults, :reset_defaults
|
17
|
+
def reset_defaults
|
18
|
+
orig_reset_defaults
|
19
|
+
|
20
|
+
Pry.color = false
|
21
|
+
Pry.pager = false
|
22
|
+
Pry.config.should_load_rc = false
|
23
|
+
Pry.config.plugins.enabled = false
|
24
|
+
Pry.config.history.should_load = false
|
25
|
+
Pry.config.history.should_save = false
|
26
|
+
Pry.config.auto_indent = false
|
27
|
+
Pry.config.hooks = Pry::Hooks.new
|
28
|
+
Pry.config.collision_warning = false
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
#Pry.config.hooks.clear(:before_session)
|
33
|
+
|
34
|
+
AfterSessionHook = Pry.config.hooks.get_hook(:after_session, :delete_frame_manager)
|
35
|
+
WhenStartedHook = Pry.config.hooks.get_hook(:when_started, :save_caller_bindings)
|
36
|
+
Pry.reset_defaults
|
37
|
+
|
38
|
+
class InputTester
|
39
|
+
def initialize(*actions)
|
40
|
+
if actions.last.is_a?(Hash) && actions.last.keys == [:history]
|
41
|
+
@hist = actions.pop[:history]
|
42
|
+
end
|
43
|
+
@orig_actions = actions.dup
|
44
|
+
@actions = actions
|
45
|
+
end
|
46
|
+
|
47
|
+
def readline(*)
|
48
|
+
@actions.shift.tap{ |line| @hist << line if @hist }
|
49
|
+
end
|
50
|
+
|
51
|
+
def rewind
|
52
|
+
@actions = @orig_actions.dup
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# Set I/O streams.
|
57
|
+
#
|
58
|
+
# Out defaults to an anonymous StringIO.
|
59
|
+
#
|
60
|
+
def redirect_pry_io(new_in, new_out = StringIO.new)
|
61
|
+
old_in = Pry.input
|
62
|
+
old_out = Pry.output
|
63
|
+
|
64
|
+
Pry.input = new_in
|
65
|
+
Pry.output = new_out
|
66
|
+
begin
|
67
|
+
yield
|
68
|
+
ensure
|
69
|
+
Pry.input = old_in
|
70
|
+
Pry.output = old_out
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def mock_pry(*args)
|
75
|
+
|
76
|
+
binding = args.first.is_a?(Binding) ? args.shift : binding()
|
77
|
+
|
78
|
+
input = InputTester.new(*args)
|
79
|
+
output = StringIO.new
|
80
|
+
|
81
|
+
redirect_pry_io(input, output) do
|
82
|
+
binding.pry
|
83
|
+
end
|
84
|
+
|
85
|
+
output.string
|
86
|
+
end
|
data/test/test_stack_explorer.rb
CHANGED
@@ -1,105 +1,168 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
describe PryStackExplorer do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
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
|
-
bindings = [binding, binding]
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
end
|
105
|
-
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe PryStackExplorer do
|
4
|
+
|
5
|
+
describe "Pry.start" do
|
6
|
+
before do
|
7
|
+
Pry.config.hooks.add_hook(:when_started, :save_caller_bindings, &WhenStartedHook)
|
8
|
+
Pry.config.hooks.add_hook(:after_session, :delete_frame_manager, &AfterSessionHook)
|
9
|
+
end
|
10
|
+
|
11
|
+
after do
|
12
|
+
Pry.config.hooks.delete_hook(:when_started, :save_caller_bindings)
|
13
|
+
Pry.config.hooks.delete_hook(:after_session, :delete_frame_manager)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should invoke a session with the call stack set' do
|
17
|
+
o = Object.new
|
18
|
+
def o.bing() bong end
|
19
|
+
def o.bong() bang end
|
20
|
+
def o.bang() Pry.start(binding) end
|
21
|
+
|
22
|
+
redirect_pry_io(StringIO.new("show-stack\nexit\n"), out=StringIO.new) do
|
23
|
+
o.bing
|
24
|
+
end
|
25
|
+
|
26
|
+
out.string.should =~ /bang.*?bong.*?bing/m
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should set no call stack when :call_stack => false' do
|
30
|
+
o = Object.new
|
31
|
+
def o.bing() bong end
|
32
|
+
def o.bong() bang end
|
33
|
+
def o.bang() Pry.start(binding, :call_stack => false) end
|
34
|
+
|
35
|
+
redirect_pry_io(StringIO.new("show-stack\nexit\n"), out=StringIO.new) do
|
36
|
+
o.bing
|
37
|
+
end
|
38
|
+
|
39
|
+
out.string.should =~ /No caller stack/
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should set custom call stack when :call_stack => [b1, b2]' do
|
43
|
+
o = Object.new
|
44
|
+
def o.alpha() binding end
|
45
|
+
def o.beta() binding end
|
46
|
+
def o.gamma() binding end
|
47
|
+
|
48
|
+
redirect_pry_io(StringIO.new("show-stack\nexit\n"), out=StringIO.new) do
|
49
|
+
Pry.start(binding, :call_stack => [o.beta, o.gamma, o.alpha])
|
50
|
+
end
|
51
|
+
|
52
|
+
out.string.should =~ /beta.*?gamma.*?alpha/m
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should raise if custom call stack does not contain bindings or is empty' do
|
56
|
+
redirect_pry_io(StringIO.new("show-stack\nexit\n"), out=StringIO.new) do
|
57
|
+
lambda { Pry.start(binding, :call_stack => [1, 2, 3]) }.should.raise ArgumentError
|
58
|
+
end
|
59
|
+
|
60
|
+
redirect_pry_io(StringIO.new("show-stack\nexit\n"), out=StringIO.new) do
|
61
|
+
lambda { Pry.start(binding, :call_stack => []) }.should.raise ArgumentError
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "unit tests for PryStackExplorer class methods" do
|
67
|
+
before do
|
68
|
+
@pry_instance = Pry.new
|
69
|
+
@bindings = [binding, binding]
|
70
|
+
end
|
71
|
+
|
72
|
+
after do
|
73
|
+
PE.clear_frame_managers(@pry_instance)
|
74
|
+
end
|
75
|
+
|
76
|
+
describe "PryStackExplorer.create_and_push_frame_manager" do
|
77
|
+
|
78
|
+
it "should create and push one new FrameManager" do
|
79
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
80
|
+
PE.frame_manager(@pry_instance).is_a?(PE::FrameManager).should == true
|
81
|
+
PE.all_frame_managers(@pry_instance).count.should == 1
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should create and push multiple FrameManagers" do
|
85
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
86
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
87
|
+
PE.all_frame_managers(@pry_instance).count.should == 2
|
88
|
+
end
|
89
|
+
|
90
|
+
it 'should push FrameManagers to stacks based on Pry instance' do
|
91
|
+
p2 = Pry.new
|
92
|
+
bindings = [binding, binding]
|
93
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
94
|
+
PE.create_and_push_frame_manager(bindings, p2)
|
95
|
+
PE.all_frame_managers(@pry_instance).count.should == 1
|
96
|
+
PE.all_frame_managers(p2).count.should == 1
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
describe "PryStackExplorer.frame_manager" do
|
101
|
+
it "should have the correct bindings" do
|
102
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
103
|
+
PE.frame_manager(@pry_instance).bindings.should == @bindings
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should return the last pushed FrameManager" do
|
107
|
+
bindings = [binding, binding]
|
108
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
109
|
+
PE.create_and_push_frame_manager(bindings, @pry_instance)
|
110
|
+
PE.frame_manager(@pry_instance).bindings.should == bindings
|
111
|
+
end
|
112
|
+
|
113
|
+
it "should return the correct FrameManager for the given Pry instance" do
|
114
|
+
bindings = [binding, binding]
|
115
|
+
p2 = Pry.new
|
116
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
117
|
+
PE.create_and_push_frame_manager(bindings, p2)
|
118
|
+
PE.frame_manager(@pry_instance).bindings.should == @bindings
|
119
|
+
PE.frame_manager(p2).bindings.should == bindings
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
describe "PryStackExplorer.pop_frame_manager" do
|
124
|
+
it "should remove FrameManager from stack" do
|
125
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
126
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
127
|
+
PE.pop_frame_manager(@pry_instance)
|
128
|
+
PE.all_frame_managers(@pry_instance).count.should == 1
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should return the most recently added FrameManager" do
|
132
|
+
bindings = [binding, binding]
|
133
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
134
|
+
PE.create_and_push_frame_manager(bindings, @pry_instance)
|
135
|
+
PE.pop_frame_manager(@pry_instance).bindings.should == bindings
|
136
|
+
end
|
137
|
+
|
138
|
+
it "should remove FrameManager from the appropriate stack based on Pry instance" do
|
139
|
+
p2 = Pry.new
|
140
|
+
bindings = [binding, binding]
|
141
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
142
|
+
PE.create_and_push_frame_manager(bindings, p2)
|
143
|
+
PE.pop_frame_manager(@pry_instance)
|
144
|
+
PE.all_frame_managers(@pry_instance).count.should == 0
|
145
|
+
PE.all_frame_managers(p2).count.should == 1
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
describe "PryStackExplorer.clear_frame_managers" do
|
150
|
+
it "should clear all FrameManagers for a Pry instance" do
|
151
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
152
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
153
|
+
PE.clear_frame_managers(@pry_instance)
|
154
|
+
PE.all_frame_managers(@pry_instance).count.should == 0
|
155
|
+
end
|
156
|
+
|
157
|
+
it "should clear all FrameManagers for a Pry instance" do
|
158
|
+
p2 = Pry.new
|
159
|
+
bindings = [binding, binding]
|
160
|
+
PE.create_and_push_frame_manager(@bindings, @pry_instance)
|
161
|
+
PE.create_and_push_frame_manager(bindings, p2)
|
162
|
+
PE.clear_frame_managers(@pry_instance)
|
163
|
+
PE.all_frame_managers(p2).count.should == 1
|
164
|
+
PE.all_frame_managers(@pry_instance).count.should == 0
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
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.8pre7
|
3
|
+
version: !ruby/object:Gem::Version
|
5
4
|
prerelease: 5
|
5
|
+
version: 0.2.8pre8
|
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-05 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.8pre3
|
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: *70297088891420
|
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
|
@@ -83,29 +87,32 @@ files:
|
|
83
87
|
- tester.rb
|
84
88
|
homepage: https://github.com/banister
|
85
89
|
licenses: []
|
90
|
+
|
86
91
|
post_install_message:
|
87
92
|
rdoc_options: []
|
88
|
-
|
93
|
+
|
94
|
+
require_paths:
|
89
95
|
- lib
|
90
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
97
|
none: false
|
92
|
-
requirements:
|
93
|
-
- -
|
94
|
-
- !ruby/object:Gem::Version
|
98
|
+
requirements:
|
99
|
+
- - ">="
|
100
|
+
- !ruby/object:Gem::Version
|
95
101
|
version: 1.9.2
|
96
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
103
|
none: false
|
98
|
-
requirements:
|
99
|
-
- -
|
100
|
-
- !ruby/object:Gem::Version
|
104
|
+
requirements:
|
105
|
+
- - ">"
|
106
|
+
- !ruby/object:Gem::Version
|
101
107
|
version: 1.3.1
|
102
108
|
requirements: []
|
109
|
+
|
103
110
|
rubyforge_project:
|
104
|
-
rubygems_version: 1.8.
|
111
|
+
rubygems_version: 1.8.11
|
105
112
|
signing_key:
|
106
113
|
specification_version: 3
|
107
114
|
summary: Walk the stack in a Pry session
|
108
|
-
test_files:
|
115
|
+
test_files:
|
109
116
|
- test/helper.rb
|
110
117
|
- test/test_frame_manager.rb
|
111
118
|
- test/test_stack_explorer.rb
|