diff options
author | hut <hut@lavabit.com> | 2010-01-13 22:52:45 +0100 |
---|---|---|
committer | hut <hut@lavabit.com> | 2010-01-13 22:52:45 +0100 |
commit | d8ea8d5fff1c0973a1c361672565b915d81bf774 (patch) | |
tree | 26e948421b8894ebfec919b3998de22b667ee33f | |
parent | bc37a599decaba366327798a4c888d007590eafa (diff) | |
download | ranger-d8ea8d5fff1c0973a1c361672565b915d81bf774.tar.gz |
commandlist: added alias(existing, *new)
-rw-r--r-- | ranger/container/commandlist.py | 11 | ||||
-rw-r--r-- | test/tc_commandlist.py | 8 |
2 files changed, 19 insertions, 0 deletions
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 <new> keys to the command of the <existing> 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') |