116: Added a user_initials property plugin to demostrate default() method

This commit is contained in:
Jason Gerard DeRose committed 2008-08-12 17:42:21 +00:00
1 parent 99d7638ff5
commit 7bbeb2db69
2 files changed
+24 -9

No files matched your search

+14 -3
View File
@@ -60,6 +60,11 @@ api.register(user_find)
# Register some properties for the 'user' object:
class user_login(public.prop):
def get_doc(self, _):
return _('user login')
api.register(user_login)
class user_givenname(public.prop):
def get_doc(self, _):
return _('user first name')
@@ -70,10 +75,16 @@ class user_sn(public.prop):
return _('user last name')
api.register(user_sn)
class user_login(public.prop):
class user_initials(public.prop):
def get_doc(self, _):
return _('user login')
api.register(user_login)
return _('user initials')
def default(self, **kw):
givenname = kw.get('givenname', None)
sn = kw.get('sn', None)
if givenname is None or sn is None:
return None
return '%s%s' % (givenname[0], sn[0])
api.register(user_initials)
# Register some methods for the 'group' object:
+10 -6
View File
@@ -184,6 +184,7 @@ class cmd(plugable.Plugin):
yield (key, value)
def normalize(self, **kw):
self.print_call('normalize', kw)
return dict(self.normalize_iter(kw))
def default_iter(self, kw):
@@ -194,29 +195,32 @@ class cmd(plugable.Plugin):
yield(option.name, value)
def default(self, **kw):
self.print_call('default', kw)
return dict(self.default_iter(kw))
def validate(self, **kw):
self.print_call('validate', kw)
for (key, value) in kw.items():
if key in self.options:
self.options[key].validate(value)
def execute(self, **kw):
self.print_call('execute', kw)
pass
def print_n_call(self, method, kw):
def print_call(self, method, kw):
print '%s.%s(%s)' % (
self.name,
method,
', '.join('%s=%r' % (k, v) for (k, v) in kw.items()),
)
return getattr(self, method)(**kw)
def __call__(self, **kw):
kw = self.print_n_call('normalize', kw)
kw.update(self.print_n_call('default', kw))
self.print_n_call('validate', kw)
return self.print_n_call('execute', kw)
self.print_call('__call__', kw)
kw = self.normalize(**kw)
kw.update(self.default(**kw))
self.validate(**kw)
self.execute(**kw)
class obj(plugable.Plugin):