diff --git a/CHANGELOG.md b/CHANGELOG.md index a309d72..60b656a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,9 @@ ##### Bug Fixes -* None. +* Allow reading unquoted strings that contain `-`. + [Samuel Giddins](https://github.com/segiddins) + [Xcodeproj#438](https://github.com/CocoaPods/Xcodeproj/issues/438) ## 0.1.3 (2016-11-01) diff --git a/lib/nanaimo/reader.rb b/lib/nanaimo/reader.rb index 5184157..e2d1278 100644 --- a/lib/nanaimo/reader.rb +++ b/lib/nanaimo/reader.rb @@ -112,7 +112,7 @@ def parse_object def parse_string eat_whitespace! - unless match = @scanner.scan(%r{[\w/.$]+}) + unless match = @scanner.scan(%r{[\w/.$-]+}o) raise_parser_error ParseError, "not a valid string at index #{@scanner.pos} (char is #{current_character.inspect})" end Nanaimo::String.new(match, nil) diff --git a/spec/nanaimo/reader_spec.rb b/spec/nanaimo/reader_spec.rb index 52ee828..669a1a2 100644 --- a/spec/nanaimo/reader_spec.rb +++ b/spec/nanaimo/reader_spec.rb @@ -114,6 +114,14 @@ module Nanaimo expect(subject).to eq Nanaimo::Dictionary.new({ Nanaimo::String.new('key', '') => Nanaimo::String.new('$PROJECT_DIR/mogenerator/mogenerator', '') }, '') end end + + describe 'that contain `-`' do + let(:unquoted_string) { 'foo/bar-baz' } + + it 'are parsed correctly' do + expect(subject).to eq Nanaimo::Dictionary.new({ Nanaimo::String.new('key', '') => Nanaimo::String.new('foo/bar-baz', '') }, '') + end + end end describe 'quoted strings' do