diff options
Diffstat (limited to 'examples/resources')
| -rw-r--r-- | examples/resources/lib/pubsub.lua | 24 | ||||
| -rw-r--r-- | examples/resources/lib/utillib.lua | 3 |
2 files changed, 20 insertions, 7 deletions
diff --git a/examples/resources/lib/pubsub.lua b/examples/resources/lib/pubsub.lua index 2847d92..47d9a63 100644 --- a/examples/resources/lib/pubsub.lua +++ b/examples/resources/lib/pubsub.lua @@ -13,21 +13,33 @@ function PubSub:add( name ) self.signals[ name ] = {} end +function PubSub:remove( name ) + if self.signals[ name ] ~= nil then + table.remove( self.signals, name ) + end +end + function PubSub:subscribe( name, func ) - table.insert( self.signals[ name ], func ) + if self.signals[ name ] ~= nil then + table.insert( self.signals[ name ], func ) + end end function PubSub:unSubscribe( name, uFunc ) - for i, func in ipairs( self.signals[ name ] ) do - if func == uFunc then - table.remove( self.signals[ name ], i ) + if self.signals[ name ] ~= nil then + for i, func in ipairs( self.signals[ name ] ) do + if func == uFunc then + table.remove( self.signals[ name ], i ) + end end end end function PubSub:publish( name, ... ) - for _, func in ipairs( self.signals[ name ] ) do - func( ... ) + if self.signals[ name ] ~= nil then + for _, func in ipairs( self.signals[ name ] ) do + func( ... ) + end end end diff --git a/examples/resources/lib/utillib.lua b/examples/resources/lib/utillib.lua index 73bb11c..a661f60 100644 --- a/examples/resources/lib/utillib.lua +++ b/examples/resources/lib/utillib.lua @@ -7,7 +7,8 @@ end local utillib = {} -function utillib.tableClone( org ) +-- Does not work with dictionaries. +function utillib.arrayClone( org ) return { table.unpack( org ) } end |
