[PyObjC-svn] r2265 - in trunk/pyobjc/pyobjc-core: Lib/objc PyObjCTest
[email protected] Tue, 14 Jul 2009 01:58:23 -0500
| Newsgroups | gmane.comp.python.pyobjc.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: ronaldoussoren
Date: Tue Jul 14 01:58:22 2009
New Revision: 2265
Log:
Fix an issue with objc.synthesize and add minimal testcase for this feature
Added:
trunk/pyobjc/pyobjc-core/PyObjCTest/test_synthesize.py (contents, props changed)
Modified:
trunk/pyobjc/pyobjc-core/Lib/objc/_descriptors.py
Modified: trunk/pyobjc/pyobjc-core/Lib/objc/_descriptors.py
==============================================================================
--- trunk/pyobjc/pyobjc-core/Lib/objc/_descriptors.py (original)
+++ trunk/pyobjc/pyobjc-core/Lib/objc/_descriptors.py Tue Jul 14 01:58:22 2009
@@ -196,22 +196,27 @@
objc.synthesize('someTitle', copy=True)
"""
+ if not name:
+ raise ValueError("Empty property name")
+
if ivarName is None:
ivarName = '_' + name
classDict = sys._getframe(1).f_locals
+ setterName = 'set%s%s_'%(name[0].upper(), name[1:])
+
if copy:
setter = textwrap.dedent('''
- def set%(name)s_(self, value):
+ def %(name)s(self, value):
self.%(ivar)s = value.copy()
- ''' % dict(name=name.capitalize(), ivar=ivarName))
+ ''' % dict(name=setterName, ivar=ivarName))
else:
setter = textwrap.dedent('''
- def set%(name)s_(self, value):
+ def %(name)s(self, value):
self.%(ivar)s = value
- ''' % dict(name=name.capitalize(), ivar=ivarName))
+ ''' % dict(name=setterName, ivar=ivarName))
getter = textwrap.dedent('''
def %(name)s(self):
@@ -224,5 +229,3 @@
exec getter in classDict
classDict[ivarName] = ivar(type=type)
-
-
------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge
This is your chance to win up to $100,000 in prizes! For a limited time,
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize
details at: http://p.sf.net/sfu/Challenge