pry 0.7.0pre6 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ 15/3/2011 version 0.7.0
2
+ * add pry-doc support with syntax highlighting for docs
3
+ * add 'mj' option to ls (restrict to singleton methods)
4
+ * add _ex_ local to hold last exception raised in an exception
5
+
1
6
  6/3/2011 version 0.6.8
2
7
  * add whereami command, a la the `ir_b` gem
3
8
  * make whereami run at the start of every session
@@ -22,9 +22,14 @@ is trivial to set it to read from any object that has a `readline` method and wr
22
22
  `puts` method - many other aspects of Pry are also configurable making
23
23
  it a good choice for implementing custom shells.
24
24
 
25
- Pry now comes with an executable so it can be invoked at the command line.
25
+ Pry comes with an executable so it can be invoked at the command line.
26
26
  Just enter `pry` to start. A `.pryrc` file in the user's home directory will
27
- be loaded if it exists. Type `pry --help` at the command line for more information.
27
+ be loaded if it exists. Type `pry --help` at the command line for more
28
+ information.
29
+
30
+ Try `gem install pry-doc` for additional documentation on Ruby Core
31
+ methods. The additional docs are accessed through the `show-doc` and
32
+ `show-method` commands.
28
33
 
29
34
  * Install the [gem](https://rubygems.org/gems/pry): `gem install pry`
30
35
  * Read the [documentation](http://rdoc.info/github/banister/pry/master/file/README.markdown)
@@ -163,10 +168,12 @@ end.
163
168
  ###Features:
164
169
 
165
170
  * Pry can be invoked at any time and on any object in the running program.
171
+ * Additional documentation and source code for Ruby Core methods are supported when the `pry-doc` gem is installed.
166
172
  * Pry sessions can nest arbitrarily deeply -- to go back one level of nesting type 'exit' or 'quit' or 'back'
167
173
  * Pry comes with syntax highlighting on by default just use the `toggle-color` command to turn it on and off.
168
174
  * Use `_` to recover last result.
169
175
  * Use `_pry_` to reference the Pry instance managing the current session.
176
+ * Use `_ex_` to recover the last exception.
170
177
  * Pry supports tab completion.
171
178
  * Pry has multi-line support built in.
172
179
  * Use `^d` (control-d) to quickly break out of a session.
@@ -38,15 +38,15 @@ class Pry
38
38
  get_method_object = lambda do |meth_name, target, options|
39
39
  if options[:M]
40
40
  target.eval("instance_method(:#{meth_name})")
41
- elsif options[:m]
41
+ elsif options[:m]
42
42
  target.eval("method(:#{meth_name})")
43
- else
44
- begin
45
- target.eval("method(:#{meth_name})")
46
- rescue
47
- target.eval("instance_method(:#{meth_name})")
48
- end
43
+ else
44
+ begin
45
+ target.eval("instance_method(:#{meth_name})")
46
+ rescue
47
+ target.eval("method(:#{meth_name})")
49
48
  end
49
+ end
50
50
  end
51
51
 
52
52
  make_header = lambda do |file, line, code_type|
@@ -418,7 +418,7 @@ e.g: eval-file -c self "hello.rb"
418
418
  comment.gsub(/<code>(?:\s*\n)?(.*?)\s*<\/code>/m) { Pry.color ? CodeRay.scan($1, code_type).term : $1 }.
419
419
  gsub(/<em>(?:\s*\n)?(.*?)\s*<\/em>/m) { Pry.color ? "\e[32m#{$1}\e[0m": $1 }.
420
420
  gsub(/<i>(?:\s*\n)?(.*?)\s*<\/i>/m) { Pry.color ? "\e[34m#{$1}\e[0m" : $1 }.
421
- gsub(/\B\+(.*?)\+\B/) { Pry.color ? "\e[32m#{$1}\e[0m": $1 }.
421
+ gsub(/\B\+(\w*?)\+\B/) { Pry.color ? "\e[32m#{$1}\e[0m": $1 }.
422
422
  gsub(/((?:^[ \t]+.+(?:\n+|\Z))+)/) { Pry.color ? CodeRay.scan($1, code_type).term : $1 }
423
423
  end
424
424
 
@@ -433,7 +433,7 @@ e.g: eval-file -c self "hello.rb"
433
433
 
434
434
  OptionParser.new do |opts|
435
435
  opts.banner = %{Usage: show-doc [OPTIONS] [METH]
436
- Show the comments above method METH. Shows _method_ comments (rather than instance methods) by default.
436
+ Show the comments above method METH. Tries instance methods first and then methods by default.
437
437
  e.g show-doc hello_method
438
438
  --
439
439
  }
@@ -472,7 +472,6 @@ e.g show-doc hello_method
472
472
  end
473
473
 
474
474
  code_type = :ruby
475
-
476
475
  if Pry.has_pry_doc && meth.source_location.nil?
477
476
  info = Pry::MethodInfo.info_for(meth)
478
477
  if !info
@@ -482,7 +481,13 @@ e.g show-doc hello_method
482
481
  doc = info.docstring
483
482
  code_type = info.source_type
484
483
  else
485
- doc = strip_leading_hash_from_ruby_comments.call(meth.comment)
484
+ begin
485
+ doc = meth.comment
486
+ rescue
487
+ output.puts "Cannot locate source for this method: #{meth_name}. Try `gem install pry-doc` to get access to Ruby Core documentation."
488
+ next
489
+ end
490
+ doc = strip_leading_hash_from_ruby_comments.call(doc)
486
491
  end
487
492
 
488
493
  doc = process_comment_markup.call(doc, code_type)
@@ -507,7 +512,7 @@ e.g show-doc hello_method
507
512
 
508
513
  OptionParser.new do |opts|
509
514
  opts.banner = %{Usage: show-method [OPTIONS] [METH]
510
- Show the source for method METH. Shows _method_ source (rather than instance methods) by default.
515
+ Show the source for method METH. Tries instance methods first and then methods by default.
511
516
  e.g: show-method hello_method
512
517
  --
513
518
  }
@@ -560,7 +565,12 @@ e.g: show-method hello_method
560
565
  code = strip_comments_from_c_code.call(code)
561
566
  code_type = info.source_type
562
567
  else
563
- code = meth.source
568
+ begin
569
+ code = meth.source
570
+ rescue
571
+ output.puts "Cannot locate source for this method: #{meth_name}. Try `gem install pry-doc` to get access to Ruby Core documentation."
572
+ next
573
+ end
564
574
  end
565
575
 
566
576
  file, line = meth.source_location
@@ -1,3 +1,3 @@
1
1
  class Pry
2
- VERSION = "0.7.0pre6"
2
+ VERSION = "0.7.0"
3
3
  end
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pry
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: true
4
+ prerelease: false
5
5
  segments:
6
6
  - 0
7
7
  - 7
8
- - 0pre6
9
- version: 0.7.0pre6
8
+ - 0
9
+ version: 0.7.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - John Mair (banisterfiend)
@@ -136,13 +136,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
136
136
  required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  none: false
138
138
  requirements:
139
- - - ">"
139
+ - - ">="
140
140
  - !ruby/object:Gem::Version
141
141
  segments:
142
- - 1
143
- - 3
144
- - 1
145
- version: 1.3.1
142
+ - 0
143
+ version: "0"
146
144
  requirements: []
147
145
 
148
146
  rubyforge_project: