interface.map decorator

#1
This commit is contained in:
Kenneth Reitz
2011-09-06 22:07:59 -04:00
parent 9f4f9b4228
commit bba7d890b8
+20 -2
View File
@@ -11,6 +11,8 @@ This omdule provides the core resources system.
from uuid import uuid4
__all__ = ('Resource', 'Interface', 'Element')
class Resource(object):
"""A RESTful Resource."""
@@ -52,8 +54,24 @@ class Interface(object):
return object.__getattribute__(self, key)
def map(self, key, resource):
self.resources[key] = resource(interface=self, name=key)
def map(self, key, resource=None):
"""Map
If map is None (not provided), returns decorator.
"""
if resource:
self.resources[key] = resource(interface=self, name=key)
else:
# Assume decorator usage.
def decorator(f):
self.map(key, f)
return f
return decorator