class Specify
Public Class Methods
new(examples)
click to toggle source
# File lib/rspec_html_formatter.rb, line 138 def initialize(examples) @examples = examples end
Public Instance Methods
process()
click to toggle source
# File lib/rspec_html_formatter.rb, line 142 def process lines = File.readlines(@examples.first.file_path) @examples.each_with_index do |e, i| start_line = e.metadata[:line_number] end_line = @examples[i+1].nil? ? lines.size : @examples[i+1].metadata[:line_number] - 1 code_block = lines[start_line..end_line] spec = code_block.select { |l| l.match(/#->/) }.join('') if !spec.split.empty? formatter = Rouge::Formatters::HTML.new(css_class: 'highlight') lexer = Rouge::Lexers::Gherkin.new formatted_spec = formatter.format(lexer.lex(spec.gsub('#->', ''))) e.set_spec(formatted_spec) end end @examples end