Class: Enolib::HtmlReporter
- Defined in:
- lib/enolib/reporters/html_reporter.rb
Class Method Summary collapse
Methods inherited from Reporter
#indicate_line, #initialize, #question_line, #report_comments, #report_element, #report_elements, #report_line, #report_missing_element, #report_multiline_value, #snippet
Constructor Details
This class inherits a constructor from Enolib::Reporter
Class Method Details
.report(context, emphasized = [], marked = []) ⇒ Object
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 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/enolib/reporters/html_reporter.rb', line 5 def self.report(context, emphasized = [], marked = []) emphasized = [emphasized] unless emphasized.is_a?(Array) marked = [marked] unless marked.is_a?(Array) content_header = context.messages::CONTENT_HEADER gutter_header = context.messages::GUTTER_HEADER omission = line('...', '...') snippet = '<pre class="eno-report">' snippet += "<div>#{context.sourceLabel}</div>" if context.source snippet += line(gutter_header, content_header) in_omission = false context[:instructions].each do |instruction| emphasize = emphasized.include?(instruction) mark = marked.include?(instruction) show = (emphasized + marked).any? do |marked_instruction| instruction[:line] >= marked_instruction[:line] - 2 && instruction[:line] <= marked_instruction[:line] + 2 end if show classes = [] if emphasize classes.push('eno-report-line-emphasized') elsif mark classes.push('eno-report-line-marked') end snippet += line( (instruction[:line] + Enolib::HUMAN_INDEXING).to_s, context[:input][instruction[:index], instruction[:length]], classes ) in_omission = false elsif !in_omission snippet += omission in_omission = true end end snippet += '</pre>' snippet end |