Rearrange, refactor, ruin and raze.

This commit is contained in:
Christian Williams
2009-12-28 12:08:23 -06:00
parent 945b167131
commit 0c8258996e
13 changed files with 136 additions and 67 deletions
-3
View File
@@ -1,3 +0,0 @@
require 'jasmine-ruby/jasmine_helper'
require 'jasmine-ruby/jasmine_runner'
require 'jasmine-ruby/jasmine_spec_builder'
+3
View File
@@ -0,0 +1,3 @@
require 'jasmine/jasmine_helper'
require 'jasmine/jasmine_runner'
require 'jasmine/jasmine_spec_builder'
@@ -34,7 +34,7 @@ class JasmineHelper
end
def self.meta_spec_path
File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'lib', 'jasmine-ruby', 'jasmine_meta_spec.rb'))
File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'lib', 'jasmine', 'jasmine_meta_spec.rb'))
end
def self.files
@@ -148,27 +148,22 @@ module Jasmine
end
class SimpleServer
def self.start(port, root_path, spec_files_or_proc, options = {})
def self.start(port, spec_files_or_proc, options = {})
require 'thin'
config = {
'/__suite__' => Jasmine::FocusedSuite.new(spec_files_or_proc, options),
'/run.html' => Jasmine::Redirect.new('/'),
'/' => Jasmine::RunAdapter.new(spec_files_or_proc, options)
}
if (options[:mappings])
options[:mappings].each do |from, to|
config[from] = Rack::File.new(to)
end
raise "Need :mappings!" unless options[:mappings]
options[:mappings].each do |from, to|
config[from] = Rack::File.new(to)
end
config["/__JASMINE_ROOT__"] = Rack::File.new(Jasmine.root)
file_serve_config = {
'/' => Rack::File.new(root_path)
}
app = Rack::Cascade.new([
Rack::URLMap.new(file_serve_config),
Rack::URLMap.new(config),
JsAlert.new
])
@@ -226,17 +221,24 @@ module Jasmine
end
class Runner
def initialize(selenium_jar_path, root_path, spec_files, options={})
@root_path = root_path
@selenium_jar_path = selenium_jar_path
def initialize(options = {})
require 'selenium_rc'
@selenium_jar_path = SeleniumRC::Server.allocate.jar_path
@spec_files = spec_files
@options = options
@browser = options[:browser] ? options[:browser].delete(:browser) : 'firefox'
@browser = options[:browser] ? options.delete(:browser) : 'firefox'
@selenium_pid = nil
@jasmine_server_pid = nil
end
def start_server(port = 8888)
p spec_files
Jasmine::SimpleServer.start(port, lambda { spec_files }, :mappings => {
"/spec" => spec_dir
})
end
def start
start_servers
@client = Jasmine::SimpleClient.new("localhost", @selenium_server_port, "*#{@browser}", "http://localhost:#{@jasmine_server_port}/")
@@ -260,7 +262,7 @@ module Jasmine
@jasmine_server_pid = fork do
Process.setpgrp
Jasmine::SimpleServer.start(@jasmine_server_port, @root_path, @spec_files, @options)
Jasmine::SimpleServer.start(@jasmine_server_port, @spec_files, @options)
exit! 0
end
puts "jasmine server started. pid is #{@jasmine_server_pid}"
@@ -4,8 +4,8 @@ module Jasmine
class SpecBuilder
attr_accessor :suites
def initialize(spec_files, runner)
@spec_files = spec_files
def initialize(runner)
@spec_files = runner.spec_files
@runner = runner
@spec_ids = []
end