pry 0.4.1 → 0.4.2

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.
data/LICENSE ADDED
@@ -0,0 +1,25 @@
1
+ License
2
+ -------
3
+
4
+ (The MIT License)
5
+
6
+ Copyright (c) 2011 John Mair (banisterfiend)
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining
9
+ a copy of this software and associated documentation files (the
10
+ 'Software'), to deal in the Software without restriction, including
11
+ without limitation the rights to use, copy, modify, merge, publish,
12
+ distribute, sublicense, and/or sell copies of the Software, and to
13
+ permit persons to whom the Software is furnished to do so, subject to
14
+ the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be
17
+ included in all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
20
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
23
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
24
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
25
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile CHANGED
@@ -25,7 +25,7 @@ def apply_spec_defaults(s)
25
25
  s.homepage = "http://banisterfiend.wordpress.com"
26
26
  s.has_rdoc = 'yard'
27
27
  s.files = Dir["ext/**/extconf.rb", "ext/**/*.h", "ext/**/*.c", "lib/**/*.rb",
28
- "test/*.rb", "CHANGELOG", "README.markdown", "Rakefile", ".gemtest"]
28
+ "test/*.rb", "CHANGELOG", "LICENSE", "README.markdown", "Rakefile", ".gemtest"]
29
29
  end
30
30
 
31
31
  task :test do
@@ -37,6 +37,17 @@ task :show_version do
37
37
  puts "Pry version: #{Pry::VERSION}"
38
38
  end
39
39
 
40
+ desc "run pry"
41
+ task :pry do
42
+ require "#{direc}/lib/pry.rb"
43
+ Pry.start
44
+ end
45
+
46
+ desc "show pry version"
47
+ task :version do
48
+ puts "Pry version: #{Pry::VERSION}"
49
+ end
50
+
40
51
  namespace :ruby do
41
52
  spec = Gem::Specification.new do |s|
42
53
  apply_spec_defaults(s)
@@ -83,6 +83,29 @@ class Pry
83
83
  imported_hash = Hash[klass.commands.select { |k, v| names.include?(k) }]
84
84
  commands.merge!(imported_hash)
85
85
  end
86
+
87
+ # Create an alias for a command.
88
+ # @param [String] new_command The alias name.
89
+ # @param [String] orig_command The original command name.
90
+ # @example
91
+ # class MyCommands < Pry::CommandBase
92
+ # alias_command "help_alias", "help"
93
+ def alias_command(new_command_name, orig_command_name, desc=nil)
94
+ commands[new_command_name] = commands[orig_command_name].dup
95
+ commands[new_command_name][:description] = desc if desc
96
+ end
97
+
98
+ # Set the description for a command (replacing the old
99
+ # description.)
100
+ # @param [String] name The command name.
101
+ # @param [String] description The command description.
102
+ # @example
103
+ # class MyCommands < Pry::CommandBase
104
+ # desc "help", "help description"
105
+ # end
106
+ def desc(name, description)
107
+ commands[name][:description] = description
108
+ end
86
109
  end
87
110
 
88
111
  command "help", "This menu." do |cmd|
data/lib/pry/commands.rb CHANGED
@@ -76,12 +76,17 @@ class Pry
76
76
  end
77
77
 
78
78
  command "show_method", "Show sourcecode for method <methname>." do |meth_name|
79
- doc = target.eval("method(:#{meth_name})").source
80
- output.puts doc
79
+ if meth_name
80
+ meth_name = target.eval("__method__").to_s if !meth_name
81
+ doc = target.eval("method(\"#{meth_name}\")").source
82
+ output.puts doc
83
+ else
84
+ output.puts "Error: Not in a method."
85
+ end
81
86
  end
82
87
 
83
88
  command "show_imethod", "Show sourcecode for instance method <methname>." do |meth_name|
84
- doc = target.eval("instance_method(:#{meth_name})").source
89
+ doc = target.eval("instance_method(\"#{meth_name}\")").source
85
90
  output.puts doc
86
91
  end
87
92
 
@@ -101,11 +106,11 @@ class Pry
101
106
  end
102
107
 
103
108
  command "ls_methods", "List all methods defined on class of receiver." do
104
- output.puts "#{Pry.view(target.eval('public_methods(false) + private_methods(false) + protected_methods(false)'))}"
109
+ output.puts "#{Pry.view(target.eval('(public_methods(false) + private_methods(false) + protected_methods(false)).sort'))}"
105
110
  end
106
111
 
107
112
  command "ls_imethods", "List all instance methods defined on class of receiver." do
108
- output.puts "#{Pry.view(target.eval('public_instance_methods(false) + private_instance_methods(false) + protected_instance_methods(false)'))}"
113
+ output.puts "#{Pry.view(target.eval('(public_instance_methods(false) + private_instance_methods(false) + protected_instance_methods(false)).sort'))}"
109
114
  end
110
115
 
111
116
  command ["exit", "quit", "back"], "End the current Pry session." do
data/lib/pry/pry_class.rb CHANGED
@@ -85,8 +85,6 @@ class Pry
85
85
  def self.reset_defaults
86
86
  @input = Readline
87
87
  @output = $stdout
88
-
89
- # FIXME
90
88
  @commands = Pry::Commands
91
89
  @prompt = DEFAULT_PROMPT
92
90
  @print = DEFAULT_PRINT
data/lib/pry/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Pry
2
- VERSION = "0.4.1"
2
+ VERSION = "0.4.2"
3
3
  end
data/test/test.rb CHANGED
@@ -353,8 +353,38 @@ describe Pry do
353
353
  Object.remove_const(:Command3)
354
354
  end
355
355
 
356
+ it 'should alias a command with another command' do
357
+ class Command6 < Pry::CommandBase
358
+ alias_command "help2", "help"
359
+ end
360
+
361
+ Command6.commands["help2"].should == Command6.commands["help"]
362
+ # str_output = StringIO.new
363
+ # Pry.new(:input => InputTester.new("run_v"), :output => str_output, :commands => Command3).rep
364
+ # str_output.string.should =~ /v command/
365
+
366
+ Object.remove_const(:Command6)
367
+ end
368
+
369
+ it 'should change description of a command using desc' do
370
+
371
+ class Command7 < Pry::Commands
372
+ end
373
+
374
+ orig = Command7.commands["help"][:description]
375
+
376
+ class Command7
377
+ desc "help", "blah"
378
+ end
379
+
380
+ Command7.commands["help"][:description].should.not == orig
381
+ Command7.commands["help"][:description].should == "blah"
382
+
383
+ Object.remove_const(:Command7)
384
+ end
385
+
356
386
  it 'should run a command from within a command' do
357
- class Command3 < Pry::Commands
387
+ class Command01 < Pry::Commands
358
388
  command "v" do
359
389
  output.puts "v command"
360
390
  end
@@ -365,10 +395,10 @@ describe Pry do
365
395
  end
366
396
 
367
397
  str_output = StringIO.new
368
- Pry.new(:input => InputTester.new("run_v"), :output => str_output, :commands => Command3).rep
398
+ Pry.new(:input => InputTester.new("run_v"), :output => str_output, :commands => Command01).rep
369
399
  str_output.string.should =~ /v command/
370
400
 
371
- Object.remove_const(:Command3)
401
+ Object.remove_const(:Command01)
372
402
  end
373
403
 
374
404
  it 'should enable an inherited method to access opts and output and target, due to instance_exec' do
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pry
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 4
9
- - 1
10
- version: 0.4.1
8
+ - 2
9
+ version: 0.4.2
11
10
  platform: ruby
12
11
  authors:
13
12
  - John Mair (banisterfiend)
@@ -15,7 +14,7 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2011-01-24 00:00:00 +13:00
17
+ date: 2011-01-27 00:00:00 +13:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
@@ -26,7 +25,6 @@ dependencies:
26
25
  requirements:
27
26
  - - ">="
28
27
  - !ruby/object:Gem::Version
29
- hash: 5
30
28
  segments:
31
29
  - 2
32
30
  - 0
@@ -42,7 +40,6 @@ dependencies:
42
40
  requirements:
43
41
  - - ">="
44
42
  - !ruby/object:Gem::Version
45
- hash: 23
46
43
  segments:
47
44
  - 0
48
45
  - 2
@@ -58,7 +55,6 @@ dependencies:
58
55
  requirements:
59
56
  - - ">="
60
57
  - !ruby/object:Gem::Version
61
- hash: 19
62
58
  segments:
63
59
  - 1
64
60
  - 1
@@ -89,6 +85,7 @@ files:
89
85
  - test/test.rb
90
86
  - test/test_helper.rb
91
87
  - CHANGELOG
88
+ - LICENSE
92
89
  - README.markdown
93
90
  - Rakefile
94
91
  - .gemtest
@@ -106,7 +103,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
106
103
  requirements:
107
104
  - - ">="
108
105
  - !ruby/object:Gem::Version
109
- hash: 3
110
106
  segments:
111
107
  - 0
112
108
  version: "0"
@@ -115,7 +111,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
111
  requirements:
116
112
  - - ">="
117
113
  - !ruby/object:Gem::Version
118
- hash: 3
119
114
  segments:
120
115
  - 0
121
116
  version: "0"