The future of Ring¶
Flexible controller¶
import ring
class A(object):
@ring.dict({})
def f(self, a, b):
...
@f.ring.key # override key creation function
def f_key(self, a, b):
... # possible __ring_key__ alternative
@f.ring.on_update # events
def f_on_update(self, a, b):
...
@ring.dict({})
def g(self, a):
...
@g.ring.cascade # cascading for subsets (and supersets)
def g_cascade(self):
return {
'delete': self.f,
}
Ring doctor¶
import ring
@ring.dict({}, 'prefix')
def f1(a):
pass
@ring.dict({}, 'prefix')
def f2(a):
pass
@ring.dict({}, 'overload', overload=True)
def o1(a):
pass
@ring.dict({}, 'overload', overload=2)
def o2(a):
pass
ring.doctor() # raise error: f1 and f2 has potential key collision