"""
Global utilities can be created by subclassing grok.Utility:
>>> IClub.providedBy(NormalClub())
True
>>> grok.grok(__name__)
>>> from zope import component
>>> normal_club = component.getUtility(IClub)
>>> IClub.providedBy(normal_club)
True
>>> isinstance(NormalClub, normal_club)
True
Named utilities are registered using grok.name:
>>> huge_club = component.getUtility(IClub)
>>> IClub.providedBy(huge_club)
True
>>> isinstance(HugeClub, huge_club)
True
"""
import grok
from zope import interface
class IClub(interface.Interface):
pass
class NormalClub(grok.Utility):
grok.implements(IClub)
class HugeClub(grok.Utility):
grok.implements(IClub)
grok.name('huge')