pry-stack_explorer 0.2.8pre3 → 0.2.8pre4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,5 @@
1
+ require 'pry'
2
+
1
3
  module PryStackExplorer
2
4
  StackCommands = Pry::CommandSet.new do
3
5
  command "up", "Go up to the caller's context. Accepts optional numeric parameter for how many frames to move up." do |inc_str|
@@ -77,15 +79,14 @@ module PryStackExplorer
77
79
  b_self = b.eval('self')
78
80
  meth_obj = Pry::Method.new(b_self.method(meth)) if meth
79
81
 
80
- type = b.frame_type ? "(#{b.frame_type})" : ""
81
- desc = b.frame_description ? "#{text.bold('Description:')} #{b.frame_description}".ljust(60) :
82
- "#{text.bold('Description:')} #{PryStackExplorer.frame_manager(_pry_).frame_info_for(b)}".ljust(60)
83
- sig = meth ? "#{text.bold('Signature:')} #{se_signature_with_owner(meth_obj)}".ljust(40) : "".ljust(32)
82
+ type = b.frame_type ? "[#{b.frame_type}]" : ""
83
+ desc = b.frame_description ? "#{b.frame_description} in " : "#{PryStackExplorer.frame_manager(_pry_).frame_info_for(b)} in "
84
+ sig = meth ? "#{se_signature_with_owner(meth_obj)}" : ""
84
85
 
85
- slf_class = "#{text.bold('Self.class:')} #{b_self.class}".ljust(40)
86
- path = "#{text.bold("@ File:")} #{b.eval('__FILE__')}:#{b.eval('__LINE__')}"
86
+ slf_class = "#{Pry.view_clip(b_self)}"
87
+ path = "@ #{b.eval('__FILE__')}:#{b.eval('__LINE__')}"
87
88
 
88
- "#{desc} #{slf_class} #{sig} #{type} #{path if verbose}"
89
+ "#{desc} #{slf_class} #{sig} #{path if verbose} #{type}"
89
90
  end
90
91
 
91
92
  def se_signature_with_owner(meth_obj)
@@ -1,3 +1,3 @@
1
1
  module PryStackExplorer
2
- VERSION = "0.2.8pre3"
2
+ VERSION = "0.2.8pre4"
3
3
  end
@@ -22,6 +22,15 @@ module PryStackExplorer
22
22
  Thread.current[:__pry_frame_managers__][_pry_].push FrameManager.new(bindings, _pry_)
23
23
  end
24
24
 
25
+ # Return the complete frame manager stack for the Pry instance
26
+ # @param [Pry] _pry_ The Pry instance associated with the frame
27
+ # managers
28
+ # @return [Array] The stack of Pry::FrameManager objections
29
+ def self.all_frame_managers(_pry_)
30
+ init_frame_hash
31
+ Thread.current[:__pry_frame_managers__][_pry_]
32
+ end
33
+
25
34
  # Delete the currently active frame manager
26
35
  # @param [Pry] _pry_ The Pry instance associated with the frame managers
27
36
  def self.pop_frame_manager(_pry_)
@@ -1,12 +1,13 @@
1
- direc = File.dirname(__FILE__)
2
-
3
- require 'rubygems'
4
- require "#{direc}/../lib/pry-stack_explorer"
5
- require 'bacon'
6
-
7
- puts "Testing pry-stack_explorer version #{PryStackExplorer::VERSION}..."
8
- puts "Ruby version: #{RUBY_VERSION}"
9
-
10
- describe PryStackExplorer do
11
- end
12
-
1
+ require 'rubygems'
2
+
3
+ unless Object.const_defined? 'PryStackExplorer'
4
+ $:.unshift File.expand_path '../../lib', __FILE__
5
+ require 'pry-stack_explorer'
6
+ end
7
+
8
+ require 'bacon'
9
+
10
+ puts "Testing pry-stack_explorer version #{PryStackExplorer::VERSION}..."
11
+ puts "Ruby version: #{RUBY_VERSION}"
12
+
13
+ PE = PryStackExplorer
@@ -0,0 +1,39 @@
1
+ require 'helper'
2
+
3
+ describe PryStackExplorer do
4
+
5
+ before do
6
+ @pry_instance = Pry.new
7
+ @bindings = [binding, binding]
8
+ end
9
+
10
+ after do
11
+ PE.clear_frame_managers(@pry_instance)
12
+ end
13
+
14
+ it "should create and push one new FrameManager" do
15
+ PE.create_and_push_frame_manager(@bindings, @pry_instance)
16
+ PE.frame_manager(@pry_instance).is_a?(PE::FrameManager).should == true
17
+ PE.all_frame_managers(@pry_instance).count.should == 1
18
+ end
19
+
20
+ it "should have the correct bindings" do
21
+ PE.create_and_push_frame_manager(@bindings, @pry_instance)
22
+ PE.frame_manager(@pry_instance).bindings.should == @bindings
23
+ end
24
+
25
+ it "should pop a FrameManager" do
26
+ PE.create_and_push_frame_manager(@bindings, @pry_instance)
27
+ PE.create_and_push_frame_manager(@bindings, @pry_instance)
28
+ PE.pop_frame_manager(@pry_instance)
29
+ PE.all_frame_managers(@pry_instance).count.should == 1
30
+ end
31
+
32
+ it "should clear all FrameManagers for a Pry instance" do
33
+ PE.create_and_push_frame_manager(@bindings, @pry_instance)
34
+ PE.create_and_push_frame_manager(@bindings, @pry_instance)
35
+ PE.clear_frame_managers(@pry_instance)
36
+ PE.all_frame_managers(@pry_instance).count.should == 0
37
+ end
38
+ end
39
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pry-stack_explorer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8pre3
4
+ version: 0.2.8pre4
5
5
  prerelease: 5
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-19 00:00:00.000000000 Z
12
+ date: 2011-12-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: binding_of_caller
16
- requirement: &70151324507000 !ruby/object:Gem::Requirement
16
+ requirement: &70241510740720 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.6.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70151324507000
24
+ version_requirements: *70241510740720
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bacon
27
- requirement: &70151324504220 !ruby/object:Gem::Requirement
27
+ requirement: &70241510738600 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: 1.1.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70151324504220
35
+ version_requirements: *70241510738600
36
36
  description: Walk the stack in a Pry session
37
37
  email: jrmair@gmail.com
38
38
  executables: []
@@ -43,7 +43,8 @@ files:
43
43
  - lib/pry-stack_explorer/frame_manager.rb
44
44
  - lib/pry-stack_explorer/version.rb
45
45
  - lib/pry-stack_explorer.rb
46
- - test/test.rb
46
+ - test/helper.rb
47
+ - test/test_stack_explorer.rb
47
48
  - CHANGELOG
48
49
  - README.md
49
50
  - Rakefile