a | b | |
---|
| 0 | + | def service(**kwargs): |
---|
| 0 | + | def wrapper(klass): |
---|
| 0 | + | for name in ('get',): |
---|
| 0 | + | meth = getattr(klass, name) |
---|
| 0 | + | view_args = dict(kwargs, **getattr(meth, '__view_args__', {})) |
---|
| 0 | + | print 'define route %s with %s' % (name, view_args) |
---|
| 0 | + | return klass |
---|
| 0 | + | return wrapper |
---|
| 0 | + | |
---|
| 0 | + | |
---|
| 0 | + | def view(**kwargs): |
---|
| 0 | + | def wrapper(func): |
---|
| 0 | + | setattr(func, '__view_args__', kwargs) |
---|
| 0 | + | return func |
---|
| 0 | + | return wrapper |
---|
| 0 | + | |
---|
| 0 | + | |
---|
| 0 | + | @service(path='/path') |
---|
| 0 | + | class Service(object): |
---|
| 0 | + | |
---|
| 0 | + | @view(permission='view') |
---|
| 0 | + | def get(self): |
---|
| 0 | + | return {} |
---|
| 0 | + | |
---|
| 0 | + | ----------- |
---|
| 0 | + | |
---|
| 0 | + | % python test.py |
---|
| 0 | + | define route get with {'path': '/path', 'permission': 'view'} |
---|
... | |
---|