Sha256: 3836a6f04eed65b4b6139f04e175d040210b88a9f95e2dd2cd8cd0b17c49f127

Contents?: true

Size: 942 Bytes

Versions: 4

Compression:

Stored size: 942 Bytes

Contents

module Blade::CI
  extend self
  include Blade::Component

  def start
    @completed_sessions = 0

    log "# Running"
    Blade.subscribe("/results") do |details|
      process_result(details)
    end
  end

  private
    def process_result(details)
      if details.has_key?("status")
        log details["status"] == "pass" ? "." : "F"
      end

      if details["completed"]
        process_completion
      end
    end

    def process_completion
      @completed_sessions += 1

      if done?
        log "\n"
        display_results_and_exit
      end
    end

    def done?
      @completed_sessions == (Blade.config.expected_sessions || 1)
    end

    def display_results_and_exit
      results = Blade::Session.combined_test_results
      display results
      exit results.failed? ? 1 : 0
    end

    def log(message)
      STDERR.print message.to_s
    end

    def display(message)
      STDOUT.puts message.to_s
    end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
blade-0.4.1 lib/blade/interface/ci.rb
blade-0.4.0 lib/blade/interface/ci.rb
blade-0.3.2 lib/blade/interface/ci.rb
blade-0.3.1 lib/blade/interface/ci.rb