factorylabs-metric_fu 0.8.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|