File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -28,7 +28,7 @@ def self.parse(contents)
2828 body = false
2929 when /^\- \- \- /
3030 when %r{^\+ \+ \+ b/(?<file_name>.*)}
31- file_name = Regexp . last_match [ :file_name ]
31+ file_name = Regexp . last_match [ :file_name ] . rstrip
3232 body = true
3333 when /^(?<body>[\ @\+ \- \\ ].*)/
3434 patch << Regexp . last_match [ :body ] if body
Original file line number Diff line number Diff line change @@ -15,6 +15,10 @@ module GitDiffParser
1515 let ( :sjis_file ) { 'spec/support/fixtures/sjis.csv' }
1616 let ( :sjis_diff ) { sjis_file . gsub ( /\. csv\z / , '.diff' ) }
1717 let ( :sjis_body ) { File . read ( sjis_diff ) }
18+
19+ let ( :whitespace_file ) { 'b/spec/support/fixtures/sjis.csv' }
20+ let ( :whitespace_filename_diff ) { 'spec/support/fixtures/whitespacefilename.diff' }
21+ let ( :whitespace_filename_body ) { File . read ( whitespace_filename_diff ) }
1822
1923 it 'returns parsed patches' do
2024 diff_body = File . read ( 'spec/support/fixtures/d1bd180-c27866c.diff' )
@@ -36,6 +40,11 @@ module GitDiffParser
3640 expect { patches = Patches . parse ( sjis_body ) } . not_to raise_error
3741 expect ( patches [ 0 ] . file ) . to eq sjis_file
3842 end
43+
44+ it 'correctly strips trailing whitespace from filenames' do
45+ patches = Patches . parse ( whitespace_filename_body )
46+ expect ( patches [ 0 ] . file == whitespace_file )
47+ end
3948 end
4049 end
4150end
Original file line number Diff line number Diff line change 1+ diff --git a/spec/support/fixtures/sjis.csv b/spec/support/fixtures/sjis.csv
2+ new file mode 100644
3+ index 0000000..4c19aee
4+ --- /dev/null
5+ +++ b/spec/support/fixtures/sjis.csv
6+ @@ -0,0 +1 @@
7+ + �M abcdefg
8+ \ No newline at end of file
You can’t perform that action at this time.
0 commit comments