Module: MetricFu

Defined in:
lib/metric_fu/base.rb,
lib/metric_fu/flay.rb,
lib/metric_fu/flog.rb,
lib/metric_fu/reek.rb,
lib/metric_fu/churn.rb,
lib/metric_fu/roodi.rb,
lib/metric_fu/heckle.rb,
lib/metric_fu/md5_tracker.rb

Defined Under Namespace

Modules: Base, Flog, Heckle, TemplateHelpers Classes: Churn, Configuration, Flay, MD5Tracker, Reek, Roodi

Class Method Summary collapse

Class Method Details

.can_churn?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/metric_fu/base.rb', line 31

def can_churn?
  uses_git? || uses_svn?
end

.code_dirsObject



39
40
41
42
43
# File 'lib/metric_fu/base.rb', line 39

def code_dirs
  dirs = ['lib']
  dirs << 'app' if is_rails?
  dirs.sort{|v1, v2| v1.to_s <=> v2.to_s}
end

.configurationObject

The Configuration instance used to configure the Rails environment



6
7
8
# File 'lib/metric_fu/base.rb', line 6

def configuration
  @@configuration ||= Configuration.new
end

.default_metricsObject



45
46
47
48
49
50
51
# File 'lib/metric_fu/base.rb', line 45

def default_metrics
  metrics = [:coverage, :flog, :flay, :heckle, :reek, :roodi, :saikuro ]      
  metrics << :stats if is_rails?
  # Churning requires a subversion or git repo
  metrics << :churn if can_churn?
  metrics.sort{|v1, v2| v1.to_s <=> v2.to_s}
end

.generate_churn_reportObject



3
4
5
6
# File 'lib/metric_fu/churn.rb', line 3

def self.generate_churn_report
  Churn.generate_report(MetricFu.churn)
  system("open #{Churn.metric_dir}/index.html") if open_in_browser?
end

.generate_flay_reportObject



3
4
5
6
# File 'lib/metric_fu/flay.rb', line 3

def self.generate_flay_report
  Flay.generate_report
  system("open #{Flay.metric_dir}/index.html") if open_in_browser?    
end

.generate_flog_reportObject



3
4
5
6
# File 'lib/metric_fu/flog.rb', line 3

def self.generate_flog_report
  Flog::Generator.generate_report
  system("open #{Flog::Generator.metric_dir}/index.html") if open_in_browser?  
end

.generate_heckle_reportObject



3
4
5
6
# File 'lib/metric_fu/heckle.rb', line 3

def self.generate_heckle_report
  Heckle::Generator.generate_report
  system("open #{Heckle::Generator.metric_dir}/index.html") if open_in_browser?    
end

.generate_reek_reportObject



3
4
5
6
# File 'lib/metric_fu/reek.rb', line 3

def self.generate_reek_report
  Reek.generate_report
  system("open #{Reek.metric_dir}/index.html") if open_in_browser?    
end

.generate_roodi_reportObject



3
4
5
6
# File 'lib/metric_fu/roodi.rb', line 3

def self.generate_roodi_report
  Roodi.generate_report
  system("open #{Roodi.metric_dir}/index.html") if open_in_browser?    
end

.is_rails?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/metric_fu/base.rb', line 35

def is_rails?
  File.exist?("config/environment.rb")
end

.metricsObject

The metrics configured for this project



11
12
13
# File 'lib/metric_fu/base.rb', line 11

def metrics
  configuration.metrics
end

.open_in_browser?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/metric_fu/base.rb', line 15

def open_in_browser?
  configuration.general[:open_in_browser] && PLATFORM['darwin'] && !run_by_cruise_control?
end

.run_by_cruise_control?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/metric_fu/base.rb', line 19

def run_by_cruise_control?
  !!ENV['CC_BUILD_ARTIFACTS']
end

.uses_git?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/metric_fu/base.rb', line 23

def uses_git?
  File.exist?(".git")      
end

.uses_svn?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/metric_fu/base.rb', line 27

def uses_svn?
  File.exist?(".svn")
end