On Thu, Mar 22, 2012 at 10:31 AM, Chris Nelson <chris.nel...@sixnet.com> wrote:
>
> On 03/21/2012 02:36 PM, Chris Nelson wrote:
>>
>> ... But how do I make sure that only one sorter is
>>
>> enabled? Do I have to resort to something like:
>>
>> sorters = ExtensionPoint(ITaskSorter)
>>
>> count = 0
>> for sorter i self.sorters:
>> count++
>> theSorter = sorter
>> if count > 1:
>> ...raise an error...
>>
>> ? ...
>
>
> Granted that this may be a strange way to program Trac, it seems like it is 
> valid.  But when I do:
>
>        self.sorters = ExtensionPoint(ITaskSorter)
>        i = 0
>        for s in self.sorters:
>            i += 1
>        self.env.log.debug('Found %d enabled sorters' % i)
>
> I get:
>
>   'ExtensionPoint' object is not iterable
>
> I'm in Trac 0.11.6 but I Googled uses of ExtensionPoint and there seem to be 
> some quite old ones in the style that iterates over an ExtensionPoint.  What 
> am I doing wrong?
>
>

ExtensionPoint is a descriptor (like property objects ;) so it makes
its magic happen when it's declared in the class suite i.e.

{{{
#!python

class MyComponent(Component):
        xp = ExtensionPoint(IMyInterface)

c = MyComponent(env)
for x in c.xp :
        # Do something

}}}

In order to use it that way you'll need to do something like this

{{{
#!python

self.sorters = ExtensionPoint(ITaskSorter)
       i = 0
       for s in self.sorters.extensions(self):
           i += 1
       self.env.log.debug('Found %d enabled sorters' % i)

}}}

... but IMO last approach's not recommended
;)

--
Regards,

Olemis

Facebook => http://www.facebook.com/olemis
Twitter => http://www.twitter.com/olemislc (@olemislc)
Blog ES => http://simelo-es.blogspot.com
Blog EN => http://simelo-en.blogspot.com
Quora => http://www.quora.com/olemis
Youtube => http://youtube.com/user/greatsoftw

Featured article : [svn r11148] XmlRpcPlugin: `wiki.getPageHTML()` now
supports wiki manipulators that can possibly modify the wiki text
content before rendering. With test.
Tweet: yo no puedo creer q haya pasado inadvertido el 1/2/12 12:12 ...
@elainediaz2003 no dijo na' ... OMG ! ... much more coming soon ;) #fb
Follow @olemislc Reply Retweet   12:59 Feb-01
  Get this email app!
Get a signature like this. CLICK HERE.

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Development" group.
To post to this group, send email to trac-dev@googlegroups.com.
To unsubscribe from this group, send email to 
trac-dev+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/trac-dev?hl=en.

Reply via email to