pry-stack_explorer 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -138,31 +138,38 @@ module PryStackExplorer
138
138
  opt.on :v, :verbose, "Include extra information."
139
139
  end
140
140
 
141
+ def memoized_info(index, b, verbose)
142
+ frame_manager.user[:frame_info] ||= Hash.new { |h, k| h[k] = [] }
143
+
144
+ if verbose
145
+ frame_manager.user[:frame_info][:v][index] ||= frame_info(b, verbose)
146
+ else
147
+ frame_manager.user[:frame_info][:normal][index] ||= frame_info(b, verbose)
148
+ end
149
+ end
150
+
141
151
  def process
142
152
  if !frame_manager
143
153
  output.puts "No caller stack available!"
144
154
  else
145
- if !frame_manager.user[:stack_content]
146
- content = ""
147
- content << "\n#{text.bold("Showing all accessible frames in stack (#{frame_manager.bindings.size} in total):")}\n--\n"
148
-
149
- frame_manager.each_with_index do |b, i|
150
- if i == frame_manager.binding_index
151
- content << "=> ##{i} #{frame_info(b, opts[:v])}\n"
152
- else
153
- content << " ##{i} #{frame_info(b, opts[:v])}\n"
154
- end
155
+ content = ""
156
+ content << "\n#{text.bold("Showing all accessible frames in stack (#{frame_manager.bindings.size} in total):")}\n--\n"
157
+
158
+ frame_manager.each_with_index do |b, i|
159
+ if i == frame_manager.binding_index
160
+ content << "=> ##{i} #{memoized_info(i, b, opts[:v])}\n"
161
+ else
162
+ content << " ##{i} #{memoized_info(i, b, opts[:v])}\n"
155
163
  end
156
-
157
- frame_manager.user[:stack_content] = content
158
164
  end
159
165
 
160
- stagger_output frame_manager.user[:stack_content]
166
+ stagger_output content
161
167
  end
162
- end
163
168
 
169
+ end
164
170
  end
165
171
 
172
+
166
173
  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
167
174
  include FrameHelpers
168
175
 
@@ -1,3 +1,3 @@
1
1
  module PryStackExplorer
2
- VERSION = "0.3.4"
2
+ VERSION = "0.3.5"
3
3
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "pry-stack_explorer"
5
- s.version = "0.3.4"
5
+ s.version = "0.3.5"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["John Mair (banisterfiend)"]
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
  s.homepage = "https://github.com/banister"
14
14
  s.require_paths = ["lib"]
15
15
  s.required_ruby_version = Gem::Requirement.new(">= 1.9.2")
16
- s.rubygems_version = "1.8.15"
16
+ s.rubygems_version = "1.8.11"
17
17
  s.summary = "Walk the stack in a Pry session"
18
18
  s.test_files = ["test/helper.rb", "test/test_commands.rb", "test/test_frame_manager.rb", "test/test_stack_explorer.rb"]
19
19
 
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.3.4
3
+ version: !ruby/object:Gem::Version
5
4
  prerelease:
5
+ version: 0.3.5
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
- date: 2012-02-07 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
12
+
13
+ date: 2012-02-07 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
15
16
  name: binding_of_caller
16
- requirement: &70185156515620 !ruby/object:Gem::Requirement
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.2
22
24
  type: :runtime
23
- prerelease: false
24
- version_requirements: *70185156515620
25
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
26
27
  name: pry
27
- requirement: &70185156515040 !ruby/object:Gem::Requirement
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
28
30
  none: false
29
- requirements:
31
+ requirements:
30
32
  - - ~>
31
- - !ruby/object:Gem::Version
33
+ - !ruby/object:Gem::Version
32
34
  version: 0.9.8
33
35
  type: :runtime
34
- prerelease: false
35
- version_requirements: *70185156515040
36
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
37
38
  name: bacon
38
- requirement: &70185156514500 !ruby/object:Gem::Requirement
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
- prerelease: false
46
- version_requirements: *70185156514500
47
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
48
49
  name: rake
49
- requirement: &70185156513980 !ruby/object:Gem::Requirement
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: '0.9'
55
+ - !ruby/object:Gem::Version
56
+ version: "0.9"
55
57
  type: :development
56
- prerelease: false
57
- version_requirements: *70185156513980
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
- files:
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
- require_paths:
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
103
- version: '0'
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: "0"
104
110
  requirements: []
111
+
105
112
  rubyforge_project:
106
- rubygems_version: 1.8.15
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