lib/knj/objects.rb in knjrbfw-0.0.92 vs lib/knj/objects.rb in knjrbfw-0.0.93
- old
+ new
@@ -147,14 +147,24 @@
return false
end
#Unconnects a connect by 'object' and 'conn_id'.
def unconnect(args)
- raise "No object given." if !args["object"]
- raise "No conn-ID given." if !args["conn_id"]
- raise "Object doesnt exist: '#{args["object"]}'." if !@callbacks.key?(args["object"].to_sym)
- raise "Conn ID doest exist: '#{args["conn_id"]}'." if !@callbacks[args["object"].to_sym].key?(args["conn_id"])
- @callbacks[args["object"].to_sym].delete(args["conn_id"])
+ raise ArgumentError, "No object given." if !args["object"]
+ raise ArgumentError, "Object doesnt exist: '#{args["object"]}'." if !@callbacks.key?(args["object"].to_sym)
+
+ if args["conn_id"]
+ conn_ids = [args["conn_id"]]
+ elsif args["conn_ids"]
+ conn_ids = args["conn_ids"]
+ else
+ raise ArgumentError, "Could not figure out connection IDs."
+ end
+
+ conn_ids.each do |conn_id|
+ raise Errno::ENOENT, "Conn ID doest exist: '#{conn_id}' (#{args})." if !@callbacks[args["object"].to_sym].key?(conn_id)
+ @callbacks[args["object"].to_sym].delete(conn_id)
+ end
end
#This method is used to call the connected callbacks for an event.
def call(args, &block)
classstr = args["object"].class.classname.to_sym
\ No newline at end of file