summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author0xAB <0xAB@protonmail.com>2017-08-27 11:57:03 +0100
committer0xAB <0xAB@protonmail.com>2017-08-27 11:57:03 +0100
commit2bdb6d4d22d403079c297402cab24a9ef2a62fb2 (patch)
tree50ef0cd0e834df4966c4209d04927f6d57f5d8e9
parentc21d036cfd7fbb635338db55cbb97ac6f6038257 (diff)
downloadpry-2bdb6d4d22d403079c297402cab24a9ef2a62fb2.tar.gz
support creating aliase from another aliase.
pry(main)> alias-prompt default foo pry(main)> alias-prompt foo bar "default" now has two aliases: foo, & bar.
-rw-r--r--lib/pry/commands/alias_prompt.rb2
-rw-r--r--lib/pry/prompt.rb10
2 files changed, 7 insertions, 5 deletions
diff --git a/lib/pry/commands/alias_prompt.rb b/lib/pry/commands/alias_prompt.rb
index 1d592f8f..8fbb8702 100644
--- a/lib/pry/commands/alias_prompt.rb
+++ b/lib/pry/commands/alias_prompt.rb
@@ -16,7 +16,7 @@ class Pry
if not args_ok?([prompt_name, alias_name])
return output.puts help
end
- if prompt = Pry::Prompt.get_prompt(prompt_name)
+ if Pry::Prompt.get_prompt(prompt_name)
Pry::Prompt.alias_prompt prompt_name, alias_name
output.puts "Alias '#{alias_name}' created"
else
diff --git a/lib/pry/prompt.rb b/lib/pry/prompt.rb
index f20d129d..4dd5f5e1 100644
--- a/lib/pry/prompt.rb
+++ b/lib/pry/prompt.rb
@@ -103,12 +103,14 @@ module Pry::Prompt
# The name of the aliased prompt.
#
def alias_prompt(prompt_name, aliased_prompt)
- if prompt = get_prompt(prompt_name)
- PROMPT_MAP[aliased_prompt] = PromptInfo.new *[aliased_prompt, prompt.description,
- prompt.proc_array, prompt_name]
- else
+ prompt = get_prompt(prompt_name)
+ if not prompt
raise AliasError, "prompt '#{prompt}' cannot be aliased because it doesn't exist"
+ elsif prompt.alias?
+ prompt_name = prompt.alias_for
end
+ PROMPT_MAP[aliased_prompt] = PromptInfo.new *[aliased_prompt, prompt.description,
+ prompt.proc_array, prompt_name]
end
add_prompt "default",