pry 0.9.7.3 → 0.9.7.4

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,10 @@
1
+ 5/11/2011 version 0.9.7.4 hotfix
2
+ * ls -M now works in modules (bugfix)
3
+ * added exception msg for bad cd object/path
4
+ * no longer die when encounter exceptions in .pryrc
5
+ * baked in CoolLine support
6
+ * Pry.config.input in .pryrc now respected
7
+
1
8
  28/10/2011 version 0.9.7.3 hotfix-hotfix ;)
2
9
  * really fixed indentation for 'super if' and friends
3
10
  * Fixed indentation for tmux
data/bin/pry CHANGED
@@ -90,5 +90,5 @@ else
90
90
  end
91
91
 
92
92
  # Start the session (running any code passed with -e, if there is any)
93
- Pry.start(context, :input => StringIO.new(exec_string), :input_stack => [Readline])
93
+ Pry.start(context, :input => StringIO.new(exec_string))
94
94
 
@@ -34,8 +34,9 @@ class Pry
34
34
  stack.push(Pry.binding_for(stack.last.eval(context)))
35
35
  end
36
36
 
37
- rescue RescuableException
38
- output.puts "Bad object path: #{arg_string}. Failed trying to resolve: #{context}"
37
+ rescue RescuableException => e
38
+ output.puts "Bad object path: #{arg_string.chomp}. Failed trying to resolve: #{context}"
39
+ output.puts e.inspect
39
40
  resolve_failure = true
40
41
  break
41
42
  end
@@ -8,6 +8,16 @@ class Pry
8
8
  run "show-input"
9
9
  end
10
10
 
11
+ command "get-naked" "" do
12
+ text = %{
13
+ --
14
+ We dont have to take our clothes off to have a good time.
15
+ We could dance & party all night And drink some cherry wine.
16
+ -- Jermaine Stewart }
17
+ output.puts text
18
+ text
19
+ end
20
+
11
21
  command "east-coker", "" do
12
22
  text = %{
13
23
  --
@@ -132,7 +132,7 @@ class Pry
132
132
  # This is required to introspect methods on objects like Net::HTTP::Get that
133
133
  # have overridden the `method` method.
134
134
  def safe_send(obj, method, *args, &block)
135
- (Class === obj ? Class : Object).instance_method(method).bind(obj).call(*args, &block)
135
+ (Module === obj ? Module : Object).instance_method(method).bind(obj).call(*args, &block)
136
136
  end
137
137
 
138
138
  # Get the singleton classes of superclasses that could define methods on
@@ -58,7 +58,11 @@ class Pry
58
58
  def self.load_rc
59
59
  files = RC_FILES.collect { |file_name| File.expand_path(file_name) }.uniq
60
60
  files.each do |file_name|
61
- load(file_name) if File.exists?(file_name)
61
+ begin
62
+ load(file_name) if File.exists?(file_name)
63
+ rescue RescuableException => e
64
+ puts "Error loading #{file_name}: #{e}"
65
+ end
62
66
  end
63
67
  end
64
68
 
@@ -215,9 +215,15 @@ class Pry
215
215
  def re(target=TOPLEVEL_BINDING)
216
216
  target = Pry.binding_for(target)
217
217
 
218
- if input.respond_to?(:completion_proc=)
219
- # Readline tab completion
220
- input.completion_proc = Pry::InputCompleter.build_completion_proc target, instance_eval(&custom_completions)
218
+ compl = Pry::InputCompleter.build_completion_proc(target,
219
+ instance_eval(&custom_completions))
220
+
221
+ if defined? Coolline and input.is_a? Coolline
222
+ input.completion_proc = proc do |cool|
223
+ compl.call cool.completed_word
224
+ end
225
+ elsif input.respond_to? :completion_proc=
226
+ input.completion_proc = compl
221
227
  end
222
228
 
223
229
  # It's not actually redundant to inject them continually as we may have
@@ -452,6 +458,8 @@ class Pry
452
458
  handle_read_errors do
453
459
  if input == Readline
454
460
  input.readline(current_prompt, false) # false since we'll add it manually
461
+ elsif defined? Coolline and input.is_a? Coolline
462
+ input.readline(current_prompt)
455
463
  else
456
464
  if input.method(:readline).arity == 1
457
465
  input.readline(current_prompt)
@@ -1,3 +1,3 @@
1
1
  class Pry
2
- VERSION = "0.9.7.3"
2
+ VERSION = "0.9.7.4"
3
3
  end
@@ -2,20 +2,20 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "pry"
5
- s.version = "0.9.7.1"
5
+ s.version = "0.9.7.4"
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)"]
9
- s.date = "2011-10-26"
9
+ s.date = "2011-11-05"
10
10
  s.description = "An IRB alternative and runtime developer console"
11
11
  s.email = "jrmair@gmail.com"
12
12
  s.executables = ["pry"]
13
- s.files = [".document", ".gemtest", ".gitignore", ".travis.yml", ".yardopts", "CHANGELOG", "CONTRIBUTORS", "Gemfile", "LICENSE", "README.markdown", "Rakefile", "TODO", "bin/pry", "examples/example_basic.rb", "examples/example_command_override.rb", "examples/example_commands.rb", "examples/example_hooks.rb", "examples/example_image_edit.rb", "examples/example_input.rb", "examples/example_input2.rb", "examples/example_output.rb", "examples/example_print.rb", "examples/example_prompt.rb", "examples/helper.rb", "lib/pry.rb", "lib/pry/command_context.rb", "lib/pry/command_processor.rb", "lib/pry/command_set.rb", "lib/pry/commands.rb", "lib/pry/completion.rb", "lib/pry/config.rb", "lib/pry/core_extensions.rb", "lib/pry/custom_completions.rb", "lib/pry/default_commands/basic.rb", "lib/pry/default_commands/context.rb", "lib/pry/default_commands/documentation.rb", "lib/pry/default_commands/easter_eggs.rb", "lib/pry/default_commands/gems.rb", "lib/pry/default_commands/input.rb", "lib/pry/default_commands/introspection.rb", "lib/pry/default_commands/ls.rb", "lib/pry/default_commands/shell.rb", "lib/pry/extended_commands/experimental.rb", "lib/pry/extended_commands/user_command_api.rb", "lib/pry/helpers.rb", "lib/pry/helpers/base_helpers.rb", "lib/pry/helpers/command_helpers.rb", "lib/pry/helpers/options_helpers.rb", "lib/pry/helpers/text.rb", "lib/pry/history.rb", "lib/pry/history_array.rb", "lib/pry/indent.rb", "lib/pry/method.rb", "lib/pry/plugins.rb", "lib/pry/pry_class.rb", "lib/pry/pry_instance.rb", "lib/pry/rbx_method.rb", "lib/pry/rbx_path.rb", "lib/pry/version.rb", "pry.gemspec", "test/helper.rb", "test/test_command_helpers.rb", "test/test_command_processor.rb", "test/test_command_set.rb", "test/test_completion.rb", "test/test_default_commands.rb", "test/test_default_commands/test_context.rb", "test/test_default_commands/test_documentation.rb", "test/test_default_commands/test_gems.rb", "test/test_default_commands/test_input.rb", "test/test_default_commands/test_introspection.rb", "test/test_default_commands/test_ls.rb", "test/test_default_commands/test_shell.rb", "test/test_exception_whitelist.rb", "test/test_history_array.rb", "test/test_indent.rb", "test/test_input_stack.rb", "test/test_method.rb", "test/test_pry.rb", "test/test_pry_history.rb", "test/test_pry_output.rb", "test/test_special_locals.rb", "test/testrc", "wiki/Customizing-pry.md", "wiki/Home.md"]
13
+ s.files = [".document", ".gemtest", ".gitignore", ".travis.yml", ".yardopts", "CHANGELOG", "CONTRIBUTORS", "Gemfile", "LICENSE", "README.markdown", "Rakefile", "TODO", "bin/pry", "examples/example_basic.rb", "examples/example_command_override.rb", "examples/example_commands.rb", "examples/example_hooks.rb", "examples/example_image_edit.rb", "examples/example_input.rb", "examples/example_input2.rb", "examples/example_output.rb", "examples/example_print.rb", "examples/example_prompt.rb", "examples/helper.rb", "lib/pry.rb", "lib/pry/command_context.rb", "lib/pry/command_processor.rb", "lib/pry/command_set.rb", "lib/pry/commands.rb", "lib/pry/completion.rb", "lib/pry/config.rb", "lib/pry/core_extensions.rb", "lib/pry/custom_completions.rb", "lib/pry/default_commands/basic.rb", "lib/pry/default_commands/context.rb", "lib/pry/default_commands/documentation.rb", "lib/pry/default_commands/easter_eggs.rb", "lib/pry/default_commands/gems.rb", "lib/pry/default_commands/input.rb", "lib/pry/default_commands/introspection.rb", "lib/pry/default_commands/ls.rb", "lib/pry/default_commands/shell.rb", "lib/pry/extended_commands/experimental.rb", "lib/pry/extended_commands/user_command_api.rb", "lib/pry/helpers.rb", "lib/pry/helpers/base_helpers.rb", "lib/pry/helpers/command_helpers.rb", "lib/pry/helpers/options_helpers.rb", "lib/pry/helpers/text.rb", "lib/pry/history.rb", "lib/pry/history_array.rb", "lib/pry/indent.rb", "lib/pry/method.rb", "lib/pry/plugins.rb", "lib/pry/pry_class.rb", "lib/pry/pry_instance.rb", "lib/pry/rbx_method.rb", "lib/pry/rbx_path.rb", "lib/pry/version.rb", "pry.gemspec", "test/helper.rb", "test/test_command_helpers.rb", "test/test_command_processor.rb", "test/test_command_set.rb", "test/test_completion.rb", "test/test_default_commands.rb", "test/test_default_commands/test_context.rb", "test/test_default_commands/test_documentation.rb", "test/test_default_commands/test_gems.rb", "test/test_default_commands/test_input.rb", "test/test_default_commands/test_introspection.rb", "test/test_default_commands/test_ls.rb", "test/test_default_commands/test_shell.rb", "test/test_exception_whitelist.rb", "test/test_history_array.rb", "test/test_indent.rb", "test/test_input_stack.rb", "test/test_method.rb", "test/test_pry.rb", "test/test_pry_history.rb", "test/test_pry_output.rb", "test/test_special_locals.rb", "test/testrc", "test/testrcbad", "wiki/Customizing-pry.md", "wiki/Home.md"]
14
14
  s.homepage = "http://pry.github.com"
15
15
  s.require_paths = ["lib"]
16
16
  s.rubygems_version = "1.8.11"
17
17
  s.summary = "An IRB alternative and runtime developer console"
18
- s.test_files = ["test/helper.rb", "test/test_command_helpers.rb", "test/test_command_processor.rb", "test/test_command_set.rb", "test/test_completion.rb", "test/test_default_commands.rb", "test/test_default_commands/test_context.rb", "test/test_default_commands/test_documentation.rb", "test/test_default_commands/test_gems.rb", "test/test_default_commands/test_input.rb", "test/test_default_commands/test_introspection.rb", "test/test_default_commands/test_ls.rb", "test/test_default_commands/test_shell.rb", "test/test_exception_whitelist.rb", "test/test_history_array.rb", "test/test_indent.rb", "test/test_input_stack.rb", "test/test_method.rb", "test/test_pry.rb", "test/test_pry_history.rb", "test/test_pry_output.rb", "test/test_special_locals.rb", "test/testrc"]
18
+ s.test_files = ["test/helper.rb", "test/test_command_helpers.rb", "test/test_command_processor.rb", "test/test_command_set.rb", "test/test_completion.rb", "test/test_default_commands.rb", "test/test_default_commands/test_context.rb", "test/test_default_commands/test_documentation.rb", "test/test_default_commands/test_gems.rb", "test/test_default_commands/test_input.rb", "test/test_default_commands/test_introspection.rb", "test/test_default_commands/test_ls.rb", "test/test_default_commands/test_shell.rb", "test/test_exception_whitelist.rb", "test/test_history_array.rb", "test/test_indent.rb", "test/test_input_stack.rb", "test/test_method.rb", "test/test_pry.rb", "test/test_pry_history.rb", "test/test_pry_output.rb", "test/test_special_locals.rb", "test/testrc", "test/testrcbad"]
19
19
 
20
20
  if s.respond_to? :specification_version then
21
21
  s.specification_version = 3
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
24
24
  s.add_runtime_dependency(%q<ruby_parser>, [">= 2.3.1"])
25
25
  s.add_runtime_dependency(%q<coderay>, ["~> 0.9.8"])
26
26
  s.add_runtime_dependency(%q<slop>, ["~> 2.1.0"])
27
- s.add_runtime_dependency(%q<method_source>, ["~> 0.6.5"])
27
+ s.add_runtime_dependency(%q<method_source>, ["~> 0.6.7"])
28
28
  s.add_development_dependency(%q<bacon>, ["~> 1.1.0"])
29
29
  s.add_development_dependency(%q<open4>, ["~> 1.0.1"])
30
30
  s.add_development_dependency(%q<rake>, ["~> 0.9"])
@@ -32,7 +32,7 @@ Gem::Specification.new do |s|
32
32
  s.add_dependency(%q<ruby_parser>, [">= 2.3.1"])
33
33
  s.add_dependency(%q<coderay>, ["~> 0.9.8"])
34
34
  s.add_dependency(%q<slop>, ["~> 2.1.0"])
35
- s.add_dependency(%q<method_source>, ["~> 0.6.5"])
35
+ s.add_dependency(%q<method_source>, ["~> 0.6.7"])
36
36
  s.add_dependency(%q<bacon>, ["~> 1.1.0"])
37
37
  s.add_dependency(%q<open4>, ["~> 1.0.1"])
38
38
  s.add_dependency(%q<rake>, ["~> 0.9"])
@@ -41,7 +41,7 @@ Gem::Specification.new do |s|
41
41
  s.add_dependency(%q<ruby_parser>, [">= 2.3.1"])
42
42
  s.add_dependency(%q<coderay>, ["~> 0.9.8"])
43
43
  s.add_dependency(%q<slop>, ["~> 2.1.0"])
44
- s.add_dependency(%q<method_source>, ["~> 0.6.5"])
44
+ s.add_dependency(%q<method_source>, ["~> 0.6.7"])
45
45
  s.add_dependency(%q<bacon>, ["~> 1.1.0"])
46
46
  s.add_dependency(%q<open4>, ["~> 1.0.1"])
47
47
  s.add_dependency(%q<rake>, ["~> 0.9"])
@@ -81,6 +81,12 @@ describe "ls" do
81
81
  end
82
82
  end
83
83
 
84
+ describe "when inside Modules" do
85
+ it "should still work" do
86
+ mock_pry("cd Module.new{ def foobie; end }", "ls -M").should =~ /foobie/
87
+ end
88
+ end
89
+
84
90
  describe "constants" do
85
91
  it "should show constants defined on the current module" do
86
92
  mock_pry("class TempFoo1; BARGHL = 1; end", "ls TempFoo1").should =~ /BARGHL/
@@ -322,6 +322,46 @@ describe Pry do
322
322
  Object.const_defined?(:TEST_RC).should == false
323
323
  Pry.config.should_load_rc = false
324
324
  end
325
+
326
+ describe "that raise exceptions" do
327
+ before do
328
+ Pry::RC_FILES << File.expand_path("../testrcbad", __FILE__)
329
+ Pry.config.should_load_rc = true
330
+
331
+ putsed = nil
332
+
333
+ # YUCK! horrible hack to get round the fact that output is not configured
334
+ # at the point this message is printed.
335
+ (class << Pry; self; end).send(:define_method, :puts) { |str|
336
+ putsed = str
337
+ }
338
+
339
+ @doing_it = lambda{
340
+ Pry.start(self, :input => StringIO.new("Object::TEST_AFTER_RAISE=1\nexit-all\n"), :output => Pry::NullOutput)
341
+ putsed
342
+ }
343
+ end
344
+
345
+ after do
346
+ Object.remove_const(:TEST_BEFORE_RAISE)
347
+ Object.remove_const(:TEST_AFTER_RAISE)
348
+ (class << Pry; undef_method :puts; end)
349
+ end
350
+
351
+ it "should not raise exceptions" do
352
+ @doing_it.should.not.raise
353
+ end
354
+
355
+ it "should continue to run pry" do
356
+ @doing_it[]
357
+ Object.const_defined?(:TEST_BEFORE_RAISE).should == true
358
+ Object.const_defined?(:TEST_AFTER_RAISE).should == true
359
+ end
360
+
361
+ it "should output an error" do
362
+ @doing_it[].should =~ /Error loading #{File.expand_path("../testrcbad", __FILE__)}: messin with ya/
363
+ end
364
+ end
325
365
  end
326
366
 
327
367
  describe "nesting" do
@@ -0,0 +1,2 @@
1
+ TEST_BEFORE_RAISE = 1
2
+ raise "messin with ya"
metadata CHANGED
@@ -1,103 +1,100 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: pry
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.7.4
4
5
  prerelease:
5
- version: 0.9.7.3
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
- date: 2011-10-28 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: ruby_parser
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70358296218720 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
23
21
  version: 2.3.1
24
22
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: coderay
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70358296218720
25
+ - !ruby/object:Gem::Dependency
26
+ name: coderay
27
+ requirement: &70358296218040 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
29
+ requirements:
32
30
  - - ~>
33
- - !ruby/object:Gem::Version
31
+ - !ruby/object:Gem::Version
34
32
  version: 0.9.8
35
33
  type: :runtime
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: slop
39
34
  prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70358296218040
36
+ - !ruby/object:Gem::Dependency
37
+ name: slop
38
+ requirement: &70358296217040 !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: 2.1.0
46
44
  type: :runtime
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
49
- name: method_source
50
45
  prerelease: false
51
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *70358296217040
47
+ - !ruby/object:Gem::Dependency
48
+ name: method_source
49
+ requirement: &70358296216480 !ruby/object:Gem::Requirement
52
50
  none: false
53
- requirements:
51
+ requirements:
54
52
  - - ~>
55
- - !ruby/object:Gem::Version
53
+ - !ruby/object:Gem::Version
56
54
  version: 0.6.7
57
55
  type: :runtime
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
60
- name: bacon
61
56
  prerelease: false
62
- requirement: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *70358296216480
58
+ - !ruby/object:Gem::Dependency
59
+ name: bacon
60
+ requirement: &70358296215860 !ruby/object:Gem::Requirement
63
61
  none: false
64
- requirements:
62
+ requirements:
65
63
  - - ~>
66
- - !ruby/object:Gem::Version
64
+ - !ruby/object:Gem::Version
67
65
  version: 1.1.0
68
66
  type: :development
69
- version_requirements: *id005
70
- - !ruby/object:Gem::Dependency
71
- name: open4
72
67
  prerelease: false
73
- requirement: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *70358296215860
69
+ - !ruby/object:Gem::Dependency
70
+ name: open4
71
+ requirement: &70358296215360 !ruby/object:Gem::Requirement
74
72
  none: false
75
- requirements:
73
+ requirements:
76
74
  - - ~>
77
- - !ruby/object:Gem::Version
75
+ - !ruby/object:Gem::Version
78
76
  version: 1.0.1
79
77
  type: :development
80
- version_requirements: *id006
81
- - !ruby/object:Gem::Dependency
82
- name: rake
83
78
  prerelease: false
84
- requirement: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *70358296215360
80
+ - !ruby/object:Gem::Dependency
81
+ name: rake
82
+ requirement: &70358296214740 !ruby/object:Gem::Requirement
85
83
  none: false
86
- requirements:
84
+ requirements:
87
85
  - - ~>
88
- - !ruby/object:Gem::Version
89
- version: "0.9"
86
+ - !ruby/object:Gem::Version
87
+ version: '0.9'
90
88
  type: :development
91
- version_requirements: *id007
89
+ prerelease: false
90
+ version_requirements: *70358296214740
92
91
  description: An IRB alternative and runtime developer console
93
92
  email: jrmair@gmail.com
94
- executables:
93
+ executables:
95
94
  - pry
96
95
  extensions: []
97
-
98
96
  extra_rdoc_files: []
99
-
100
- files:
97
+ files:
101
98
  - .document
102
99
  - .gemtest
103
100
  - .gitignore
@@ -181,36 +178,34 @@ files:
181
178
  - test/test_pry_output.rb
182
179
  - test/test_special_locals.rb
183
180
  - test/testrc
181
+ - test/testrcbad
184
182
  - wiki/Customizing-pry.md
185
183
  - wiki/Home.md
186
184
  homepage: http://pry.github.com
187
185
  licenses: []
188
-
189
186
  post_install_message:
190
187
  rdoc_options: []
191
-
192
- require_paths:
188
+ require_paths:
193
189
  - lib
194
- required_ruby_version: !ruby/object:Gem::Requirement
190
+ required_ruby_version: !ruby/object:Gem::Requirement
195
191
  none: false
196
- requirements:
197
- - - ">="
198
- - !ruby/object:Gem::Version
199
- version: "0"
200
- required_rubygems_version: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ! '>='
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
196
+ required_rubygems_version: !ruby/object:Gem::Requirement
201
197
  none: false
202
- requirements:
203
- - - ">="
204
- - !ruby/object:Gem::Version
205
- version: "0"
198
+ requirements:
199
+ - - ! '>='
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
206
202
  requirements: []
207
-
208
203
  rubyforge_project:
209
- rubygems_version: 1.8.11
204
+ rubygems_version: 1.8.10
210
205
  signing_key:
211
206
  specification_version: 3
212
207
  summary: An IRB alternative and runtime developer console
213
- test_files:
208
+ test_files:
214
209
  - test/helper.rb
215
210
  - test/test_command_helpers.rb
216
211
  - test/test_command_processor.rb
@@ -234,3 +229,4 @@ test_files:
234
229
  - test/test_pry_output.rb
235
230
  - test/test_special_locals.rb
236
231
  - test/testrc
232
+ - test/testrcbad