Sha256: 33fb12e16f7856227737ee85a669072ee2cd453e15f006d0ac6e872d309f2c34
Contents?: true
Size: 1.16 KB
Versions: 135
Compression:
Stored size: 1.16 KB
Contents
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 process_cd parse_destination($1) else pass_block(cmd) if command_block command_block.call `#{cmd}` else _pry_.config.system.call(output, cmd, _pry_) end end end private def parse_destination(dest) return "~" if dest.empty? return dest unless dest == "-" state.old_pwd || raise(CommandError, "No prior directory available") end def process_cd(dest) state.old_pwd = Dir.pwd Dir.chdir File.expand_path(dest) rescue Errno::ENOENT raise CommandError, "No such directory: #{dest}" end end Pry::Commands.add_command(Pry::Command::ShellCommand) end
Version data entries
135 entries across 128 versions & 29 rubygems