Skip to content
This repository was archived by the owner on Nov 30, 2024. It is now read-only.

Combine multiple --pattern arguments #2002

Merged
merged 2 commits into from
Jun 18, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
### Development

Enhancements:

* Combine multiple `--pattern` arguments making them equivalent to
`--pattern=1,2,...,n`. (Jon Rowe, #2002)

### 3.3.0 / 2015-06-12
[Full Changelog](http://github.com/rspec/rspec-core/compare/v3.2.3...v3.3.0)

Expand Down
8 changes: 7 additions & 1 deletion lib/rspec/core/option_parser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ def parse(source=nil)
private

# rubocop:disable MethodLength
# rubocop:disable CyclomaticComplexity
def parser(options)
OptionParser.new do |parser|
parser.banner = "Usage: rspec [options] [files or directories]\n\n"
Expand Down Expand Up @@ -179,7 +180,11 @@ def parser(options)
end

parser.on('-P', '--pattern PATTERN', 'Load files matching pattern (default: "spec/**/*_spec.rb").') do |o|
options[:pattern] = o
if options[:pattern]
options[:pattern] += ',' + o
else
options[:pattern] = o
end
end

parser.on('--exclude-pattern PATTERN',
Expand Down Expand Up @@ -250,6 +255,7 @@ def parser(options)
end
end
# rubocop:enable MethodLength
# rubocop:enable CyclomaticComplexity

def add_tag_filter(options, filter_type, tag_name, value=true)
(options[filter_type] ||= {})[tag_name] = value
Expand Down
5 changes: 5 additions & 0 deletions spec/rspec/core/option_parser_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,11 @@ def generate_help_text
options = Parser.parse([option, 'spec/**/*.spec'])
expect(options[:pattern]).to eq('spec/**/*.spec')
end

it 'combines multiple patterns' do
options = Parser.parse([option, 'spec/**/*.spec', option, 'tests/**/*.spec'])
expect(options[:pattern]).to eq('spec/**/*.spec,tests/**/*.spec')
end
end
end

Expand Down