def extend(mod)
         raise TypeError, '`mod` should be a module' unless mod.class == Module
         unless is_a?(mod)
           mod.extend ::Plezi::Controller::ClassMethods
           super(mod)
         end
         _pl_ws_map.update mod._pl_ws_map
         _pl_ad_map.update mod._pl_ad_map
      end
def extend(mod)
         raise TypeError, '`mod` should be a module' unless mod.class == Module
         unless is_a?(mod)
           mod.extend ::Plezi::Controller::ClassMethods
           super(mod)
         end
         _pl_ws_map.update mod._pl_ws_map
         _pl_ad_map.update mod._pl_ad_map
      end
Experimental: takes a module to be used for Websocket callbacks events.

 This function can only be called **after** a websocket connection was established (i.e., within the `on_open` callback).

 This allows a module "library" to be used similar to the way "rooms" are used in node.js, so that a number of different Controllers can listen to shared events.

 By dynamically extending a Controller instance using a module, Auto Dispatch events can be routed to the newly available methods.

 Notice: It is impossible to `unextend` an extended module at this time.