class MSpec::Opal::Runner
def initialize &block
def initialize &block @app = RackApp.new(&block).to_app @port = 9999 end
def passed?
def passed? @passed end
def run
def run start_server start_phantomjs exit 1 unless passed? rescue => e puts e.message ensure stop_server if server end
def start_phantomjs
def start_phantomjs require 'shellwords' runner = File.expand_path('../sprockets.js', __FILE__).shellescape url = "http://localhost:#{port}/".shellescape command = %Q{phantomjs #{runner} #{url}} @passed = system command end
def start_server
def start_server @server = Thread.new do Rack::Server.start(:app => app, :Port => port, :AccessLog => [], :Logger => WEBrick::Log.new("/dev/null")) end end
def stop_server
def stop_server server.kill end