diff --git a/lib/pry/command_base.rb b/lib/pry/command_base.rb index 4f4cad5b..36893d5c 100644 --- a/lib/pry/command_base.rb +++ b/lib/pry/command_base.rb @@ -40,16 +40,17 @@ class Pry arg_match = '(?:\s+(\S+))?' * 20 if name.is_a?(Array) - matcher = [] name.each do |n| - matcher << /^#{n}(?!\S)#{arg_match}?/ + matcher = /^#{n}(?!\S)#{arg_match}?/ + commands[matcher] = block + command_info[n] = description end else matcher = /^#{name}(?!\S)#{arg_match}?/ + commands[matcher] = block + command_info[name] = description end - commands[matcher] = block - command_info[name] = description end end command "help", "This menu." do |cmd| @@ -61,7 +62,7 @@ class Pry out.puts "Command list:" out.puts "--" command_info.each do |k, v| - out.puts "#{Array(k).first}".ljust(18) + v + out.puts "#{k}".ljust(18) + v end else key = command_info.keys.find { |v| Array(v).any? { |k| k === param } } diff --git a/lib/pry/pry_instance.rb b/lib/pry/pry_instance.rb index 4e927389..0475170c 100644 --- a/lib/pry/pry_instance.rb +++ b/lib/pry/pry_instance.rb @@ -182,7 +182,7 @@ class Pry def val.clear() replace("") end def eval_string.clear() replace("") end - pattern, action = commands.commands.find { |k, v| Array(k).any? { |a| a === val } } + pattern, action = commands.commands.find { |k, v| k === val } if pattern captures = Regexp.last_match.captures