Skip to content

Instantly share code, notes, and snippets.

@whardier
Created July 2, 2020 22:47
Show Gist options
  • Save whardier/541415c8e7d792f7e4720179a44088c7 to your computer and use it in GitHub Desktop.
Save whardier/541415c8e7d792f7e4720179a44088c7 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3.8
events = [
{"monkey": "Sam", "state": "hungry", "kind": "banana" },
{"monkey": "Chet", "state": "flinging", "kind": "grass" },
{"monkey": "Sam", "state": "flinging", "kind": "grass" },
{"monkey": "Sam", "state": "hungry", "kind": "banana" },
{"monkey": "Chet", "state": "hungry", "kind": "banana" },
{"monkey": "Chet", "state": "flinging", "kind": "feces" },
{"monkey": "Sam", "state": "flinging", "kind": "grass" },
{"monkey": "Sam", "state": "hungry", "kind": "apple" },
]
def do_monkey_flinging(event):
print(f"{event['monkey']}:\tdo_monkey_flinging")
def do_monkey_hungry_apple(event):
print(f"{event['monkey']}:\tdo_monkey_hungry_apple")
def do_monkey_hungry_banana(event):
print(f"{event['monkey']}:\tdo_monkey_hungry_banana")
def dispatch_event(event):
if event["state"] == "hungry":
if event["kind"] == "banana":
do_monkey_hungry_banana(event)
if event["kind"] == "apple":
do_monkey_hungry_apple(event)
elif event["state"] == "flinging":
do_monkey_flinging(event)
for event in events:
dispatch_event(event)
Sam: do_monkey_hungry_banana
Chet: do_monkey_flinging
Sam: do_monkey_flinging
Sam: do_monkey_hungry_banana
Chet: do_monkey_hungry_banana
Chet: do_monkey_flinging
Sam: do_monkey_flinging
Sam: do_monkey_hungry_apple
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment