From 233e3ffe0ef35dbabe49340ba567499690dcc166 Mon Sep 17 00:00:00 2001 From: Michael Trier Date: Fri, 30 May 2008 21:01:44 -0400 Subject: renamed git_python to git. Removed pop_key and replaced with dict.pop. Fixed up tests so they pass except for stderr test. Modified version information retrieval. --- lib/git/method_missing.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 lib/git/method_missing.py (limited to 'lib/git/method_missing.py') diff --git a/lib/git/method_missing.py b/lib/git/method_missing.py new file mode 100644 index 00000000..478ee1d3 --- /dev/null +++ b/lib/git/method_missing.py @@ -0,0 +1,21 @@ +class MethodMissingMixin(object): + """ + A Mixin' to implement the 'method_missing' Ruby-like protocol. + + This was `taken from a blog post `_ + """ + def __getattribute__(self, attr): + try: + return object.__getattribute__(self, attr) + except: + class MethodMissing(object): + def __init__(self, wrapped, method): + self.__wrapped__ = wrapped + self.__method__ = method + def __call__(self, *args, **kwargs): + return self.__wrapped__.method_missing(self.__method__, *args, **kwargs) + return MethodMissing(self, attr) + + def method_missing(self, *args, **kwargs): + """ This method should be overridden in the derived class. """ + raise NotImplementedError(str(self.__wrapped__) + " 'method_missing' method has not been implemented.") -- cgit v1.2.1