Sha256: 114eb3c65702b3ebdad2b1117683e83a3bb0ab7696969d0058a431f7a577b0b9

Contents?: true

Size: 1.65 KB

Versions: 4

Compression:

Stored size: 1.65 KB

Contents

module Attractor
  # HTML reporter
  class HtmlReporter < BaseReporter
    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/stylesheets/main.css', 'w') { |file| file.write(css) }
      File.open('./attractor_output/javascripts/index.js', 'w') { |file| file.write(javascript) }
      File.open('./attractor_output/javascripts/index.pack.js', 'w') { |file| file.write(javascript_pack) }
      
      File.open('./attractor_output/index.html', 'w') { |file| file.write(render) }
      puts "Generated HTML report at #{File.expand_path './attractor_output/index.html'}"

      Launchy.open(File.expand_path('./attractor_output/index.html'))
    end

    def logo
      File.read(File.expand_path('../../../app/assets/images/attractor_logo.svg', __dir__))
    end

    def css
      File.read(File.expand_path('../../../app/assets/stylesheets/main.css', __dir__))
    end

    def javascript_pack
      File.read(File.expand_path('../../../app/assets/javascripts/index.pack.js', __dir__))
    end

    def javascript
      template = Tilt.new(File.expand_path('../../../app/assets/javascripts/index.js.erb', __dir__))
      template.render self
    end

    def render
      template = Tilt.new(File.expand_path('../../../app/views/index.html.erb', __dir__))
      template.render self
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
attractor-2.3.0 lib/attractor/reporters/html_reporter.rb~
attractor-2.2.0 lib/attractor/reporters/html_reporter.rb~
attractor-2.1.0 lib/attractor/reporters/html_reporter.rb~
attractor-2.0.5 lib/attractor/reporters/html_reporter.rb~