Sha256: 4985dd78b951c93b2e4ad571240ca1fd0bdcc46d0edfe0942a039aa91aa840a8
Contents?: true
Size: 1.09 KB
Versions: 6
Compression:
Stored size: 1.09 KB
Contents
# Author:: Eric Crane (mailto:eric.crane@mac.com) # Copyright:: Copyright (c) 2020 Eric Crane. All rights reserved. # # Central Message Dispatch. # Responsible for sending message to objects. # All object messaging goes through here so we can uniformly # manage things like checking to make sure object can # receive the messages sent, handling errors, etc. # module GlooLang module Exec class Dispatch # # Dispatch the given message to the given object. # def self.message( msg, to_obj, params = nil ) $log.debug "Dispatch message #{msg} to #{to_obj.name}" a = GlooLang::Exec::Action.new msg, to_obj, params GlooLang::Exec::Dispatch.action a end # # Dispatch an action. # def self.action( action ) unless action.valid? $log.warn "Object #{action.to.name} does not respond to #{action.msg}" end $engine.exec_env.push_action action $log.debug "Sending message #{action.msg} to #{action.to.name}" action.dispatch $engine.exec_env.pop_action end end end end
Version data entries
6 entries across 6 versions & 1 rubygems