diff options
author | 0xAB <0xAB@protonmail.com> | 2017-08-27 11:57:03 +0100 |
---|---|---|
committer | 0xAB <0xAB@protonmail.com> | 2017-08-27 11:57:03 +0100 |
commit | 2bdb6d4d22d403079c297402cab24a9ef2a62fb2 (patch) | |
tree | 50ef0cd0e834df4966c4209d04927f6d57f5d8e9 | |
parent | c21d036cfd7fbb635338db55cbb97ac6f6038257 (diff) | |
download | pry-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.rb | 2 | ||||
-rw-r--r-- | lib/pry/prompt.rb | 10 |
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", |