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/disable_pry.rb
Kyrylo Silin ebccd57013 Convert all commands to classes
John "banister" Mair describes the following key features of commands
as classes:

  1. It enables people to extend them by either subclassing or
     monkeypatching.
  2. It enables them to provide their own API, so that for example, the
     Pry::Command::Edit class could have class methods for people to
     configure it.

Please, note that I didn't touch easter eggs commands. I also prettified
some strings (your source code reading experience should vastly improve!).

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
2012-12-27 13:31:37 +02:00

27 lines
859 B
Ruby

class Pry
class Command::DisablePry < Pry::ClassCommand
match 'disable-pry'
group 'Navigating Pry'
description 'Stops all future calls to pry and exits the current session.'
banner <<-BANNER
Usage: disable-pry
After this command is run any further calls to pry will immediately return
`nil` without interrupting the flow of your program. This is particularly
useful when you've debugged the problem you were having, and now wish the
program to run to the end.
As alternatives, consider using `exit!` to force the current ruby process
to quit immediately; or using `edit-method -p` to remove the `binding.pry`
from the code.
BANNER
def process
ENV['DISABLE_PRY'] = 'true'
_pry_.run_command "exit"
end
end
Pry::Commands.add_command(Pry::Command::DisablePry)
end