about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/yahns/config.rb15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/yahns/config.rb b/lib/yahns/config.rb
index e571cb7..3d26ccb 100644
--- a/lib/yahns/config.rb
+++ b/lib/yahns/config.rb
@@ -227,15 +227,24 @@ class Yahns::Config # :nodoc:
     /:/ =~ addr ? "[#{addr}]:#{port}" : "#{addr}:#{port}"
   end
 
-  def queue(name = nil, &block)
+  def queue(*args, &block)
     var = :queue
     prev_block = @block
     if prev_block
       _check_in_block(:app, var)
-      name ||= @block
+      if block_given?
+        args.size == 0 or
+          raise ArgumentError,
+                "queues defined with a block inside app must not have names"
+        name = @block
+      else
+        name = args[0] or raise "queue must be given a name if no block given"
+      end
     else
-      name ||= :default
+      name = args[0] || :default
     end
+    args.size > 1 and
+      raise ArgumentError, "queue only takes one name argument"
     qegg = @qeggs[name]
     if block_given?
       @block = CfgBlock.new(:queue, qegg)