Class: Opal::RSpec::RakeTask
- Inherits:
-
Object
- Object
- Opal::RSpec::RakeTask
- Includes:
- Rake::DSL
- Defined in:
- lib/opal/rspec/rake_task.rb
Constant Summary collapse
- RUNNER =
File.('../../../../vendor/spec_runner.js', __FILE__)
- PORT =
9999
- URL =
"http://localhost:9999/"
Instance Method Summary collapse
-
#initialize(name = 'opal:rspec', &block) ⇒ RakeTask
constructor
A new instance of RakeTask.
Constructor Details
#initialize(name = 'opal:rspec', &block) ⇒ RakeTask
Returns a new instance of RakeTask.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/opal/rspec/rake_task.rb', line 12 def initialize(name = 'opal:rspec', &block) desc "Run opal specs in phantomjs" task name do require 'rack' require 'webrick' app = Opal::Server.new { |s| s.main = 'opal/rspec/sprockets_runner' s.append_path 'spec' s.debug = false block.call s if block } server = Thread.new do Thread.current.abort_on_exception = true Rack::Server.start( :app => app, :Port => PORT, :AccessLog => [], :Logger => WEBrick::Log.new("/dev/null"), ) end if `phantomjs -v`.strip.to_i >= 2 warn <<-WARN.gsub(/^ /,'') Only PhantomJS v1 is currently supported, if you're using homebrew on OSX you can switch version with: brew switch phantomjs 1.9.8 WARN exit 1 end begin system %Q{phantomjs #{RUNNER} "#{URL}"} success = $?.success? exit 1 unless success ensure server.kill end end end |