class TurnipFormatter::StepTemplate::Exception
Public Class Methods
css()
click to toggle source
# File lib/turnip_formatter/step_template/exception.rb, line 11 def self.css <<-EOS section.scenario div.steps div.step_exception { margin: 1em 0em; padding: 1em; border: 1px solid #999999; background-color: #eee8d5; color: #586e75; } section.scenario div.steps div.step_exception dd { margin-top: 1em; margin-left: 1em; } pre.source { font-size: 12px; font-family: monospace; background-color: #073642; color: #dddddd; } pre.source code.ruby { padding: 0.1em 0 0.2em 0; } pre.source code.ruby .linenum { width: 75px; color: #fffbd3; padding-right: 1em; } pre.source code.ruby .offending { background-color: gray; } EOS end
Public Instance Methods
build_failed(step)
click to toggle source
@param [TurnipFormatter::Resource::Step::Failure] step
# File lib/turnip_formatter/step_template/exception.rb, line 52 def build_failed(step) datas = step.exceptions.map do |e| backtrace = formatted_backtrace(step.example, e) code = extractor.snippet([backtrace.first]) { code: code, message: e.to_s, backtrace: backtrace, } end render(exceptions: datas) end
build_pending(step)
click to toggle source
@param [TurnipFormatter::Resource::Step::Pending] step
# File lib/turnip_formatter/step_template/exception.rb, line 70 def build_pending(step) datas = [{ code: nil, message: step.pending_message, backtrace: [step.pending_location] }] render(exceptions: datas) end
Private Instance Methods
extractor()
click to toggle source
# File lib/turnip_formatter/step_template/exception.rb, line 90 def extractor @extractor ||= begin # RSpec 3.4 require 'rspec/core/formatters/html_snippet_extractor' ::RSpec::Core::Formatters::HtmlSnippetExtractor.new rescue LoadError # RSpec 3.3 or earlier require 'rspec/core/formatters/snippet_extractor' ::RSpec::Core::Formatters::SnippetExtractor.new end end
formatted_backtrace(example, exception = nil)
click to toggle source
# File lib/turnip_formatter/step_template/exception.rb, line 102 def formatted_backtrace(example, exception = nil) RSpec::Core::Formatters::TurnipFormatter.formatted_backtrace(example, exception) end
render(args)
click to toggle source
# File lib/turnip_formatter/step_template/exception.rb, line 82 def render(args) view.result(OpenStruct.new(args).instance_eval { binding }) end
view()
click to toggle source
# File lib/turnip_formatter/step_template/exception.rb, line 86 def view @view ||= ::ERB.new(File.read(File.dirname(__FILE__) + '/exception.html.erb')) end