pry-stack_explorer 0.3.4 → 0.3.5

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.
@@ -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