pry 0.8.0pre2-i386-mingw32 → 0.8.0pre4-i386-mingw32
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/lib/pry/command_processor.rb +28 -12
- data/lib/pry/commands.rb +16 -6
- data/lib/pry/pry_class.rb +6 -0
- data/lib/pry/pry_instance.rb +20 -3
- data/lib/pry/version.rb +1 -1
- metadata +3 -3
@@ -2,6 +2,9 @@ require 'forwardable'
|
|
2
2
|
|
3
3
|
class Pry
|
4
4
|
class CommandProcessor
|
5
|
+
SYSTEM_COMMAND_DELIMITER = "."
|
6
|
+
SYSTEM_COMMAND_REGEX = /^#{Regexp.escape(SYSTEM_COMMAND_DELIMITER)}(.*)/
|
7
|
+
|
5
8
|
extend Forwardable
|
6
9
|
|
7
10
|
attr_reader :pry_instance
|
@@ -12,23 +15,33 @@ class Pry
|
|
12
15
|
|
13
16
|
def_delegators :@pry_instance, :commands, :nesting, :output
|
14
17
|
|
15
|
-
def
|
16
|
-
|
17
|
-
execute_system_command($1)
|
18
|
-
val.clear
|
19
|
-
else
|
20
|
-
return false
|
21
|
-
end
|
22
|
-
true
|
18
|
+
def valid_command?(val)
|
19
|
+
system_command?(val) || pry_command?(val)
|
23
20
|
end
|
24
21
|
|
25
|
-
def
|
22
|
+
def system_command?(val)
|
23
|
+
!!(SYSTEM_COMMAND_REGEX =~ val)
|
24
|
+
end
|
25
|
+
|
26
|
+
def pry_command?(val)
|
27
|
+
!!command_matched(val).first
|
28
|
+
end
|
29
|
+
|
30
|
+
def execute_system_command(val)
|
31
|
+
SYSTEM_COMMAND_REGEX =~ val
|
32
|
+
cmd = $1
|
33
|
+
|
26
34
|
if cmd =~ /^cd\s+(.+)/i
|
27
|
-
|
28
|
-
|
35
|
+
begin
|
36
|
+
Dir.chdir(File.expand_path($1))
|
37
|
+
rescue Errno::ENOENT
|
38
|
+
output.puts "No such directory: #{$1}"
|
39
|
+
end
|
29
40
|
else
|
30
41
|
system(cmd)
|
31
42
|
end
|
43
|
+
|
44
|
+
val.clear
|
32
45
|
end
|
33
46
|
|
34
47
|
# Determine whether a Pry command was matched and return command data
|
@@ -57,7 +70,10 @@ class Pry
|
|
57
70
|
def val.clear() replace("") end
|
58
71
|
def eval_string.clear() replace("") end
|
59
72
|
|
60
|
-
|
73
|
+
if system_command?(val)
|
74
|
+
execute_system_command(val)
|
75
|
+
return
|
76
|
+
end
|
61
77
|
|
62
78
|
cmd_data, args_string = command_matched(val)
|
63
79
|
|
data/lib/pry/commands.rb
CHANGED
@@ -120,6 +120,13 @@ class Pry
|
|
120
120
|
alias_command "quit-program", "exit-program", ""
|
121
121
|
alias_command "!!!", "exit-program", ""
|
122
122
|
|
123
|
+
command "gem-cd", "Change working directory to specified gem's directory." do |gem_name|
|
124
|
+
require 'rubygems'
|
125
|
+
gem_spec = Gem.source_index.find_name(gem_name).first
|
126
|
+
next output.put("Gem `#{gem_name}` not found.") if !gem_spec
|
127
|
+
Dir.chdir(File.expand_path(gem_spec.full_gem_path))
|
128
|
+
end
|
129
|
+
|
123
130
|
command "toggle-color", "Toggle syntax highlighting." do
|
124
131
|
Pry.color = !Pry.color
|
125
132
|
output.puts "Syntax highlighting #{Pry.color ? "on" : "off"}"
|
@@ -134,7 +141,6 @@ class Pry
|
|
134
141
|
end
|
135
142
|
end
|
136
143
|
|
137
|
-
# FIXME: when restoring backups does not restore descriptions
|
138
144
|
command "file-mode", "Toggle file mode." do
|
139
145
|
case Pry.active_instance.prompt
|
140
146
|
when Pry::FILE_PROMPT
|
@@ -413,9 +419,10 @@ Shows local and instance variables by default.
|
|
413
419
|
".json" => :json
|
414
420
|
}
|
415
421
|
|
416
|
-
|
422
|
+
syntax_highlight_by_file_type_or_specified = lambda do |contents, file_name, file_type|
|
417
423
|
_, language_detected = file_map.find { |k, v| Array(k).include?(File.extname(file_name)) }
|
418
424
|
|
425
|
+
language_detected = file_type if file_type
|
419
426
|
CodeRay.scan(contents, language_detected).term
|
420
427
|
end
|
421
428
|
|
@@ -443,11 +450,12 @@ Shows local and instance variables by default.
|
|
443
450
|
end
|
444
451
|
end
|
445
452
|
|
446
|
-
command "cat-file", "Show output of file FILE. Type `cat --help` for more information.
|
453
|
+
command "cat-file", "Show output of file FILE. Type `cat --help` for more information." do |*args|
|
447
454
|
options= {}
|
448
455
|
file_name = nil
|
449
456
|
start_line = 0
|
450
457
|
end_line = -1
|
458
|
+
file_type = nil
|
451
459
|
|
452
460
|
OptionParser.new do |opts|
|
453
461
|
opts.banner = %{Usage: cat-file [OPTIONS] FILE
|
@@ -467,6 +475,10 @@ e.g: cat-file hello.rb
|
|
467
475
|
end_line = line.to_i - 1
|
468
476
|
end
|
469
477
|
|
478
|
+
opts.on("-t", "--type TYPE", "The specific file type for syntax higlighting.") do |type|
|
479
|
+
file_type = type.to_sym
|
480
|
+
end
|
481
|
+
|
470
482
|
opts.on_tail("-h", "--help", "This message.") do
|
471
483
|
output.puts opts
|
472
484
|
options[:h] = true
|
@@ -485,7 +497,7 @@ e.g: cat-file hello.rb
|
|
485
497
|
contents = read_between_the_lines.call(file_name, start_line, end_line, false)
|
486
498
|
|
487
499
|
if Pry.color
|
488
|
-
contents =
|
500
|
+
contents = syntax_highlight_by_file_type_or_specified.call(contents, file_name, file_type)
|
489
501
|
end
|
490
502
|
|
491
503
|
if options[:l]
|
@@ -496,8 +508,6 @@ e.g: cat-file hello.rb
|
|
496
508
|
contents
|
497
509
|
end
|
498
510
|
|
499
|
-
alias_command ":cat", "cat-file", ""
|
500
|
-
|
501
511
|
command "eval-file", "Eval a Ruby script. Type `eval-file --help` for more info." do |*args|
|
502
512
|
options = {}
|
503
513
|
target = target()
|
data/lib/pry/pry_class.rb
CHANGED
@@ -57,6 +57,12 @@ class Pry
|
|
57
57
|
# :after_session => proc { puts "goodbye" }
|
58
58
|
attr_accessor :hooks
|
59
59
|
|
60
|
+
|
61
|
+
# Get/Set the Proc that defines extra Readline completions (on top
|
62
|
+
# of the ones defined for IRB).
|
63
|
+
# @return [Proc] The Proc that defines extra Readline completions (on top
|
64
|
+
# @example Add file names to completion list
|
65
|
+
# Pry.custom_completions = proc { Dir.entries('.') }
|
60
66
|
attr_accessor :custom_completions
|
61
67
|
|
62
68
|
# Get the array of Procs to be used for the prompts by default by
|
data/lib/pry/pry_instance.rb
CHANGED
@@ -141,7 +141,8 @@ class Pry
|
|
141
141
|
# Pry.new.rep(Object.new)
|
142
142
|
def rep(target=TOPLEVEL_BINDING)
|
143
143
|
target = Pry.binding_for(target)
|
144
|
-
|
144
|
+
result = re(target)
|
145
|
+
print.call output, result if !@suppress_output
|
145
146
|
end
|
146
147
|
|
147
148
|
# Perform a read-eval
|
@@ -185,13 +186,29 @@ class Pry
|
|
185
186
|
# Pry.new.r(Object.new)
|
186
187
|
def r(target=TOPLEVEL_BINDING)
|
187
188
|
target = Pry.binding_for(target)
|
189
|
+
@suppress_output = false
|
188
190
|
eval_string = ""
|
189
191
|
|
190
192
|
loop do
|
191
193
|
val = retrieve_line(eval_string, target)
|
192
194
|
process_line(val, eval_string, target)
|
193
|
-
|
195
|
+
if valid_expression?(eval_string)
|
196
|
+
redo if null_input?(val)
|
197
|
+
break
|
198
|
+
end
|
194
199
|
end
|
200
|
+
|
201
|
+
@suppress_output = true if eval_string =~ /;\Z/
|
202
|
+
|
203
|
+
eval_string
|
204
|
+
end
|
205
|
+
|
206
|
+
# Returns true if input is "" and a command is not returning a
|
207
|
+
# value.
|
208
|
+
# @param [String] val The input string.
|
209
|
+
# @return [Boolean] Whether the input is null.
|
210
|
+
def null_input?(val)
|
211
|
+
val.empty? && !Pry.cmd_ret_value
|
195
212
|
end
|
196
213
|
|
197
214
|
# Read a line of input and check for ^d, also determine prompt to use.
|
@@ -224,7 +241,7 @@ class Pry
|
|
224
241
|
if Pry.cmd_ret_value
|
225
242
|
eval_string << "Pry.cmd_ret_value\n"
|
226
243
|
else
|
227
|
-
eval_string << "#{val}\n"
|
244
|
+
eval_string << "#{val}\n" if !val.empty?
|
228
245
|
end
|
229
246
|
end
|
230
247
|
|
data/lib/pry/version.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 8
|
8
|
-
-
|
9
|
-
version: 0.8.
|
8
|
+
- 0pre4
|
9
|
+
version: 0.8.0pre4
|
10
10
|
platform: i386-mingw32
|
11
11
|
authors:
|
12
12
|
- John Mair (banisterfiend)
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-04-
|
17
|
+
date: 2011-04-08 00:00:00 +12:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|