1
0
Fork 0
mirror of https://github.com/pry/pry.git synced 2022-11-09 12:35:05 -05:00
pry--pry/examples/example_command_override.rb

35 lines
1.1 KiB
Ruby

direc = File.dirname(__FILE__)
require 'rubygems'
require "#{direc}/../lib/pry"
# Inherit standard command set, but tweak them by importing some and
# overriding others.
# Illustrates use of `command`, `run`, and `import_from` commands.
class MyCommands < Pry::CommandBase
# Override ls command
command "ls", "An unhelpful ls" do
output.puts "No, i refuse to display any useful information."
end
# bring in just the status command from Pry::Commands
import_from Pry::Commands, "status"
# analogy to Ruby's native alias_method idiom for decorating a method
alias_command "old_status", "status", ""
# Invoke one command from within another using `run`
command "status", "Modified status." do |x|
output.puts "About to show status, are you ready?"
run "old_status", x
output.puts "Finished showing status."
end
# bring in a few other commands
import_from Pry::Commands, "quit", "show-method"
end
# Start a Pry session using the commands defined in MyCommands
# Type 'help' in Pry to get a list of the commands and their descriptions
Pry.start(TOPLEVEL_BINDING, :commands => MyCommands)