From d843176381bc3e0e8a7f59a555544c01d707792b Mon Sep 17 00:00:00 2001 From: Dina Zhyliaieva Date: Thu, 15 Dec 2011 16:41:12 +0200 Subject: [PATCH] Add new RcovTask to display coverage results in browser --- Rakefile | 1 + lib/rcov/rcovtask.rb | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/Rakefile b/Rakefile index 637a423..d87ea5b 100644 --- a/Rakefile +++ b/Rakefile @@ -20,6 +20,7 @@ Rcov::RcovTask.new do |t| t.ruby_opts << "-Ilib:ext/rcovrt" # in order to use this rcov t.rcov_opts << "--xrefs" # comment to disable cross-references t.verbose = true + t.display_results end desc "Analyze code coverage for the FileStatistics class." diff --git a/lib/rcov/rcovtask.rb b/lib/rcov/rcovtask.rb index a79d6f7..c307bd8 100755 --- a/lib/rcov/rcovtask.rb +++ b/lib/rcov/rcovtask.rb @@ -152,5 +152,28 @@ def file_list # :nodoc: FileList[result] end end + + # It finds output dir with coverage results + # and opens index.html file. + # So far the task is created in case of using for MAC platform. + def display_results + path_to_output_dir = "./#{@output_dir}" + path_to_file = "#{path_to_output_dir}/index.html" + # It works only for MAC + return false if !RUBY_PLATFORM.downcase.include?("darwin") + desc "Display coverage results for #{name}" + task "#{name}:display" do + puts "Opening, please wait..." + if !File.directory?(path_to_output_dir) + puts "Rcov hasn't been run yet. Folder #{path_to_output_dir} doesn't exist." + return false + end + if File.exist?(path_to_file) + system("open #{path_to_file}") + else + puts "Couldn't find #{path_to_file}." + end + end + end end end