mirror of
https://github.com/pry/pry.git
synced 2022-11-09 12:35:05 -05:00
ebccd57013
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>
23 lines
661 B
Ruby
23 lines
661 B
Ruby
class Pry
|
|
class Command::ReloadMethod < Pry::ClassCommand
|
|
match 'reload-method'
|
|
group 'Misc'
|
|
description 'Reload the source file that contains the specified method'
|
|
|
|
def process(meth_name)
|
|
meth = get_method_or_raise(meth_name, target, {}, :omit_help)
|
|
|
|
if meth.source_type == :c
|
|
raise CommandError, "Can't reload a C method."
|
|
elsif meth.dynamically_defined?
|
|
raise CommandError, "Can't reload an eval method."
|
|
else
|
|
file_name = meth.source_file
|
|
load file_name
|
|
output.puts "Reloaded #{file_name}."
|
|
end
|
|
end
|
|
end
|
|
|
|
Pry::Commands.add_command(Pry::Command::ReloadMethod)
|
|
end
|