lib/relevance/tarantula/html_reporter.rb in tarantula-0.3.3 vs lib/relevance/tarantula/html_reporter.rb in tarantula-0.4.0
- old
+ new
@@ -1,105 +1,111 @@
-class Relevance::Tarantula::HtmlReporter
-
- include Relevance::Tarantula
- attr_accessor :basedir, :results
- delegate :successes, :failures, :to => :results
-
- HtmlResultOverview = Struct.new(:code, :url, :description, :method, :referrer, :file_name)
-
- def initialize(basedir)
- @basedir = basedir
- @results = Struct.new(:successes, :failures).new([], [])
- FileUtils.mkdir_p(@basedir)
- end
-
- def report(result)
- return if result.nil?
-
- create_detail_report(result)
-
- collection = result.success ? results.successes : results.failures
- collection << HtmlResultOverview.new(
- result.code, result.url, result.description, result.method, result.referrer, result.file_name
- )
- end
+module Relevance
+ module Tarantula
- def finish_report(test_name)
- puts "Writing results to #{basedir}"
- copy_styles unless styles_exist?
- create_index unless index_exists?
- update_index(test_name)
- end
-
- def create_detail_report(result)
- template = ERB.new(template("detail.html.erb"))
- output(result.file_name, template.result(result.send(:binding)), result.test_name)
- end
-
- def copy_styles
- # not using cp_r because it picks up .svn crap
- FileUtils.mkdir_p(File.join(basedir, "stylesheets"))
- Dir.glob("#{tarantula_home}/laf/stylesheets/*.css").each do |file|
- FileUtils.cp(file, File.join(basedir, "stylesheets"))
- end
- FileUtils.mkdir_p(File.join(basedir, "images"))
- Dir.glob("#{tarantula_home}/laf/images/*.{jpg,gif,png}").each do |file|
- FileUtils.cp(file, File.join(basedir, "images"))
- end
- FileUtils.mkdir_p(File.join(basedir, "javascripts"))
- Dir.glob("#{tarantula_home}/laf/javascripts/*.js").each do |file|
- FileUtils.cp(file, File.join(basedir, "javascripts"))
- end
- end
-
- def create_index
- template = ERB.new(template("index.html.erb"))
- output("index.html", template.result(binding))
- end
-
- def update_index(test_name)
- File.open(File.join(basedir, "index.html"), "r+") do |file|
- doc = Hpricot file.read
- tabs_container = doc.search "#tabs-container ul"
- results_container = doc.search "#results-container"
- tabs_container.append tab_html(test_name)
- results_container.append results_html(test_name)
- file.rewind
- file.write doc.to_s
- end
- end
-
- def index_exists?
- File.exists?(File.join(basedir, "index.html"))
- end
-
- def styles_exist?
- File.exists?(File.join(basedir, "stylesheets", "tarantula.css"))
- end
+ class HtmlReporter
- def tab_html(test_name)
- "<li><a href='##{test_name}'><span>#{test_name}</span></a></li>"
- end
+ include Relevance::Tarantula
+ attr_accessor :basedir, :results
+ delegate :successes, :failures, :to => :results
- def results_html(test_name)
- template = ERB.new(template("test_report.html.erb"))
- template.result(binding)
- end
-
- def template(name)
- File.read(File.join(File.dirname(__FILE__), name))
- end
-
- def output(name, body, subdir = '')
- FileUtils.mkdir_p(File.join(basedir, subdir)) unless subdir.empty?
- File.open(File.join(basedir, subdir, name), "w") do |file|
- file.write body
+ HtmlResultOverview = Struct.new(:code, :url, :description, :method, :referrer, :file_name)
+
+ def initialize(basedir)
+ @basedir = basedir
+ @results = Struct.new(:successes, :failures).new([], [])
+ FileUtils.mkdir_p(@basedir)
+ end
+
+ def report(result)
+ return if result.nil?
+
+ create_detail_report(result)
+
+ collection = result.success ? results.successes : results.failures
+ collection << HtmlResultOverview.new(
+ result.code, result.url, result.description, result.method, result.referrer, result.file_name
+ )
+ end
+
+ def finish_report(test_name)
+ puts "Writing results to #{basedir}"
+ copy_styles unless styles_exist?
+ create_index unless index_exists?
+ update_index(test_name)
+ end
+
+ def create_detail_report(result)
+ template = ERB.new(template("detail.html.erb"))
+ output(result.file_name, template.result(result.send(:binding)), result.test_name)
+ end
+
+ def copy_styles
+ # not using cp_r because it picks up .svn crap
+ FileUtils.mkdir_p(File.join(basedir, "stylesheets"))
+ Dir.glob("#{tarantula_home}/laf/stylesheets/*.css").each do |file|
+ FileUtils.cp(file, File.join(basedir, "stylesheets"))
+ end
+ FileUtils.mkdir_p(File.join(basedir, "images"))
+ Dir.glob("#{tarantula_home}/laf/images/*.{jpg,gif,png}").each do |file|
+ FileUtils.cp(file, File.join(basedir, "images"))
+ end
+ FileUtils.mkdir_p(File.join(basedir, "javascripts"))
+ Dir.glob("#{tarantula_home}/laf/javascripts/*.js").each do |file|
+ FileUtils.cp(file, File.join(basedir, "javascripts"))
+ end
+ end
+
+ def create_index
+ template = ERB.new(template("index.html.erb"))
+ output("index.html", template.result(binding))
+ end
+
+ def update_index(test_name)
+ File.open(File.join(basedir, "index.html"), "r+") do |file|
+ doc = Hpricot file.read
+ tabs_container = doc.search "#tabs-container ul"
+ results_container = doc.search "#results-container"
+ tabs_container.append tab_html(test_name)
+ results_container.append results_html(test_name)
+ file.rewind
+ file.write doc.to_s
+ end
+ end
+
+ def index_exists?
+ File.exists?(File.join(basedir, "index.html"))
+ end
+
+ def styles_exist?
+ File.exists?(File.join(basedir, "stylesheets", "tarantula.css"))
+ end
+
+ def tab_html(test_name)
+ "<li><a href='##{test_name}'><span>#{test_name}</span></a></li>"
+ end
+
+ def results_html(test_name)
+ template = ERB.new(template("test_report.html.erb"))
+ template.result(binding)
+ end
+
+ def template(name)
+ File.read(File.join(File.dirname(__FILE__), name))
+ end
+
+ def output(name, body, subdir = '')
+ FileUtils.mkdir_p(File.join(basedir, subdir)) unless subdir.empty?
+ File.open(File.join(basedir, subdir, name), "w") do |file|
+ file.write body
+ end
+ end
+
+ # CSS class for HTML status codes
+ def class_for_code(code)
+ "r#{Integer(code)/100}"
+ end
+
+
end
- end
-
- # CSS class for HTML status codes
- def class_for_code(code)
- "r#{Integer(code)/100}"
+
end
-
-
end