mirror of
https://github.com/jlengrand/Observer.git
synced 2026-03-10 08:31:23 +00:00
55 lines
1.0 KiB
Python
55 lines
1.0 KiB
Python
#!/usr/bin/env python
|
|
|
|
import Observer
|
|
|
|
class Observable():
|
|
"""
|
|
"""
|
|
|
|
def __init__(self):
|
|
"""
|
|
"""
|
|
self.val = 1
|
|
self.obs_collection = []
|
|
|
|
|
|
def subscribe(self, observer):
|
|
"""
|
|
"""
|
|
try:
|
|
if not(observer in self.obs_collection):
|
|
self.obs_collection.append(observer)
|
|
print "%s added to collection" %(str(observer))
|
|
else:
|
|
print "%s already in collection" %(str(observer))
|
|
|
|
except TypeError:
|
|
print "Failed to add %s" %(str(observer))
|
|
|
|
def unsubscribe(self, observer):
|
|
"""
|
|
"""
|
|
try:
|
|
if observer in self.obs_collection:
|
|
self.obs_collection.remove(observer)
|
|
print "%s removed from collection" %(str(observer))
|
|
else:
|
|
print "%s not in collection" %(str(observer))
|
|
|
|
except TypeError:
|
|
print "Failed to remove %s" %(str(observer))
|
|
|
|
def notify(self, message):
|
|
"""
|
|
"""
|
|
for observer in self.obs_collection:
|
|
print "sent %s to %s" %(message, str(observer))
|
|
observer.update(message)
|
|
|
|
|
|
def set_val(self, val=1):
|
|
"""
|
|
"""
|
|
self.val += val
|
|
self.notify(str(self.val))
|