Metadata-Version: 2.1
Name: simpleobserver
Version: 1.0.3
Summary: A very simple implementation of the observer pattern
Home-page: http://github.com/cooper-software/observer
Author: Elisha Fitch-Cook
Author-email: elisha@cooper.com
License: MIT
Keywords: events,patterns,observer
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Environment :: MacOS X
Classifier: Environment :: Web Environment
Classifier: Environment :: Win32 (MS Windows)
Classifier: Environment :: X11 Applications
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.4

simpleobserver
===============

|PyPI| |Build Status| |Coverage Status|

A simple implementation of the observer pattern.

.. code-block:: python

	import simpleobserver
	# Create a subject and list the events it might fire
	foo = simpleobserver.Subject('bar', 'baz')

	# Add a listener
	def foo_bar_listener(*args):
	   print("heard 'bar'", args)
	   
	foo('bar', foo_bar_listener)

	# fire events
	foo.fire('bar', 1, 2, 3)
	# -> heard 'bar' (1, 2, 3)

	# Trying to listen to an unregistered event throws an error
	foo('snorble', lambda: None)
	# -> AssertionError: snorble is not a valid event for this subject

	# Same with trying to fire an unregistered event
	foo.fire('snorble')
	# -> AssertionError: snorble is not a valid event for this subject


.. |PyPI| image:: https://pypip.in/version/simpleobserver/badge.svg?style=flat
   :target: https://pypi.python.org/pypi/simpleobserver/

.. |Build Status| image:: https://travis-ci.org/cooper-software/simpleobserver.svg
   :target: https://travis-ci.org/cooper-software/simpleobserver

.. |Coverage Status| image:: https://img.shields.io/coveralls/cooper-software/simpleobserver.svg
   :target: https://coveralls.io/r/cooper-software/simpleobserver



