diff options
-rw-r--r-- | lib/yahns/config.rb | 15 |
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) |