Class: MSpec::Opal::Runner

Inherits:
Object show all
Defined in:
opal/lib/mspec/opal/rake_task.rb

Defined Under Namespace

Classes: PhantomJS

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ Runner

Returns a new instance of Runner



40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'opal/lib/mspec/opal/rake_task.rb', line 40

def initialize &block
  @app = Rack::Builder.new do
    ::Opal::Processor.arity_check_enabled = true
    ::Opal::Processor.dynamic_require_severity = :error

    use Rack::ShowExceptions
    use Rack::ShowStatus
    use MSpec::Opal::Index
    run MSpec::Opal::Environment.new
  end

  @port = 9999
end

Instance Attribute Details

#appObject (readonly)

Returns the value of attribute app



54
55
56
# File 'opal/lib/mspec/opal/rake_task.rb', line 54

def app
  @app
end

#portObject

Returns the value of attribute port



55
56
57
# File 'opal/lib/mspec/opal/rake_task.rb', line 55

def port
  @port
end

#serverObject (readonly)

Returns the value of attribute server



54
55
56
# File 'opal/lib/mspec/opal/rake_task.rb', line 54

def server
  @server
end

Instance Method Details

#passed?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'opal/lib/mspec/opal/rake_task.rb', line 57

def passed?
  @passed
end

#runObject



61
62
63
64
65
66
67
68
69
70
# File 'opal/lib/mspec/opal/rake_task.rb', line 61

def run
  start_server
  start_phantomjs

  exit 1 unless passed?
rescue => e
  puts e.message
ensure
  stop_server if server
end

#start_phantomjsObject



91
92
93
94
95
96
# File 'opal/lib/mspec/opal/rake_task.rb', line 91

def start_phantomjs
  runner  = File.expand_path('../sprockets.js', __FILE__).shellescape
  url     = "http://localhost:#{port}/".shellescape
  command = PhantomJS.new(runner, url)
  @passed = command.run
end

#start_serverObject



98
99
100
# File 'opal/lib/mspec/opal/rake_task.rb', line 98

def start_server
  @server = Thread.new { Rack::Server.start(:app => app, :Port => port) }
end

#stop_serverObject



72
73
74
# File 'opal/lib/mspec/opal/rake_task.rb', line 72

def stop_server
  server.kill
end