diff --git a/lib/sidekiq/cli.rb b/lib/sidekiq/cli.rb index 0c05bc9d..0b03f3b3 100644 --- a/lib/sidekiq/cli.rb +++ b/lib/sidekiq/cli.rb @@ -141,7 +141,7 @@ module Sidekiq @parser = OptionParser.new do |o| o.on "-q", "--queue QUEUE[,WEIGHT]...", "Queues to process with optional weights" do |arg| - queues_and_weights = arg.scan(/(\w+),?(\d*)/) + queues_and_weights = arg.scan(/([\w-]+),?(\d*)/) queues_and_weights.each {|queue_and_weight| parse_queues(opts, *queue_and_weight)} opts[:strict] = queues_and_weights.collect(&:last).none? {|weight| weight != ''} end diff --git a/test/test_cli.rb b/test/test_cli.rb index 361ea3df..325b8753 100644 --- a/test/test_cli.rb +++ b/test/test_cli.rb @@ -65,6 +65,11 @@ class TestCli < MiniTest::Unit::TestCase assert_equal %w(bar foo foo foo), Sidekiq.options[:queues] end + it 'handles queues with multi-word names' do + @cli.parse(['sidekiq', '-q', 'queue_one,queue-two', '-r', './test/fake_env.rb']) + assert_equal %w(queue_one queue-two), Sidekiq.options[:queues] + end + it 'sets verbose' do old = Sidekiq.logger.level @cli.parse(['sidekiq', '-v', '-r', './test/fake_env.rb'])