a little code cleanup

This commit is contained in:
John Bintz 2011-05-10 09:25:55 -04:00
parent fd05415c38
commit a1077c1c36
2 changed files with 31 additions and 31 deletions

View File

@ -1,5 +1,7 @@
#!/usr/bin/env ruby #!/usr/bin/env ruby
require 'rubygems'
gem_dir = File.expand_path('../..', __FILE__) gem_dir = File.expand_path('../..', __FILE__)
$:.unshift(File.join(gem_dir, 'lib')) $:.unshift(File.join(gem_dir, 'lib'))
@ -7,11 +9,9 @@ require 'yaml'
require 'fileutils' require 'fileutils'
require 'getoptlong' require 'getoptlong'
require 'rubygems'
gem 'rainbow'
gem 'jasmine' gem 'jasmine'
gem 'coffee-script' gem 'coffee-script'
gem 'rainbow'
require 'jasmine' require 'jasmine'
require 'coffee-script' require 'coffee-script'
@ -41,22 +41,18 @@ options = { :colors => false, :remove_html_file => true }
} }
read_defaults_file if defaults_file? read_defaults_file if defaults_file?
opts.each(&@process_options) opts.each(&@process_options)
data = YAML.load_file(ARGV.shift || 'spec/javascripts/support/jasmine.yml') data = YAML.load_file(ARGV.shift || 'spec/javascripts/support/jasmine.yml')
if !File.file?(File.join(gem_dir, 'ext/jasmine-webkit-specrunner/jasmine-webkit-specrunner')) if !File.file?(File.join(gem_dir, RUNNER))
puts "The Qt WebKit widget is not compiled! Try re-installing this gem." puts "The Qt WebKit widget is not compiled! Try re-installing this gem."
exit 1 exit 1
end end
puts "Running Jasmine specs..." puts "Running Jasmine specs..."
files = [ files = %w{jasmine jasmine-html}.collect { |name| File.join(Jasmine.root, "lib/#{name}.js") }
'file://' + File.join(Jasmine.root, 'lib/jasmine.js'),
'file://' + File.join(Jasmine.root, 'lib/jasmine-html.js')
]
files += [ [ 'src_files', 'src_dir' ], [ 'stylesheets', 'src_dir' ], [ 'helpers', 'spec_dir' ], [ 'spec_files', 'spec_dir' ] ].collect do |searches, root| files += [ [ 'src_files', 'src_dir' ], [ 'stylesheets', 'src_dir' ], [ 'helpers', 'spec_dir' ], [ 'spec_files', 'spec_dir' ] ].collect do |searches, root|
data[searches] ||= DEFAULTS[searches] data[searches] ||= DEFAULTS[searches]
@ -89,30 +85,10 @@ files = files.flatten.compact.collect { |file|
end end
} }
output = <<-HTML output = jasmine_html_template(files)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Jasmine Test Runner</title>
<script type="text/javascript">
window.console = { log: function(data) { debug.log(JSON.stringify(data)); } };
</script>
#{files.join("\n")}
</head>
<body>
<script type="text/javascript">
jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
jasmine.getEnv().execute();
</script>
</body>
</html>
HTML
File.open(target = "specrunner.#{$$}.html", 'w') { |fh| fh.print output } File.open(target = "specrunner.#{$$}.html", 'w') { |fh| fh.print output }
system %{#{File.join(gem_dir, 'ext/jasmine-webkit-specrunner/jasmine-webkit-specrunner')} #{options[:colors] ? '-c' : ''} #{target}} system %{#{File.join(gem_dir, RUNNER)} #{options[:colors] ? '-c' : ''} #{target}}
status = $?.exitstatus status = $?.exitstatus
FileUtils.rm_f target if options[:remove_html_file] || (status == 0) FileUtils.rm_f target if options[:remove_html_file] || (status == 0)

View File

@ -9,6 +9,7 @@ module Jasmine
'src_files' => [] 'src_files' => []
} }
RUNNER = 'ext/jasmine-webkit-specrunner/jasmine-webkit-specrunner'
DEFAULTS_FILE = '.jasmine-headless-webkit' DEFAULTS_FILE = '.jasmine-headless-webkit'
def process_jasmine_config(overrides = {}) def process_jasmine_config(overrides = {})
@ -22,6 +23,29 @@ module Jasmine
def defaults_file? def defaults_file?
File.file?(DEFAULTS_FILE) File.file?(DEFAULTS_FILE)
end end
def jasmine_html_template(files)
<<-HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Jasmine Test Runner</title>
<script type="text/javascript">
window.console = { log: function(data) { debug.log(JSON.stringify(data)); } };
</script>
#{files.join("\n")}
</head>
<body>
<script type="text/javascript">
jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
jasmine.getEnv().execute();
</script>
</body>
</html>
HTML
end
end end
end end