pry 0.6.6 → 0.6.7pre4
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/Rakefile +18 -1
- data/bin/pry +12 -0
- data/lib/pry.rb +24 -10
- data/lib/pry/commands.rb +47 -8
- data/lib/pry/print.rb +5 -1
- data/lib/pry/prompts.rb +1 -1
- data/lib/pry/pry_class.rb +5 -11
- data/lib/pry/pry_instance.rb +0 -3
- data/lib/pry/version.rb +1 -1
- metadata +23 -12
data/Rakefile
CHANGED
@@ -20,6 +20,7 @@ def apply_spec_defaults(s)
|
|
20
20
|
s.description = s.summary
|
21
21
|
s.require_path = 'lib'
|
22
22
|
s.add_dependency("ruby_parser",">=2.0.5")
|
23
|
+
s.add_dependency("coderay",">=0.9.7")
|
23
24
|
s.add_development_dependency("bacon",">=1.1.0")
|
24
25
|
s.homepage = "http://banisterfiend.wordpress.com"
|
25
26
|
s.has_rdoc = 'yard'
|
@@ -56,6 +57,22 @@ namespace :ruby do
|
|
56
57
|
end
|
57
58
|
end
|
58
59
|
|
60
|
+
[:mingw32, :mswin32].each do |v|
|
61
|
+
namespace v do
|
62
|
+
spec = Gem::Specification.new do |s|
|
63
|
+
apply_spec_defaults(s)
|
64
|
+
s.add_dependency("method_source",">=0.3.4")
|
65
|
+
s.add_dependency("win32console", ">=1.3.0")
|
66
|
+
s.platform = "i386-#{v}"
|
67
|
+
end
|
68
|
+
|
69
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
70
|
+
pkg.need_zip = false
|
71
|
+
pkg.need_tar = false
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
59
76
|
namespace :jruby do
|
60
77
|
spec = Gem::Specification.new do |s|
|
61
78
|
apply_spec_defaults(s)
|
@@ -71,7 +88,7 @@ end
|
|
71
88
|
|
72
89
|
|
73
90
|
desc "build all platform gems at once"
|
74
|
-
task :gems => [:rmgems, "ruby:gem", "jruby:gem"]
|
91
|
+
task :gems => [:rmgems, "ruby:gem", "jruby:gem", "mswin32:gem", "mingw32:gem"]
|
75
92
|
|
76
93
|
desc "remove all platform gems"
|
77
94
|
task :rmgems => ["ruby:clobber_package"]
|
data/bin/pry
CHANGED
@@ -35,6 +35,18 @@ See: `https://github.com/banister` for more information.
|
|
35
35
|
options[:loadrc] = false
|
36
36
|
end
|
37
37
|
|
38
|
+
opts.on("--color", "Start session with syntax highlighting on.") do
|
39
|
+
Pry.color = true
|
40
|
+
end
|
41
|
+
|
42
|
+
opts.on("--simple-prompt", "Simple prompt mode.") do
|
43
|
+
Pry.prompt = Pry::SIMPLE_PROMPT
|
44
|
+
end
|
45
|
+
|
46
|
+
opts.on("-I LOADPATH", "Specify $LOAD_PATH directory.") do |load_path|
|
47
|
+
$LOAD_PATH << load_path
|
48
|
+
end
|
49
|
+
|
38
50
|
opts.on("-v", "--version", "Display the Pry version.") do
|
39
51
|
puts "Pry version #{Pry::VERSION} on Ruby #{RUBY_VERSION}"
|
40
52
|
exit
|
data/lib/pry.rb
CHANGED
@@ -3,16 +3,30 @@
|
|
3
3
|
|
4
4
|
direc = File.dirname(__FILE__)
|
5
5
|
|
6
|
+
$LOAD_PATH << File.expand_path(direc)
|
7
|
+
|
6
8
|
require "method_source"
|
9
|
+
require 'shellwords'
|
7
10
|
require "readline"
|
8
11
|
require "stringio"
|
9
|
-
require "
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
require
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
12
|
+
require "coderay"
|
13
|
+
|
14
|
+
if RUBY_PLATFORM =~ /mswin/ || RUBY_PLATFORM =~ /mingw/
|
15
|
+
begin
|
16
|
+
require 'win32console'
|
17
|
+
rescue LoadError
|
18
|
+
$stderr.puts "Need to `gem install win32console`"
|
19
|
+
exit 1
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
require "pry/version"
|
24
|
+
require "pry/hooks"
|
25
|
+
require "pry/print"
|
26
|
+
require "pry/command_base"
|
27
|
+
require "pry/commands"
|
28
|
+
require "pry/prompts"
|
29
|
+
require "pry/completion"
|
30
|
+
require "pry/core_extensions"
|
31
|
+
require "pry/pry_class"
|
32
|
+
require "pry/pry_instance"
|
data/lib/pry/commands.rb
CHANGED
@@ -1,9 +1,7 @@
|
|
1
|
-
direc = File.dirname(__FILE__)
|
2
|
-
|
3
1
|
require "optparse"
|
4
2
|
require "method_source"
|
5
|
-
require "
|
6
|
-
require "
|
3
|
+
require "pry/command_base"
|
4
|
+
require "pry/pry_instance"
|
7
5
|
|
8
6
|
class Pry
|
9
7
|
|
@@ -25,6 +23,10 @@ class Pry
|
|
25
23
|
raise "Cannot retrieve source for dynamically defined method."
|
26
24
|
end
|
27
25
|
end
|
26
|
+
|
27
|
+
remove_first_word = lambda do |text|
|
28
|
+
text.split.drop(1).join(' ')
|
29
|
+
end
|
28
30
|
|
29
31
|
command "!", "Clear the input buffer. Useful if the parsing process goes wrong and you get stuck in the read loop." do
|
30
32
|
output.puts "Input buffer cleared!"
|
@@ -41,6 +43,20 @@ class Pry
|
|
41
43
|
|
42
44
|
alias_command "quit-program", "exit-program", ""
|
43
45
|
|
46
|
+
command "toggle-color", "Toggle syntax highlighting." do
|
47
|
+
Pry.color = !Pry.color
|
48
|
+
output.puts "Syntax highlighting #{Pry.color ? "on" : "off"}"
|
49
|
+
end
|
50
|
+
|
51
|
+
command "simple-prompt", "Toggle the simple prompt." do
|
52
|
+
case Pry.active_instance.prompt
|
53
|
+
when Pry::SIMPLE_PROMPT
|
54
|
+
Pry.active_instance.prompt = Pry::DEFAULT_PROMPT
|
55
|
+
else
|
56
|
+
Pry.active_instance.prompt = Pry::SIMPLE_PROMPT
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
44
60
|
command "nesting", "Show nesting information." do
|
45
61
|
nesting = opts[:nesting]
|
46
62
|
|
@@ -76,7 +92,7 @@ class Pry
|
|
76
92
|
end
|
77
93
|
|
78
94
|
command "exit-all", "End all nested Pry sessions. Accepts optional return value. Aliases: !@" do
|
79
|
-
str = opts[:val]
|
95
|
+
str = remove_first_word.call(opts[:val])
|
80
96
|
throw(:breakout, [0, target.eval(str)])
|
81
97
|
end
|
82
98
|
|
@@ -219,7 +235,11 @@ Shows local and instance variables by default.
|
|
219
235
|
info.sort_by { |k, v| v.last }.each do |k, v|
|
220
236
|
if !v.first.empty?
|
221
237
|
output.puts "#{k}:\n--"
|
222
|
-
|
238
|
+
if Pry.color
|
239
|
+
output.puts CodeRay.scan(Pry.view(v.first), :ruby).term
|
240
|
+
else
|
241
|
+
output.puts Pry.view(v.first)
|
242
|
+
end
|
223
243
|
output.puts
|
224
244
|
end
|
225
245
|
end
|
@@ -227,7 +247,11 @@ Shows local and instance variables by default.
|
|
227
247
|
# plain
|
228
248
|
else
|
229
249
|
list = info.values.sort_by { |v| v.last }.map { |v| v.first }.inject(&:+)
|
230
|
-
|
250
|
+
if Pry.color
|
251
|
+
output.puts CodeRay.scan(Pry.view(list), :ruby).term
|
252
|
+
else
|
253
|
+
output.puts Pry.view(list)
|
254
|
+
end
|
231
255
|
list
|
232
256
|
end
|
233
257
|
end
|
@@ -364,6 +388,11 @@ e.g show-doc hello_method
|
|
364
388
|
check_for_dynamically_defined_method.call(file)
|
365
389
|
|
366
390
|
output.puts "--\nFrom #{file} @ line ~#{line}:\n--"
|
391
|
+
|
392
|
+
if Pry.color
|
393
|
+
doc = CodeRay.scan(doc, :ruby).term
|
394
|
+
end
|
395
|
+
|
367
396
|
output.puts doc
|
368
397
|
doc
|
369
398
|
end
|
@@ -426,6 +455,11 @@ e.g: show-method hello_method
|
|
426
455
|
check_for_dynamically_defined_method.call(file)
|
427
456
|
|
428
457
|
output.puts "--\nFrom #{file} @ line #{line}:\n--"
|
458
|
+
|
459
|
+
if Pry.color
|
460
|
+
code = CodeRay.scan(code, :ruby).term
|
461
|
+
end
|
462
|
+
|
429
463
|
output.puts code
|
430
464
|
code
|
431
465
|
end
|
@@ -444,6 +478,11 @@ e.g: show-method hello_method
|
|
444
478
|
check_for_dynamically_defined_method.call(file)
|
445
479
|
|
446
480
|
output.puts "--\nFrom #{file} @ line #{line}:\n--"
|
481
|
+
|
482
|
+
if Pry.color
|
483
|
+
code = CodeRay.scan(code, :ruby).term
|
484
|
+
end
|
485
|
+
|
447
486
|
output.puts code
|
448
487
|
code
|
449
488
|
else
|
@@ -467,7 +506,7 @@ e.g: show-method hello_method
|
|
467
506
|
end
|
468
507
|
|
469
508
|
command "exit", "End the current Pry session. Accepts optional return value. Aliases: quit, back" do
|
470
|
-
str = opts[:val]
|
509
|
+
str = remove_first_word.call(opts[:val])
|
471
510
|
throw(:breakout, [opts[:nesting].level, target.eval(str)])
|
472
511
|
end
|
473
512
|
|
data/lib/pry/print.rb
CHANGED
@@ -8,7 +8,11 @@ class Pry
|
|
8
8
|
output.puts "#{value.class}: #{value.message}"
|
9
9
|
output.puts "from #{value.backtrace.first}"
|
10
10
|
else
|
11
|
-
|
11
|
+
if Pry.color
|
12
|
+
output.puts "=> #{CodeRay.scan(Pry.view(value), :ruby).term}"
|
13
|
+
else
|
14
|
+
output.puts "=> #{Pry.view(value)}"
|
15
|
+
end
|
12
16
|
end
|
13
17
|
end
|
14
18
|
end
|
data/lib/pry/prompts.rb
CHANGED
data/lib/pry/pry_class.rb
CHANGED
@@ -1,14 +1,3 @@
|
|
1
|
-
direc = File.dirname(__FILE__)
|
2
|
-
|
3
|
-
require 'readline'
|
4
|
-
require 'shellwords'
|
5
|
-
require "#{direc}/prompts"
|
6
|
-
require "#{direc}/hooks"
|
7
|
-
require "#{direc}/print"
|
8
|
-
require "#{direc}/commands"
|
9
|
-
require "#{direc}/core_extensions"
|
10
|
-
require "#{direc}/pry_instance"
|
11
|
-
|
12
1
|
# @author John Mair (banisterfiend)
|
13
2
|
class Pry
|
14
3
|
|
@@ -69,6 +58,10 @@ class Pry
|
|
69
58
|
# Value returned by last executed Pry command.
|
70
59
|
# @return [Object] The command value
|
71
60
|
attr_accessor :cmd_ret_value
|
61
|
+
|
62
|
+
# Determines whether colored output is enabled.
|
63
|
+
# @return [Boolean]
|
64
|
+
attr_accessor :color
|
72
65
|
end
|
73
66
|
|
74
67
|
# Start a Pry REPL.
|
@@ -157,6 +150,7 @@ class Pry
|
|
157
150
|
@prompt = DEFAULT_PROMPT
|
158
151
|
@print = DEFAULT_PRINT
|
159
152
|
@hooks = DEFAULT_HOOKS
|
153
|
+
@color = false
|
160
154
|
end
|
161
155
|
|
162
156
|
self.reset_defaults
|
data/lib/pry/pry_instance.rb
CHANGED
data/lib/pry/version.rb
CHANGED
metadata
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
5
|
-
prerelease:
|
4
|
+
version: 0.6.7pre4
|
5
|
+
prerelease: 5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- John Mair (banisterfiend)
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-03-03 00:00:00.000000000 +13:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: ruby_parser
|
17
|
-
requirement: &
|
17
|
+
requirement: &17582820 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,21 @@ dependencies:
|
|
22
22
|
version: 2.0.5
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *17582820
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: coderay
|
28
|
+
requirement: &17582472 !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.9.7
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: *17582472
|
26
37
|
- !ruby/object:Gem::Dependency
|
27
38
|
name: bacon
|
28
|
-
requirement: &
|
39
|
+
requirement: &17582124 !ruby/object:Gem::Requirement
|
29
40
|
none: false
|
30
41
|
requirements:
|
31
42
|
- - ! '>='
|
@@ -33,10 +44,10 @@ dependencies:
|
|
33
44
|
version: 1.1.0
|
34
45
|
type: :development
|
35
46
|
prerelease: false
|
36
|
-
version_requirements: *
|
47
|
+
version_requirements: *17582124
|
37
48
|
- !ruby/object:Gem::Dependency
|
38
49
|
name: method_source
|
39
|
-
requirement: &
|
50
|
+
requirement: &17576580 !ruby/object:Gem::Requirement
|
40
51
|
none: false
|
41
52
|
requirements:
|
42
53
|
- - ! '>='
|
@@ -44,7 +55,7 @@ dependencies:
|
|
44
55
|
version: 0.3.4
|
45
56
|
type: :runtime
|
46
57
|
prerelease: false
|
47
|
-
version_requirements: *
|
58
|
+
version_requirements: *17576580
|
48
59
|
description: attach an irb-like session to any object at runtime
|
49
60
|
email: jrmair@gmail.com
|
50
61
|
executables:
|
@@ -97,12 +108,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
97
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
109
|
none: false
|
99
110
|
requirements:
|
100
|
-
- - ! '
|
111
|
+
- - ! '>'
|
101
112
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
113
|
+
version: 1.3.1
|
103
114
|
requirements: []
|
104
115
|
rubyforge_project:
|
105
|
-
rubygems_version: 1.
|
116
|
+
rubygems_version: 1.6.0
|
106
117
|
signing_key:
|
107
118
|
specification_version: 3
|
108
119
|
summary: attach an irb-like session to any object at runtime
|