From d8ea8d5fff1c0973a1c361672565b915d81bf774 Mon Sep 17 00:00:00 2001 From: hut Date: Wed, 13 Jan 2010 22:52:45 +0100 Subject: commandlist: added alias(existing, *new) --- ranger/container/commandlist.py | 11 +++++++++++ test/tc_commandlist.py | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/ranger/container/commandlist.py b/ranger/container/commandlist.py index 2ba22ef7..e66871ea 100644 --- a/ranger/container/commandlist.py +++ b/ranger/container/commandlist.py @@ -126,6 +126,17 @@ class CommandList(object): self.commandlist.append(obj) for key in obj.keys: self.paths[key] = obj + + def alias(self, existing, *new): + """bind the keys to the command of the key""" + existing = self._str_to_tuple(existing) + new = tuple(map(self._str_to_tuple, new)) + + cmd = self.paths[existing] + + for key in new: + self.paths[key] = cmd + cmd.keys |= set([key]) def unbind(self, *keys): i = len(self.commandlist) diff --git a/test/tc_commandlist.py b/test/tc_commandlist.py index 86afdc99..5062be9f 100644 --- a/test/tc_commandlist.py +++ b/test/tc_commandlist.py @@ -51,6 +51,14 @@ class Test(TestCase): self.assertEqual(dmy, cl['aaa']) self.assertEqual(fnc, cl['aaaa'].execute) + cl.alias('aaaa', 'c') + cl.rebuild_paths() + self.assertEqual(cl['c'], cl['aaaa']) + cl.unbind('c') + cl.rebuild_paths() + self.assertEqual(fnc, cl['aaaa'].execute) + self.assertKeyError(cl, 'c') + cl.clear() self.assertKeyError(cl, 'a') self.assertKeyError(cl, 'aa') -- cgit 1.4.1-2-gfad0