Class: Transpec::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/transpec/report.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeReport

Returns a new instance of Report.



9
10
11
12
13
# File 'lib/transpec/report.rb', line 9

def initialize
  @records = []
  @conversion_errors = []
  @syntax_errors = []
end

Instance Attribute Details

#conversion_errorsObject (readonly)

Returns the value of attribute conversion_errors.



7
8
9
# File 'lib/transpec/report.rb', line 7

def conversion_errors
  @conversion_errors
end

#recordsObject (readonly)

Returns the value of attribute records.



7
8
9
# File 'lib/transpec/report.rb', line 7

def records
  @records
end

#syntax_errorsObject (readonly)

Returns the value of attribute syntax_errors.



7
8
9
# File 'lib/transpec/report.rb', line 7

def syntax_errors
  @syntax_errors
end

Instance Method Details

#<<(other) ⇒ Object



15
16
17
18
19
20
# File 'lib/transpec/report.rb', line 15

def <<(other)
  records.concat(other.records)
  conversion_errors.concat(other.conversion_errors)
  syntax_errors.concat(other.syntax_errors)
  self
end

#colored_statsObject



49
50
51
52
53
54
55
56
57
58
59
# File 'lib/transpec/report.rb', line 49

def colored_stats
  base_color = if !conversion_errors.empty?
                 :magenta
               elsif annotation_count.nonzero?
                 :yellow
               else
                 :green
               end

  convertion_incomplete_caution_stats(base_color) + error_stats(base_color)
end

#colored_summary(options = nil) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/transpec/report.rb', line 32

def colored_summary(options = nil)
  options ||= { bullet: nil, separate_by_blank_line: false }

  summary = ''

  unique_record_counts.each do |record, count|
    summary << "\n" if options[:separate_by_blank_line] && !summary.empty?
    summary << format_record(record, count, options[:bullet])
  end

  summary
end

#statsObject



61
62
63
# File 'lib/transpec/report.rb', line 61

def stats
  without_color { colored_stats }
end

#summary(options = nil) ⇒ Object



45
46
47
# File 'lib/transpec/report.rb', line 45

def summary(options = nil)
  without_color { colored_summary(options) }
end

#unique_record_countsObject



22
23
24
25
26
27
28
29
30
# File 'lib/transpec/report.rb', line 22

def unique_record_counts
  record_counts = Hash.new(0)

  records.each do |record|
    record_counts[record] += 1
  end

  Hash[record_counts.sort_by { |record, count| -count }]
end