class Attractor::HtmlReporter
HTML reporter
Public Instance Methods
css()
click to toggle source
# File lib/attractor/reporters/html_reporter.rb, line 57 def css File.read(File.expand_path("../../../app/assets/stylesheets/main.css", __dir__)) end
favicon()
click to toggle source
# File lib/attractor/reporters/html_reporter.rb, line 53 def favicon File.read(File.expand_path("../../../app/assets/images/attractor_favicon.png", __dir__)) end
javascript()
click to toggle source
# File lib/attractor/reporters/html_reporter.rb, line 65 def javascript template = Tilt.new(File.expand_path("../../../app/assets/javascripts/index.js.erb", __dir__)) template.render self end
javascript_pack()
click to toggle source
# File lib/attractor/reporters/html_reporter.rb, line 61 def javascript_pack File.read(File.expand_path("../../../app/assets/javascripts/index.pack.js", __dir__)) end
logo()
click to toggle source
# File lib/attractor/reporters/html_reporter.rb, line 49 def logo File.read(File.expand_path("../../../app/assets/images/attractor_logo.svg", __dir__)) end
render()
click to toggle source
# File lib/attractor/reporters/html_reporter.rb, line 70 def render template = Tilt.new(File.expand_path("../../../app/views/index.html.erb", __dir__)) template.render self end
report()
click to toggle source
Calls superclass method
Attractor::BaseReporter#report
# File lib/attractor/reporters/html_reporter.rb, line 6 def report super puts "Generating an HTML report" @serve_static = true FileUtils.mkdir_p "./attractor_output" FileUtils.mkdir_p "./attractor_output/stylesheets" FileUtils.mkdir_p "./attractor_output/images" FileUtils.mkdir_p "./attractor_output/javascripts" File.open("./attractor_output/images/attractor_logo.svg", "w") { |file| file.write(logo) } File.open("./attractor_output/images/attractor_favicon.png", "w") { |file| file.write(favicon) } File.open("./attractor_output/stylesheets/main.css", "w") { |file| file.write(css) } File.open("./attractor_output/javascripts/index.pack.js", "w") { |file| file.write(javascript_pack) } if @calculators.size > 1 @calculators.each do |calc| @short_type = calc.first suggester = Suggester.new(values(type: @short_type)) @suggestions = suggester.suggest File.open("./attractor_output/javascripts/index.#{@short_type}.js", "w") { |file| file.write(javascript) } File.open("./attractor_output/index.#{@short_type}.html", "w") { |file| file.write(render) } puts "Generated HTML report at #{File.expand_path "./attractor_output/"}/index.#{@short_type}.html" end if @open_browser Launchy.open(File.expand_path("./attractor_output/index.#{@calculators.first.first}.html")) puts "Opening browser window..." end else File.open("./attractor_output/javascripts/index.js", "w") { |file| file.write(javascript) } File.open("./attractor_output/index.html", "w") { |file| file.write(render) } puts "Generated HTML report at #{File.expand_path "./attractor_output/index.html"}" if @open_browser Launchy.open(File.expand_path("./attractor_output/index.html")) puts "Opening browser window..." end end end