Class: RSpec::Core::Formatters::HtmlFormatter
    - Inherits:
 
    - 
      BaseTextFormatter
        
        show all
      
 
    - Defined in:
 
    - lib/rspec/core/formatters/html_formatter.rb
 
  Constant Summary
  Constant Summary
  
  BaseTextFormatter::VT100_COLORS, BaseTextFormatter::VT100_COLOR_CODES
  Constants included
     from Helpers
  RSpec::Core::Formatters::Helpers::DEFAULT_PRECISION, RSpec::Core::Formatters::Helpers::SUB_SECOND_PRECISION
  Instance Attribute Summary
  
  #duration, #example_count, #example_group, #examples, #failed_examples, #failure_count, #output, #pending_count, #pending_examples
    
      Instance Method Summary
      (collapse)
    
    
  
  #close, #color_code_for, #colorise_summary, #colorize, #dump_commands_to_rerun_failed_examples, #dump_profile, #dump_profile_slowest_example_groups, #dump_profile_slowest_examples, #seed, #summary_line
  
  #close, #example_group_finished, #format_backtrace, #stop
  Methods included from Helpers
  #format_duration, #format_seconds, #pluralize, #strip_trailing_zeroes
  
  #format_backtrace
  Constructor Details
    
  
  
    A new instance of HtmlFormatter
   
 
  
    
      
9
10
11
12
13
14
15 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 9
def initialize(output)
  super(output)
  @example_group_number = 0
  @example_number = 0
  @header_red = nil
  @printer = HtmlPrinter.new(output)
end 
     | 
  
 
 
  Dynamic Method Handling
  
    This class handles dynamic methods through the method_missing method
  
    
  
    - (Object) method_missing(m, *a)  
  
    
      
18
19
20 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 18
def method_missing(m, *a, &b)
  end 
     | 
  
 
 
  
    Instance Method Details
      
  
    - (Object) dump_failures 
  
    
      
136
137 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 136
def dump_failures
end 
     | 
  
 
      
  
    - (Object) dump_pending 
  
    
      
139
140 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 139
def dump_pending
end 
     | 
  
 
      
  
    - (Object) dump_summary(duration, example_count, failure_count, pending_count) 
  
    
      
142
143
144
145
146
147
148
149
150
151 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 142
def dump_summary(duration, example_count, failure_count, pending_count)
  @printer.print_summary(
    dry_run?,
    duration,
    example_count,
    failure_count,
    pending_count
  )
  @printer.flush
end
     | 
  
 
      
  
    - (Object) example_failed(example) 
  
    
      
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 70
def example_failed(example)
  super(example)
  unless @header_red
    @header_red = true
    @printer.
  end
  unless @example_group_red
    @example_group_red = true
    @printer.(example_group_number)
  end
  @printer.move_progress(percent_done)
  exception = example.metadata[:execution_result][:exception]
  exception_details = if exception
    {
      :message => exception.message,
      :backtrace => format_backtrace(exception.backtrace, example).join("\n")
    }
  else
    false
  end
   = (exception)
  @printer.print_example_failed(
    example.execution_result[:pending_fixed],
    example.description,
    example.execution_result[:run_time],
    @failed_examples.size,
    exception_details,
    ( == "") ? false : ,
    true
  )
  @printer.flush
end
     | 
  
 
      
  
    - (Object) example_group_number 
  
    The number of the currently running example_group
   
 
  
    
      
27
28
29 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 27
def example_group_number
  @example_group_number
end 
     | 
  
 
      
  
    - (Object) example_group_started(example_group) 
  
    
      
42
43
44
45
46
47
48
49
50
51
52 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 42
def example_group_started(example_group)
  super(example_group)
  @example_group_red = false
  @example_group_number += 1
  unless example_group_number == 1
    @printer.print_example_group_end
  end
  @printer.print_example_group_start( example_group_number, example_group.description, example_group.parent_groups.size )
  @printer.flush
end
     | 
  
 
      
  
    - (Object) example_number 
  
    The number of the currently running example (a global counter)
   
 
  
    
      
32
33
34 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 32
def example_number
  @example_number
end 
     | 
  
 
      
  
    - (Object) example_passed(example) 
  
    
      
64
65
66
67
68 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 64
def example_passed(example)
  @printer.move_progress(percent_done)
  @printer.print_example_passed( example.description, example.execution_result[:run_time] )
  @printer.flush
end 
     | 
  
 
      
  
    - (Object) example_pending(example) 
  
    
      
108
109
110
111
112
113
114
115 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 108
def example_pending(example)
  @printer. unless @header_red
  @printer.(example_group_number) unless @example_group_red
  @printer.move_progress(percent_done)
  @printer.print_example_pending( example.description, example.metadata[:execution_result][:pending_message] )
  @printer.flush
end 
     | 
  
 
      
  
    - (Object) example_started(example) 
  
    
      
59
60
61
62 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 59
def example_started(example)
  super(example)
  @example_number += 1
end 
     | 
  
 
      
  
  
    Override this method if you wish to output extra HTML for a failed spec. For example, you
could output links to images or other files produced during the specs.
   
 
  
    
      
120
121
122
123
124
125
126 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 120
def (exception)
  require 'rspec/core/formatters/snippet_extractor'
  backtrace = exception.backtrace.map {|line| backtrace_line(line)}
  backtrace.compact!
  @snippet_extractor ||= SnippetExtractor.new
  "    <pre class=\"ruby\"><code>#{@snippet_extractor.snippet(backtrace)}</code></pre>"
end
     | 
  
 
      
  
    - (Object) message(message) 
  
    
      
23
24 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 23
def message(message)
end 
     | 
  
 
      
  
    - (Object) percent_done 
  
    
      
128
129
130
131
132
133
134 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 128
def percent_done
  result = 100.0
  if @example_count > 0
    result = (((example_number).to_f / @example_count.to_f * 1000).to_i / 10.0).to_f
  end
  result
end
     | 
  
 
      
  
    - (Object) start(example_count) 
  
    
      
36
37
38
39
40 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 36
def start(example_count)
  super(example_count)
  @printer.print_html_start
  @printer.flush
end 
     | 
  
 
      
  
    - (Object) start_dump 
  
    
      
54
55
56
57 
     | 
    
      # File 'lib/rspec/core/formatters/html_formatter.rb', line 54
def start_dump
  @printer.print_example_group_end
  @printer.flush
end 
     |