mirror of
https://github.com/pry/pry.git
synced 2022-11-09 12:35:05 -05:00
updated rename_command() to accept either actual command name or listing name, tests also updated
This commit is contained in:
parent
54df4bf7bd
commit
830e6c8f12
2 changed files with 20 additions and 11 deletions
|
@ -242,8 +242,9 @@ class Pry
|
||||||
commands[new_name].description = desc
|
commands[new_name].description = desc
|
||||||
end
|
end
|
||||||
|
|
||||||
# Rename a command. You must use the actual name of the command,
|
# Rename a command. Accepts either actual name or listing name for
|
||||||
# not the listing name.
|
# the `old_name`.
|
||||||
|
# `new_name` must be the actual name of the new command.
|
||||||
# @param [String, Regexp] new_name The new name for the command.
|
# @param [String, Regexp] new_name The new name for the command.
|
||||||
# @param [String, Regexp] old_name The command's current name.
|
# @param [String, Regexp] old_name The command's current name.
|
||||||
# @param [Hash] options The optional configuration parameters,
|
# @param [Hash] options The optional configuration parameters,
|
||||||
|
@ -252,18 +253,18 @@ class Pry
|
||||||
# @example Renaming the `ls` command and changing its description.
|
# @example Renaming the `ls` command and changing its description.
|
||||||
# Pry.config.commands.rename "dir", "ls", :description => "DOS friendly ls"
|
# Pry.config.commands.rename "dir", "ls", :description => "DOS friendly ls"
|
||||||
def rename_command(new_name, old_name, options={})
|
def rename_command(new_name, old_name, options={})
|
||||||
raise ArgumentError, "A command called '#{old_name}' was not found!" if !commands[old_name]
|
cmd = find_command_by_name_or_listing(old_name)
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
:listing => new_name,
|
:listing => new_name,
|
||||||
:description => commands[old_name].description
|
:description => cmd.description
|
||||||
}.merge!(options)
|
}.merge!(options)
|
||||||
|
|
||||||
commands[new_name] = commands[old_name]
|
commands[new_name] = cmd.dup
|
||||||
commands[new_name].name = new_name
|
commands[new_name].name = new_name
|
||||||
commands[new_name].description = options.delete(:description)
|
commands[new_name].description = options.delete(:description)
|
||||||
commands[new_name].options.merge!(options)
|
commands[new_name].options.merge!(options)
|
||||||
commands.delete(old_name)
|
commands.delete(cmd.name)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Runs a command.
|
# Runs a command.
|
||||||
|
|
|
@ -280,9 +280,16 @@ describe Pry::CommandSet do
|
||||||
run.should == true
|
run.should == true
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should not accept listing name when renaming a command' do
|
it 'should accept listing name when renaming a command' do
|
||||||
@set.command('foo', "", :listing => 'love') { }
|
run = false
|
||||||
lambda { @set.rename_command('bar', 'love') }.should.raise ArgumentError
|
@set.command('foo', "", :listing => 'love') { run = true }
|
||||||
|
@set.rename_command('bar', 'love')
|
||||||
|
@set.run_command(@ctx, 'bar')
|
||||||
|
run.should == true
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should raise exception trying to rename non-existent command' do
|
||||||
|
lambda { @set.rename_command('bar', 'foo') }.should.raise ArgumentError
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should make old command name inaccessible' do
|
it 'should make old command name inaccessible' do
|
||||||
|
@ -291,6 +298,7 @@ describe Pry::CommandSet do
|
||||||
lambda { @set.run_command(@ctx, 'foo') }.should.raise Pry::NoCommandError
|
lambda { @set.run_command(@ctx, 'foo') }.should.raise Pry::NoCommandError
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
it 'should be able to pass in options when renaming command' do
|
it 'should be able to pass in options when renaming command' do
|
||||||
desc = "hello"
|
desc = "hello"
|
||||||
listing = "bing"
|
listing = "bing"
|
||||||
|
|
Loading…
Reference in a new issue