class ParallelRspecProgress::Controller

Public Class Methods

new() click to toggle source
# File lib/parallel_rspec_progress/controller.rb, line 7
def initialize
  @failed = []
  @passed = []
  @pending = []
  @total = 0
end

Public Instance Methods

add(key:, item:) click to toggle source
# File lib/parallel_rspec_progress/controller.rb, line 29
def add(key:, item:)
  case key
  when :failed
    @failed << item
  when :passed
    @passed << item
  when :pending
    @pending << item
  end

  @progressbar.title = compose_title
  @progressbar.increment
end
put_total(val) click to toggle source
# File lib/parallel_rspec_progress/controller.rb, line 19
def put_total(val)
  if @progressbar
    @total += val
    @progressbar.total = @total
  else
    @total = val
    create_progressbar
  end
end
stop() click to toggle source
# File lib/parallel_rspec_progress/controller.rb, line 14
def stop
  DRb.stop_service
  process_results
end

Private Instance Methods

compose_title() click to toggle source
# File lib/parallel_rspec_progress/controller.rb, line 55
def compose_title
  "passed: #{Rainbow(@passed.count).green}  failed: #{Rainbow(@failed.count).red}  pending: #{Rainbow(@pending.count).yellow}"
end
create_progressbar() click to toggle source
# File lib/parallel_rspec_progress/controller.rb, line 45
def create_progressbar
  @progressbar = ProgressBar.create(
    format: "%a %e %P% Processed: %c from %C %b\u{15E7}%i %p%% %t",
    progress_mark: ' ',
    remainder_mark: "\u{FF65}",
    starting_at: 0,
    total: @total
  )
end
process_results() click to toggle source
# File lib/parallel_rspec_progress/controller.rb, line 59
def process_results
  if @failed.any?
    puts @failed.map {|x| "#{Rainbow(x).red}" }
  else
    puts Rainbow("Everything is OK!").green
  end
end