Skip to content

Commit e5b25e6

Browse files
authored
Merge pull request #300 from acl-services/do-not-use-special-chars-in-filenames-GS-262
Remove all windows-illegal characters from filenames
2 parents ba62ae1 + b2dd1d8 commit e5b25e6

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

lib/rspec_api_documentation/views/markup_example.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ def dirname
2323
end
2424

2525
def filename
26-
basename = description.downcase.gsub(/\s+/, '_').gsub(Pathname::SEPARATOR_PAT, '')
26+
special_chars = /[<>:"\/\\|?*]/
27+
basename = description.downcase.gsub(/\s+/, '_').gsub(special_chars, '')
2728
basename = Digest::MD5.new.update(description).to_s if basename.blank?
2829
"#{basename}.#{extension}"
2930
end

spec/views/html_example_spec.rb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
describe RspecApiDocumentation::Views::HtmlExample do
55
let(:metadata) { { :resource_name => "Orders" } }
66
let(:group) { RSpec::Core::ExampleGroup.describe("Orders", metadata) }
7-
let(:rspec_example) { group.example("Ordering a cup of coffee") {} }
7+
let(:description) { "Ordering a cup of coffee" }
8+
let(:rspec_example) { group.example(description) {} }
89
let(:rad_example) do
910
RspecApiDocumentation::Example.new(rspec_example, configuration)
1011
end
@@ -19,6 +20,14 @@
1920
expect(html_example.filename).to eq("ordering_a_cup_of_coffee.html")
2021
end
2122

23+
context "when description contains special characters for Windows OS" do
24+
let(:description) { 'foo<>:"/\|?*bar' }
25+
26+
it "removes them" do
27+
expect(html_example.filename).to eq("foobar.html")
28+
end
29+
end
30+
2231
describe "multi charctor example name" do
2332
let(:metadata) { { :resource_name => "オーダ" } }
2433
let(:label) { "Coffee / Teaが順番で並んでいること" }

0 commit comments

Comments
 (0)