[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