1
0
Fork 0
mirror of https://github.com/pry/pry.git synced 2022-11-09 12:35:05 -05:00
pry--pry/lib/pry/commands/shell_command.rb
Kyrylo Silin 256f35422a Prettify command descriptions, switches and stuff
Wrap command descriptions to 80 characters. Convert some string options
to symbols (where possible). Align options in code. Remove dots in the
end of switch descriptions.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
2013-01-09 22:23:19 +02:00

43 lines
1,010 B
Ruby

class Pry
class Command::ShellCommand < Pry::ClassCommand
match /\.(.*)/
group 'Input and Output'
description "All text following a '.' is forwarded to the shell."
command_options :listing => '.<shell command>', :use_prefix => false,
:takes_block => true
banner <<-'BANNER'
Usage: .COMMAND_NAME
All text following a "." is forwarded to the shell.
.ls -aF
.uname
BANNER
def process(cmd)
if cmd =~ /^cd\s+(.+)/i
dest = $1
begin
Dir.chdir File.expand_path(dest)
rescue Errno::ENOENT
raise CommandError, "No such directory: #{dest}"
end
else
pass_block(cmd)
if command_block
command_block.call `#{cmd}`
else
Pry.config.system.call(output, cmd, _pry_)
end
end
end
def complete(search)
super + Bond::Rc.files(search.split(" ").last || '')
end
end
Pry::Commands.add_command(Pry::Command::ShellCommand)
end