Sha256: 1e9eeb4e87c640c4bc25b6639aa025136a80430ff794686b44cb94124d6b201f

Contents?: true

Size: 901 Bytes

Versions: 16

Compression:

Stored size: 901 Bytes

Contents

module EmberCli
  class BuildMonitor
    def initialize(name, paths)
      @name = name
      @paths = paths
    end

    def check!
      if build_error?
        raise_build_error!
      end

      true
    end

    def reset
      if build_error?
        error_file.delete
      end
    end

    def wait!
      loop do
        check!
        break if complete?
        sleep 0.1
      end
    end

    private

    attr_reader :name, :paths

    def complete?
      !paths.lockfile.exist?
    end

    def build_error?
      error_file.exist? && error_file.size?
    end

    def error_file
      paths.build_error_file
    end

    def raise_build_error!
      backtrace = error_file.readlines.reject(&:blank?)
      message = "#{name.inspect} has failed to build: #{backtrace.first}"

      error = BuildError.new(message)
      error.set_backtrace(backtrace)

      fail error
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
ember-cli-rails-0.7.4 lib/ember_cli/build_monitor.rb
ember-cli-rails-0.7.3 lib/ember_cli/build_monitor.rb
ember-cli-rails-0.7.2 lib/ember_cli/build_monitor.rb
ember-cli-rails-0.7.1 lib/ember_cli/build_monitor.rb
ember-cli-rails-0.7.0 lib/ember_cli/build_monitor.rb
ember-cli-rails-0.6.1 lib/ember_cli/build_monitor.rb
ember-cli-rails-0.6.0 lib/ember_cli/build_monitor.rb
ember-cli-rails-0.5.8 lib/ember_cli/build_monitor.rb
ember-cli-rails-0.5.7 lib/ember_cli/build_monitor.rb
ember-cli-rails-0.5.6 lib/ember_cli/build_monitor.rb
ember-cli-rails-0.5.5 lib/ember_cli/build_monitor.rb
ember-cli-rails-0.5.4 lib/ember_cli/build_monitor.rb
ember-cli-rails-0.5.3 lib/ember_cli/build_monitor.rb
ember-cli-rails-0.5.2 lib/ember_cli/build_monitor.rb
ember-cli-rails-0.5.1 lib/ember-cli/build_monitor.rb
ember-cli-rails-0.5.0 lib/ember-cli/build_monitor.rb