assets/output.html.erb
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8' />
<title>RuboCop Inspection Report</title>
<style>
<%= render_css %>
</style>
<script>
(function() {
// floating headers. requires classList support.
if (!('classList' in document.createElement("_"))) return;
var loaded = false,
boxes,
boxPositions;
window.onload = function() {
var scrollY = window.scrollY;
boxes = document.querySelectorAll('.offense-box');
boxPositions = [];
for (var i = 0; i < boxes.length; i++)
// need to add scrollY because the page might be somewhere other than the top when loaded.
boxPositions[i] = boxes[i].getBoundingClientRect().top + scrollY;
loaded = true;
};
window.onscroll = function() {
if (!loaded) return;
var i,
idx,
scrollY = window.scrollY;
for (i = 0; i < boxPositions.length; i++) {
if (scrollY <= boxPositions[i] - 1) {
idx = i;
break;
}
}
if (typeof idx == 'undefined') idx = boxes.length;
if (idx > 0)
boxes[idx - 1].classList.add('fixed');
for (i = 0; i < boxes.length; i++) {
if (i < idx) continue;
boxes[i].classList.remove('fixed');
}
};
})();
</script>
</head>
<body>
<div id="header">
<img class="logo" src="data:image/png;base64,<%= base64_encoded_logo_image %>" alt="">
<h1 class="title">RuboCop Inspection Report</h1>
</div>
<div class="information">
<div class="infobox">
<div class="total">
<%= pluralize(files.count, 'file') %> inspected,
<%= pluralize(summary.offense_count, 'offense', no_for_zero: true) %> detected:
</div>
<ul class="offenses-list">
<% files.each do |file| %>
<% next if file.offenses.none? %>
<li>
<a href="#offense_<%= relative_path(file.path) %>">
<%= relative_path(file.path) %> - <%= pluralize(file.offenses.count, 'offense') %>
</a>
</li>
<% end %>
</ul>
</div>
</div>
<div id="offenses">
<% files.each do |file| %>
<% if file.offenses.any? %>
<div class="offense-box" id="offense_<%= relative_path(file.path) %>">
<div class="box-title-placeholder"><h3> </h3></div>
<div class="box-title"><h3><%= relative_path(file.path) %> - <%= pluralize(file.offenses.count, 'offense') %></h3></div>
<div class="offense-reports">
<% file.offenses.each do |offense| %>
<div class="report">
<div class="meta">
<span class="location">Line #<%= offense.location.line %></span> –
<span class="severity <%= offense.severity %>"><%= offense.severity %>:</span>
<span class="message"><%= decorated_message(offense) %></span>
</div>
<% unless offense.location.source_line.strip.empty? %>
<pre><code><%= highlighted_source_line(offense) %></code></pre>
<% end %>
</div>
<% end %>
</div>
</div>
<% end %>
<% end %>
</div>
<footer>
Generated by <a href="https://github.com/rubocop/rubocop">RuboCop</a>
<span class="version"><%= RuboCop::Version::STRING %></span>
</footer>
</body>
</html>