Class: KnapsackPro::Formatters::RSpecQueueSummaryFormatter

Inherits:
RSpec::Core::Formatters::BaseFormatter
  • Object
show all
Defined in:
lib/knapsack_pro/formatters/rspec_queue_summary_formatter.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(output) ⇒ RSpecQueueSummaryFormatter

Returns a new instance of RSpecQueueSummaryFormatter.



75
76
77
78
# File 'lib/knapsack_pro/formatters/rspec_queue_summary_formatter.rb', line 75

def initialize(output)
  super
  self.class.registered_output = output
end

Class Method Details

.most_recent_failures_summaryObject



31
32
33
34
# File 'lib/knapsack_pro/formatters/rspec_queue_summary_formatter.rb', line 31

def self.most_recent_failures_summary
  @most_recent_failures_summary ||= {}
  @most_recent_failures_summary[ENV['KNAPSACK_PRO_QUEUE_ID']] || []
end

.most_recent_failures_summary=(fully_formatted_failed_examples) ⇒ Object



25
26
27
28
29
# File 'lib/knapsack_pro/formatters/rspec_queue_summary_formatter.rb', line 25

def self.most_recent_failures_summary=(fully_formatted_failed_examples)
  @most_recent_failures_summary = {
    ENV['KNAPSACK_PRO_QUEUE_ID'] => fully_formatted_failed_examples
  }
end

.most_recent_pendingObject



42
43
44
45
# File 'lib/knapsack_pro/formatters/rspec_queue_summary_formatter.rb', line 42

def self.most_recent_pending
  @most_recent_pending ||= {}
  @most_recent_pending[ENV['KNAPSACK_PRO_QUEUE_ID']] || []
end

.most_recent_pending=(fully_formatted_pending_examples) ⇒ Object



36
37
38
39
40
# File 'lib/knapsack_pro/formatters/rspec_queue_summary_formatter.rb', line 36

def self.most_recent_pending=(fully_formatted_pending_examples)
  @most_recent_pending = {
    ENV['KNAPSACK_PRO_QUEUE_ID'] => fully_formatted_pending_examples
  }
end

.most_recent_summaryObject



53
54
55
56
# File 'lib/knapsack_pro/formatters/rspec_queue_summary_formatter.rb', line 53

def self.most_recent_summary
  @most_recent_summary ||= {}
  @most_recent_summary[ENV['KNAPSACK_PRO_QUEUE_ID']] || []
end

.most_recent_summary=(fully_formatted) ⇒ Object



47
48
49
50
51
# File 'lib/knapsack_pro/formatters/rspec_queue_summary_formatter.rb', line 47

def self.most_recent_summary=(fully_formatted)
  @most_recent_summary = {
    ENV['KNAPSACK_PRO_QUEUE_ID'] => fully_formatted
  }
end


58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/knapsack_pro/formatters/rspec_queue_summary_formatter.rb', line 58

def self.print_summary
  registered_output.puts('Knapsack Pro Queue finished!')
  registered_output.puts('')

  unless most_recent_pending.empty?
    registered_output.puts('All pending tests on this CI node:')
    registered_output.puts(most_recent_pending)
  end

  unless most_recent_failures_summary.empty?
    registered_output.puts('All failed tests on this CI node:')
    registered_output.puts(most_recent_failures_summary)
  end

  registered_output.puts(most_recent_summary)
end

.registered_outputObject



21
22
23
# File 'lib/knapsack_pro/formatters/rspec_queue_summary_formatter.rb', line 21

def self.registered_output
  @registered_output[ENV['KNAPSACK_PRO_QUEUE_ID']]
end

.registered_output=(output) ⇒ Object



15
16
17
18
19
# File 'lib/knapsack_pro/formatters/rspec_queue_summary_formatter.rb', line 15

def self.registered_output=(output)
  @registered_output = {
    ENV['KNAPSACK_PRO_QUEUE_ID'] => output
  }
end

Instance Method Details

#dump_failures(notification) ⇒ Object



80
81
82
83
# File 'lib/knapsack_pro/formatters/rspec_queue_summary_formatter.rb', line 80

def dump_failures(notification)
  return if notification.failure_notifications.empty?
  self.class.most_recent_failures_summary = notification.fully_formatted_failed_examples
end

#dump_pending(notification) ⇒ Object



85
86
87
88
# File 'lib/knapsack_pro/formatters/rspec_queue_summary_formatter.rb', line 85

def dump_pending(notification)
  return if notification.pending_examples.empty?
  self.class.most_recent_pending = notification.fully_formatted_pending_examples
end