Sha256: f1f9446d57daa15d38d96e313201a3c9ceb315dd8ab485814dcc836ad07b7e67

Contents?: true

Size: 927 Bytes

Versions: 4

Compression:

Stored size: 927 Bytes

Contents

require 'open3'

module Evergreen
  class Spec
    class CoffeeScriptError < StandardError; end

    attr_reader :name, :suite

    def initialize(suite, name)
      @suite = suite
      @name = name
    end

    def root
      suite.root
    end

    def full_path
      File.join(root, Evergreen.spec_dir, name)
    end

    def read
      if full_path =~ /\.coffee$/
        stdout, stderr = Open3.popen3("coffee -p #{full_path}")[1,2].map { |b| b.read }
        raise CoffeeScriptError, stderr unless stderr.empty?
        stdout
      else
        File.read(full_path)
      end
    end
    alias_method :contents, :read

    def url
      "/run/#{name}"
    end

    def passed?
      runner.passed?
    end

    def failure_messages
      runner.failure_messages
    end

    def exist?
      File.exist?(full_path)
    end

  protected

    def runner
      @runner ||= suite.runner.spec_runner(self)
    end
  end
end

Version data entries

4 entries across 4 versions & 3 rubygems

Version Path
danieldkim-evergreen-0.4.0.6 lib/evergreen/spec.rb
danieldkim-evergreen-0.4.0.5 lib/evergreen/spec.rb
gjastrab-evergreen-0.4.0.3 lib/evergreen/spec.rb
evergreen-0.4.0 lib/evergreen/spec.rb