factorylabs-metric_fu 0.8.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +79 -0
- data/MIT-LICENSE +22 -0
- data/Manifest.txt +28 -0
- data/README +101 -0
- data/TODO.txt +9 -0
- data/lib/metric_fu/churn.rb +122 -0
- data/lib/metric_fu/flog_reporter/base.rb +58 -0
- data/lib/metric_fu/flog_reporter/flog_reporter.css +39 -0
- data/lib/metric_fu/flog_reporter/generator.rb +71 -0
- data/lib/metric_fu/flog_reporter/operator.rb +10 -0
- data/lib/metric_fu/flog_reporter/page.rb +36 -0
- data/lib/metric_fu/flog_reporter/scanned_method.rb +28 -0
- data/lib/metric_fu/flog_reporter.rb +5 -0
- data/lib/metric_fu/md5_tracker.rb +52 -0
- data/lib/metric_fu/saikuro/SAIKURO_README +142 -0
- data/lib/metric_fu/saikuro/saikuro.rb +1214 -0
- data/lib/metric_fu.rb +7 -0
- data/lib/tasks/churn.rake +11 -0
- data/lib/tasks/coverage.rake +40 -0
- data/lib/tasks/flay.rake +14 -0
- data/lib/tasks/flog.rake +62 -0
- data/lib/tasks/metric_fu.rake +11 -0
- data/lib/tasks/metric_fu.rb +6 -0
- data/lib/tasks/railroad.rake +36 -0
- data/lib/tasks/reek.rake +14 -0
- data/lib/tasks/roodi.rake +14 -0
- data/lib/tasks/saikuro.rake +34 -0
- data/lib/tasks/stats.rake +14 -0
- data/metric_fu.gemspec +20 -0
- metadata +144 -0
data/lib/metric_fu.rb
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
module MetricFu
|
2
|
+
BASE_DIRECTORY = ENV['CC_BUILD_ARTIFACTS'] || 'tmp/metric_fu'
|
3
|
+
end
|
4
|
+
|
5
|
+
require File.join(File.dirname(__FILE__), 'metric_fu', 'md5_tracker')
|
6
|
+
require File.join(File.dirname(__FILE__), 'metric_fu', 'flog_reporter')
|
7
|
+
require File.join(File.dirname(__FILE__), 'tasks', 'metric_fu')
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../metric_fu/churn')
|
2
|
+
|
3
|
+
namespace :metrics do
|
4
|
+
|
5
|
+
desc "Which files change the most"
|
6
|
+
task :churn do
|
7
|
+
churn_dir = File.join(MetricFu::BASE_DIRECTORY, 'churn')
|
8
|
+
MetricFu::Churn.generate_report(churn_dir, defined?(MetricFu::CHURN_OPTIONS) ? MetricFu::CHURN_OPTIONS : {} )
|
9
|
+
system("open #{churn_dir}/index.html") if PLATFORM['darwin']
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'rcov'
|
5
|
+
require 'rcov/rcovtask'
|
6
|
+
|
7
|
+
namespace :metrics do
|
8
|
+
|
9
|
+
COVERAGE_DIR = File.join(MetricFu::BASE_DIRECTORY, 'coverage')
|
10
|
+
COVERAGE_DATA_FILE = File.join(MetricFu::BASE_DIRECTORY, 'coverage.data')
|
11
|
+
|
12
|
+
namespace :coverage do
|
13
|
+
rcov_output = COVERAGE_DIR
|
14
|
+
|
15
|
+
desc "Delete aggregate coverage data."
|
16
|
+
task(:clean) { rm_f("rcov_tmp", :verbose => false) }
|
17
|
+
|
18
|
+
desc "RCov task to generate report"
|
19
|
+
Rcov::RcovTask.new(:do => :clean) do |t|
|
20
|
+
FileUtils.mkdir_p(MetricFu::BASE_DIRECTORY) unless File.directory?(MetricFu::BASE_DIRECTORY)
|
21
|
+
t.test_files = FileList['test/**/*_test.rb', 'spec/**/*_spec.rb']
|
22
|
+
t.rcov_opts = ["--sort coverage", "--html", "--rails", "--exclude /gems/,/Library/"]
|
23
|
+
t.output_dir = COVERAGE_DIR
|
24
|
+
# this line is a fix for Rails 2.1 relative loading issues
|
25
|
+
t.libs << 'test'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
desc "Generate and open coverage report"
|
30
|
+
task :coverage => ['coverage:do'] do
|
31
|
+
system("open #{COVERAGE_DIR}/index.html") if PLATFORM['darwin']
|
32
|
+
end
|
33
|
+
end
|
34
|
+
rescue LoadError
|
35
|
+
if RUBY_PLATFORM =~ /java/
|
36
|
+
puts 'running in jruby - rcov tasks not available'
|
37
|
+
else
|
38
|
+
puts 'sudo gem install rcov # if you want the rcov tasks'
|
39
|
+
end
|
40
|
+
end
|
data/lib/tasks/flay.rake
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
namespace :metrics do
|
2
|
+
|
3
|
+
FLAY_DIR = File.join(MetricFu::BASE_DIRECTORY, 'flay')
|
4
|
+
FLAY_FILE = File.join(FLAY_DIR, 'index.html')
|
5
|
+
|
6
|
+
desc "A code duplication report using flay"
|
7
|
+
task :flay do
|
8
|
+
mkdir_p(FLAY_DIR) unless File.directory?(FLAY_DIR)
|
9
|
+
`echo '<pre>' > #{FLAY_FILE}`
|
10
|
+
`flay #{RAILS_ROOT}/test/**/*.rb #{RAILS_ROOT}/app/**/*.rb >> #{FLAY_FILE}`
|
11
|
+
`echo '</pre>' >> #{FLAY_FILE}`
|
12
|
+
system("open #{FLAY_FILE}") if PLATFORM['darwin']
|
13
|
+
end
|
14
|
+
end
|
data/lib/tasks/flog.rake
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
begin
|
2
|
+
FLOG_DIR = File.join(MetricFu::BASE_DIRECTORY, 'flog')
|
3
|
+
|
4
|
+
def flog(output, directory)
|
5
|
+
Dir.glob("#{directory}/**/*.rb").each do |filename|
|
6
|
+
output_dir = "#{FLOG_DIR}/#{filename.split("/")[0..-2].join("/")}"
|
7
|
+
mkdir_p(output_dir, :verbose => false) unless File.directory?(output_dir)
|
8
|
+
`flog #{filename} > #{FLOG_DIR}/#{filename.split('.')[0]}.txt` if MetricFu::MD5Tracker.file_changed?(filename, FLOG_DIR)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
namespace :metrics do
|
13
|
+
|
14
|
+
task :flog => ['flog:all'] do
|
15
|
+
end
|
16
|
+
|
17
|
+
namespace :flog do
|
18
|
+
desc "Delete aggregate flog data."
|
19
|
+
task(:clean) { rm_rf(FLOG_DIR, :verbose => false) }
|
20
|
+
|
21
|
+
desc "Flog code in app/models"
|
22
|
+
task :models do
|
23
|
+
flog "models", "app/models"
|
24
|
+
end
|
25
|
+
|
26
|
+
desc "Flog code in app/controllers"
|
27
|
+
task :controllers do
|
28
|
+
flog "controllers", "app/controllers"
|
29
|
+
end
|
30
|
+
|
31
|
+
desc "Flog code in app/helpers"
|
32
|
+
task :helpers do
|
33
|
+
flog "helpers", "app/helpers"
|
34
|
+
end
|
35
|
+
|
36
|
+
desc "Flog code in lib"
|
37
|
+
task :lib do
|
38
|
+
flog "lib", "lib"
|
39
|
+
end
|
40
|
+
|
41
|
+
desc "Generate and open flog report"
|
42
|
+
task :all => [:models, :controllers, :helpers, :lib] do
|
43
|
+
MetricFu::FlogReporter::Generator.generate_report(FLOG_DIR)
|
44
|
+
system("open #{FLOG_DIR}/index.html") if PLATFORM['darwin']
|
45
|
+
end
|
46
|
+
|
47
|
+
desc "Generate a flog report from specified directories"
|
48
|
+
task :custom do
|
49
|
+
raise "You must define MetricFu::DIRECTORIES_TO_FLOG in your Rakefile" unless defined?(MetricFu::DIRECTORIES_TO_FLOG)
|
50
|
+
MetricFu::DIRECTORIES_TO_FLOG.each { |directory| flog(directory, directory) }
|
51
|
+
MetricFu::FlogReporter::Generator.generate_report(FLOG_DIR)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
rescue LoadError
|
57
|
+
if RUBY_PLATFORM =~ /java/
|
58
|
+
puts 'running in jruby - flog tasks not available'
|
59
|
+
else
|
60
|
+
puts 'sudo gem install flog # if you want the flog tasks'
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
namespace :metrics do
|
2
|
+
task :prepare do
|
3
|
+
RAILS_ENV = 'test'
|
4
|
+
end
|
5
|
+
|
6
|
+
desc "Useful for continuous integration"
|
7
|
+
task :all_with_migrate => [:prepare, "db:migrate", :all]
|
8
|
+
|
9
|
+
desc "Generate coverage, cyclomatic complexity (saikuro), flog, stats, and churn reports"
|
10
|
+
task :all => [:coverage, :saikuro, :flog, :churn, :stats, :railroad, :reek, :roodi, :flay]
|
11
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
namespace :metrics do
|
2
|
+
|
3
|
+
RAILROAD_DIR = File.join(MetricFu::BASE_DIRECTORY, 'railroad')
|
4
|
+
RAILROAD_INDEX = File.join(RAILROAD_DIR, 'index.html')
|
5
|
+
|
6
|
+
task :railroad => ['railroad:all'] do
|
7
|
+
end
|
8
|
+
|
9
|
+
namespace :railroad do
|
10
|
+
|
11
|
+
desc "Create all railroad reports"
|
12
|
+
task :all => [:models, :controllers, :aasm] do
|
13
|
+
#system("open #{RAILROAD_INDEX}") if PLATFORM['darwin']
|
14
|
+
end
|
15
|
+
|
16
|
+
desc "Create a railroad models report"
|
17
|
+
task :models do
|
18
|
+
mkdir_p(RAILROAD_DIR) unless File.directory?(RAILROAD_DIR)
|
19
|
+
`railroad -M -a -m -l -v | neato -Tpng > #{File.join(RAILROAD_DIR,'models.png')}`
|
20
|
+
end
|
21
|
+
|
22
|
+
desc "Create a railroad controllers report"
|
23
|
+
task :controllers do
|
24
|
+
mkdir_p(RAILROAD_DIR) unless File.directory?(RAILROAD_DIR)
|
25
|
+
`railroad -C -l -v | neato -Tpng > #{File.join(RAILROAD_DIR,'controllers.png')}`
|
26
|
+
end
|
27
|
+
|
28
|
+
desc "Create a railroad acts_as_state_machine report"
|
29
|
+
task :aasm do
|
30
|
+
mkdir_p(RAILROAD_DIR) unless File.directory?(RAILROAD_DIR)
|
31
|
+
`railroad -A -l -v | neato -Tpng > #{File.join(RAILROAD_DIR,'aasm.png')}`
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
data/lib/tasks/reek.rake
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
namespace :metrics do
|
2
|
+
|
3
|
+
REEK_DIR = File.join(MetricFu::BASE_DIRECTORY, 'reek')
|
4
|
+
REEK_FILE = File.join(REEK_DIR, 'index.html')
|
5
|
+
|
6
|
+
desc "A code smell report using Reek"
|
7
|
+
task :reek do
|
8
|
+
mkdir_p(REEK_DIR) unless File.directory?(REEK_DIR)
|
9
|
+
`echo '<pre>' > #{REEK_FILE}`
|
10
|
+
`reek #{RAILS_ROOT}/test/**/*.rb #{RAILS_ROOT}/app/**/*.rb >> #{REEK_FILE}`
|
11
|
+
`echo '</pre>' >> #{REEK_FILE}`
|
12
|
+
system("open #{REEK_FILE}") if PLATFORM['darwin']
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
namespace :metrics do
|
2
|
+
|
3
|
+
ROODI_DIR = File.join(MetricFu::BASE_DIRECTORY, 'roodi')
|
4
|
+
ROODI_FILE = File.join(ROODI_DIR, 'index.html')
|
5
|
+
|
6
|
+
desc "A Ruby coding standards report using Roodi"
|
7
|
+
task :roodi do
|
8
|
+
mkdir_p(ROODI_DIR) unless File.directory?(ROODI_DIR)
|
9
|
+
`echo '<pre>' > #{ROODI_FILE}`
|
10
|
+
`roodi #{RAILS_ROOT}/lib/**/*.rb #{RAILS_ROOT}/app/**/*.rb >> #{ROODI_FILE}`
|
11
|
+
`echo '</pre>' >> #{ROODI_FILE}`
|
12
|
+
system("open #{ROODI_FILE}") if PLATFORM['darwin']
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
namespace :metrics do
|
2
|
+
|
3
|
+
SAIKURO_DIR = File.join(MetricFu::BASE_DIRECTORY, 'saikuro')
|
4
|
+
|
5
|
+
desc "A cyclomatic complexity report using Saikuro"
|
6
|
+
task :saikuro do
|
7
|
+
raise "SAIKURO_OPTIONS is now MetricFu::SAIKURO_OPTIONS" if defined?(SAIKURO_OPTIONS)
|
8
|
+
default_options = {"--output_directory" => SAIKURO_DIR,
|
9
|
+
"--input_directory" => "app",
|
10
|
+
"--cyclo" => "",
|
11
|
+
"--filter_cyclo" => "0",
|
12
|
+
"--warn_cyclo" => "5",
|
13
|
+
"--error_cyclo" => "7"}
|
14
|
+
|
15
|
+
default_options.merge!(MetricFu::SAIKURO_OPTIONS) if defined?(MetricFu::SAIKURO_OPTIONS)
|
16
|
+
options = ""
|
17
|
+
default_options.each_pair { |key, value| options << "#{key} #{value} " }
|
18
|
+
|
19
|
+
sh "ruby \"#{File.expand_path(File.join(File.dirname(__FILE__), '..', 'metric_fu', 'saikuro'))}/saikuro.rb\" " +
|
20
|
+
"#{options}" do |ok, response|
|
21
|
+
unless ok
|
22
|
+
puts "Saikuro failed with exit status: #{response.exitstatus}"
|
23
|
+
exit 1
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
if File.exist? "#{SAIKURO_DIR}/index_cyclo.html"
|
28
|
+
mv "#{SAIKURO_DIR}/index_cyclo.html",
|
29
|
+
"#{SAIKURO_DIR}/index.html"
|
30
|
+
end
|
31
|
+
|
32
|
+
system("open #{SAIKURO_DIR}/index.html") if PLATFORM['darwin']
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
namespace :metrics do
|
2
|
+
|
3
|
+
STATS_DIR = File.join(MetricFu::BASE_DIRECTORY, 'stats')
|
4
|
+
STATS_FILE = File.join(STATS_DIR, 'index.html')
|
5
|
+
|
6
|
+
desc "A stats report"
|
7
|
+
task :stats do
|
8
|
+
mkdir_p(STATS_DIR) unless File.directory?(STATS_DIR)
|
9
|
+
`echo '<pre>' > #{STATS_FILE}`
|
10
|
+
`rake stats >> #{STATS_FILE}`
|
11
|
+
`echo '</pre>' >> #{STATS_FILE}`
|
12
|
+
system("open #{STATS_FILE}") if PLATFORM['darwin']
|
13
|
+
end
|
14
|
+
end
|
data/metric_fu.gemspec
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = "metric_fu"
|
3
|
+
s.version = "0.8.0.4"
|
4
|
+
s.summary = "Generates project metrics using Flog, RCov, Saikuro, Flay, Reek, Roodi, Railroad and more"
|
5
|
+
s.email = "jake.scruggs@gmail.com"
|
6
|
+
s.homepage = "http://metric-fu.rubyforge.org/"
|
7
|
+
s.description = "Gives you a fist full of code metrics"
|
8
|
+
s.has_rdoc = true
|
9
|
+
s.authors = ["Jake Scruggs", "Sean Soper"]
|
10
|
+
s.files = ["History.txt", "Manifest.txt", "metric_fu.gemspec", "MIT-LICENSE", "README", "TODO.txt", "lib/metric_fu", "lib/metric_fu/churn.rb", "lib/metric_fu/flog_reporter", "lib/metric_fu/flog_reporter/base.rb", "lib/metric_fu/flog_reporter/flog_reporter.css", "lib/metric_fu/flog_reporter/generator.rb", "lib/metric_fu/flog_reporter/operator.rb", "lib/metric_fu/flog_reporter/page.rb", "lib/metric_fu/flog_reporter/scanned_method.rb", "lib/metric_fu/flog_reporter.rb", "lib/metric_fu/md5_tracker.rb", "lib/metric_fu/saikuro", "lib/metric_fu/saikuro/saikuro.rb", "lib/metric_fu/saikuro/SAIKURO_README", "lib/metric_fu.rb", "lib/tasks", "lib/tasks/churn.rake", "lib/tasks/coverage.rake", "lib/tasks/flay.rake", "lib/tasks/flog.rake", "lib/tasks/metric_fu.rake", "lib/tasks/metric_fu.rb", "lib/tasks/railroad.rake", "lib/tasks/reek.rake", "lib/tasks/roodi.rake", "lib/tasks/saikuro.rake", "lib/tasks/stats.rake", "test/test_helper.rb", "test/test_md5_tracker.rb"]
|
11
|
+
s.test_files = ["test/test_md5_tracker.rb"]
|
12
|
+
s.rdoc_options = ["--main", "README"]
|
13
|
+
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README"]
|
14
|
+
s.add_dependency("flog", ["> 0.0.0"])
|
15
|
+
s.add_dependency("rcov", ["> 0.0.0"])
|
16
|
+
s.add_dependency("reek", ["> 0.0.0"])
|
17
|
+
s.add_dependency("flay", ["> 0.0.0"])
|
18
|
+
s.add_dependency("roodi", ["> 0.0.0"])
|
19
|
+
s.add_dependency("factorylabs-railroad", ["> 0.0.0"])
|
20
|
+
end
|
metadata
ADDED
@@ -0,0 +1,144 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: factorylabs-metric_fu
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.8.0.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jake Scruggs
|
8
|
+
- Sean Soper
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2008-12-22 00:00:00 -08:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: flog
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.0
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rcov
|
27
|
+
version_requirement:
|
28
|
+
version_requirements: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.0.0
|
33
|
+
version:
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: reek
|
36
|
+
version_requirement:
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 0.0.0
|
42
|
+
version:
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: flay
|
45
|
+
version_requirement:
|
46
|
+
version_requirements: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - ">"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 0.0.0
|
51
|
+
version:
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: roodi
|
54
|
+
version_requirement:
|
55
|
+
version_requirements: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: 0.0.0
|
60
|
+
version:
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: factorylabs-railroad
|
63
|
+
version_requirement:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.0.0
|
69
|
+
version:
|
70
|
+
description: Gives you a fist full of code metrics
|
71
|
+
email: jake.scruggs@gmail.com
|
72
|
+
executables: []
|
73
|
+
|
74
|
+
extensions: []
|
75
|
+
|
76
|
+
extra_rdoc_files:
|
77
|
+
- History.txt
|
78
|
+
- Manifest.txt
|
79
|
+
- README
|
80
|
+
files:
|
81
|
+
- History.txt
|
82
|
+
- Manifest.txt
|
83
|
+
- metric_fu.gemspec
|
84
|
+
- MIT-LICENSE
|
85
|
+
- README
|
86
|
+
- TODO.txt
|
87
|
+
- lib/metric_fu
|
88
|
+
- lib/metric_fu/churn.rb
|
89
|
+
- lib/metric_fu/flog_reporter
|
90
|
+
- lib/metric_fu/flog_reporter/base.rb
|
91
|
+
- lib/metric_fu/flog_reporter/flog_reporter.css
|
92
|
+
- lib/metric_fu/flog_reporter/generator.rb
|
93
|
+
- lib/metric_fu/flog_reporter/operator.rb
|
94
|
+
- lib/metric_fu/flog_reporter/page.rb
|
95
|
+
- lib/metric_fu/flog_reporter/scanned_method.rb
|
96
|
+
- lib/metric_fu/flog_reporter.rb
|
97
|
+
- lib/metric_fu/md5_tracker.rb
|
98
|
+
- lib/metric_fu/saikuro
|
99
|
+
- lib/metric_fu/saikuro/saikuro.rb
|
100
|
+
- lib/metric_fu/saikuro/SAIKURO_README
|
101
|
+
- lib/metric_fu.rb
|
102
|
+
- lib/tasks
|
103
|
+
- lib/tasks/churn.rake
|
104
|
+
- lib/tasks/coverage.rake
|
105
|
+
- lib/tasks/flay.rake
|
106
|
+
- lib/tasks/flog.rake
|
107
|
+
- lib/tasks/metric_fu.rake
|
108
|
+
- lib/tasks/metric_fu.rb
|
109
|
+
- lib/tasks/railroad.rake
|
110
|
+
- lib/tasks/reek.rake
|
111
|
+
- lib/tasks/roodi.rake
|
112
|
+
- lib/tasks/saikuro.rake
|
113
|
+
- lib/tasks/stats.rake
|
114
|
+
- test/test_helper.rb
|
115
|
+
- test/test_md5_tracker.rb
|
116
|
+
has_rdoc: true
|
117
|
+
homepage: http://metric-fu.rubyforge.org/
|
118
|
+
post_install_message:
|
119
|
+
rdoc_options:
|
120
|
+
- --main
|
121
|
+
- README
|
122
|
+
require_paths:
|
123
|
+
- lib
|
124
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: "0"
|
129
|
+
version:
|
130
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
|
+
requirements:
|
132
|
+
- - ">="
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: "0"
|
135
|
+
version:
|
136
|
+
requirements: []
|
137
|
+
|
138
|
+
rubyforge_project:
|
139
|
+
rubygems_version: 1.2.0
|
140
|
+
signing_key:
|
141
|
+
specification_version: 2
|
142
|
+
summary: Generates project metrics using Flog, RCov, Saikuro, Flay, Reek, Roodi, Railroad and more
|
143
|
+
test_files:
|
144
|
+
- test/test_md5_tracker.rb
|