about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/mongrel/stats.rb6
-rw-r--r--tools/rakehelp.rb16
2 files changed, 15 insertions, 7 deletions
diff --git a/lib/mongrel/stats.rb b/lib/mongrel/stats.rb
index 9e8bf7c..be78741 100644
--- a/lib/mongrel/stats.rb
+++ b/lib/mongrel/stats.rb
@@ -74,7 +74,11 @@ class Stats
   # Calculates the standard deviation of the data so far.
   def sd
     # (sqrt( ((s).sumsq - ( (s).sum * (s).sum / (s).n)) / ((s).n-1) ))
-    Math.sqrt( (@sumsq - ( @sum * @sum / @n)) / (@n-1) )
+    begin
+      return Math.sqrt( (@sumsq - ( @sum * @sum / @n)) / (@n-1) )
+    rescue Errno::EDOM
+      return 0.0
+    end
   end
 
 
diff --git a/tools/rakehelp.rb b/tools/rakehelp.rb
index 2a8f573..ad66679 100644
--- a/tools/rakehelp.rb
+++ b/tools/rakehelp.rb
@@ -1,5 +1,3 @@
-require 'rcov/rcovtask'
-
 def make(makedir)
   Dir.chdir(makedir) do
     sh(PLATFORM =~ /win32/ ? 'nmake' : 'make')
@@ -111,8 +109,14 @@ def sub_project(project, *targets)
   end
 end
 
-Rcov::RcovTask.new do |t|
-  t.test_files = FileList['test/test*.rb']
-  t.rcov_opts << "-x /usr"
-  t.output_dir = "test/coverage"
+# Conditional require rcov/rcovtask if present
+begin
+  require 'rcov/rcovtask'
+  
+  Rcov::RcovTask.new do |t|
+    t.test_files = FileList['test/test*.rb']
+    t.rcov_opts << "-x /usr"
+    t.output_dir = "test/coverage"
+  end
+rescue
 end