Class: RspecRunner::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec_runner/server.rb

Class Method Summary collapse

Class Method Details

.execute(path) ⇒ Object



34
35
36
37
38
39
# File 'lib/rspec_runner/server.rb', line 34

def execute(path)
  RSpec.configuration.start_time = Time.now
  RSpec::Core::Runner.run(filepaths(path))
ensure
  reset_rspec!
end

.restartObject



41
42
43
44
# File 'lib/rspec_runner/server.rb', line 41

def restart
  stop
  fork_process
end

.startObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/rspec_runner/server.rb', line 8

def start
  puts 'Preloading gems...'
  require 'rubygems'
  require 'bundler'

  Bundler.load.dependencies.reject! do |d|
    spec = d.to_spec

    if spec.gem_dir == Dir.pwd
      @gem_name = spec.name
    else
      spec.name == 'rspec_runner'
    end
  end

  if gem?
    Bundler.require(:default, :development)
  else
    Bundler.require(:default, :test)
  end

  $LOAD_PATH.unshift File.expand_path("#{Dir.pwd}/spec")

  fork_process
end

.stopObject



46
47
48
49
50
51
52
# File 'lib/rspec_runner/server.rb', line 46

def stop
  if @pid && @pid != 0
    # TODO: try to kill without -9
    send_signal('KILL')
  end
  File.delete(RspecRunner.configuration.uri_filepath) if File.exist?(RspecRunner.configuration.uri_filepath)
end