You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by to...@apache.org on 2010/07/22 20:22:53 UTC

svn commit: r966782 - /buildr/trunk/rakelib/metrics.rake

Author: toulmean
Date: Thu Jul 22 18:22:53 2010
New Revision: 966782

URL: http://svn.apache.org/viewvc?rev=966782&view=rev
Log:
better metrics without shelling out - need to fix the treemap task to work on vesta

Modified:
    buildr/trunk/rakelib/metrics.rake

Modified: buildr/trunk/rakelib/metrics.rake
URL: http://svn.apache.org/viewvc/buildr/trunk/rakelib/metrics.rake?rev=966782&r1=966781&r2=966782&view=diff
==============================================================================
--- buildr/trunk/rakelib/metrics.rake (original)
+++ buildr/trunk/rakelib/metrics.rake Thu Jul 22 18:22:53 2010
@@ -16,14 +16,34 @@
 namespace :metrics do
   desc 'run Saikuro reports'
   task :saikuro do
-    cmd = "saikuro -c -t -i #{File.expand_path(File.join(File.dirname(__FILE__), "..", "lib"))} -y 0 -w 11 -e 16 -o _reports/saikuro"
-    system cmd
+    require 'saikuro'
+    class SaikuroRake
+      include ResultIndexGenerator
+      
+      def run(files, output_dir)
+        state_filter = Filter.new(5)
+        token_filter = Filter.new(10, 25, 50)
+        state_formater = StateHTMLComplexityFormater.new(STDOUT,state_filter)
+        token_count_formater = HTMLTokenCounterFormater.new(STDOUT,token_filter)
+        idx_states, idx_tokens = Saikuro.analyze(files, state_formater, token_count_formater, output_dir)
+        write_cyclo_index(idx_states, output_dir)
+        write_token_index(idx_tokens, output_dir)
+      end
+    end
+    output_dir = File.expand_path(File.join(File.dirname(__FILE__), "..", "_reports", "saikuro"))
+    base_dir = Pathname.new(File.expand_path(File.join(File.dirname(__FILE__), "..")))
+    rb_files = ["lib", "addon"].collect { |folder| 
+      FileList[File.expand_path(File.join(File.dirname(__FILE__), "..", folder, "**", "*.rb"))]
+    }.flatten.collect {|path| 
+      Pathname.new(path).relative_path_from(base_dir).to_s
+    }
+    SaikuroRake.new.run(rb_files, output_dir)
   end
   
   desc 'generate ccn treemap'
   task :ccn_treemap do
     require 'saikuro_treemap'
-    SaikuroTreemap.generate_treemap :code_dirs => ['lib', 'addons'], :output_file => "_reports/saikuro_treemap.html"
+    SaikuroTreemap.generate_treemap :code_dirs => ['lib', 'addon'], :output_file => "_reports/saikuro_treemap.html"
   end
 end