forked from XCTestHTMLReport/XCTestHTMLReport
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreate_templates.rb
executable file
·42 lines (33 loc) · 1020 Bytes
/
create_templates.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env ruby
class String
def camel_case_lower
self.split('_').inject([]){ |buffer,e| buffer.push(buffer.empty? ? e : e.capitalize) }.join
end
end
def generated_vars
templates_path = "Sources/XCTestHTMLReport/HTML"
templates = Dir["#{templates_path}/**/*.html"]
css_content = File.read("#{templates_path}/style.css").gsub("\"", "\\\"")
js_content = File.read("#{templates_path}/app.js").gsub("\"", "\\\"")
templates.map do |template|
name = File.basename(template, ".*").camel_case_lower
content = File.read(template)
.gsub("\"", "\\\"")
.gsub("/**** CSS ****/", css_content)
.gsub("/**** JS ****/", js_content)
.chomp
<<-eos
static let #{name} = \"\"\"
#{content}
\"\"\"
eos
end
end
generated_content = <<-eos
/// DO NOT EDIT! This file is autogenerated by create_templates.rb
struct HTMLTemplates
{
#{generated_vars.join("\n")}
}
eos
File.open("Sources/XCTestHTMLReport/Classes/HTMLTemplates.swift", "w") { |file| file.puts generated_content }