diff options
author | hut <hut@lavabit.com> | 2010-04-27 03:30:30 +0200 |
---|---|---|
committer | hut <hut@lavabit.com> | 2010-04-27 03:30:30 +0200 |
commit | b102486b0fd959d4a93265f491f1642ff849ef8b (patch) | |
tree | a052bb54a99a0ca35ddd674f7b57075e8f23674a | |
parent | a5e1ccdd9e6cc4cf555d140b4ff2216a2dd9ea55 (diff) | |
download | ranger-b102486b0fd959d4a93265f491f1642ff849ef8b.tar.gz |
api.apps: more stuff
-rw-r--r-- | ranger/api/apps.py | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/ranger/api/apps.py b/ranger/api/apps.py index d44f92e1..d2e9ac4f 100644 --- a/ranger/api/apps.py +++ b/ranger/api/apps.py @@ -76,7 +76,7 @@ class Applications(FileManagerAware): application_handler = getattr(self, 'app_' + app) except AttributeError: if app in get_executables(): - return tup(app, *context) + return _generic_app(app, context) continue if self._meets_dependencies(application_handler): return application_handler(context) @@ -99,7 +99,7 @@ class Applications(FileManagerAware): handler = getattr(self, 'app_' + app) except AttributeError: if app in get_executables(): - return tup(app, *context) # generic app + return _generic_app(app, context) handler = self.app_default return handler(context) @@ -121,7 +121,7 @@ class Applications(FileManagerAware): flags = 'flags' in keywords and keywords['flags'] or "" for name in args: assert isinstance(name, str) - setattr(cls, "app_" + name, _generic_app(name, flags=flags)) + setattr(cls, "app_" + name, _generic_wrapper(name, flags=flags)) def tup(*args): @@ -143,10 +143,14 @@ def depends_on(*args): return decorator -def _generic_app(name, flags=''): +def _generic_app(name, context, flags=''): + """Use this function when no other information is given""" + context.flags += flags + return tup(name, *context) + + +def _generic_wrapper(name, flags=''): + """Wraps _generic_app into a method for Applications""" assert isinstance(name, str) - @depends_on(name) - def handler(self, context): - context.flags += flags - return tup(name, *context) - return handler + return depends_on(name)(lambda self, context: + _generic_app(name, context, flags)) |