From 42e4923c8655fe9f9bd685c6a23a8e6d1ccbe541 Mon Sep 17 00:00:00 2001 From: jonisavo Date: Sat, 5 Sep 2020 20:53:48 +0300 Subject: [PATCH] HandlerHash#add can now take a block --- Data/Scripts/006_Events and files/002_EventHandlers.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Data/Scripts/006_Events and files/002_EventHandlers.rb b/Data/Scripts/006_Events and files/002_EventHandlers.rb index 101fc4c12..f04a8e5fe 100644 --- a/Data/Scripts/006_Events and files/002_EventHandlers.rb +++ b/Data/Scripts/006_Events and files/002_EventHandlers.rb @@ -99,11 +99,14 @@ class HandlerHash @addIfs.push([condProc,handler]) end - def add(sym,handler) # 'sym' can be an ID or symbol + def add(sym,handler=nil,&handler_block) # 'sym' can be an ID or symbol + if ![Proc,Hash].include?(handler.class) && !block_given? + raise ArgumentError, "#{self.class.name} for #{sym.inspect} has no valid handler" + end id = fromSymbol(sym) - @hash[id] = handler if id + @hash[id] = handler || handler_block if id symbol = toSymbol(sym) - @hash[symbol] = handler if symbol + @hash[symbol] = handler || handler_block if symbol end def copy(src,*dests)