metric_fu 2.1.4.pre5 → 3.0.0
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/.metrics +10 -1
- data/Gemfile +5 -0
- data/README.md +39 -3
- data/lib/metric_fu.rb +16 -1
- data/lib/metric_fu/cli/helper.rb +4 -2
- data/lib/metric_fu/load_files.rb +1 -1
- data/lib/metric_fu/run.rb +3 -3
- data/lib/metric_fu/version.rb +1 -1
- data/metric_fu.gemspec +1 -5
- data/spec/cli/helper_spec.rb +1 -0
- data/spec/metric_fu/configuration_spec.rb +1 -0
- data/spec/metric_fu/metrics/hotspots/hotspot_analyzer_spec.rb +2 -2
- data/spec/metric_fu/metrics/rcov/rcov_spec.rb +2 -1
- data/spec/spec_helper.rb +7 -0
- metadata +5 -21
data/.metrics
CHANGED
@@ -1,8 +1,17 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
# For testing that this file gets loaded
|
4
|
-
|
4
|
+
mf_debug "Metrics config loaded"
|
5
5
|
# example configuration
|
6
6
|
# MetricFu::Configuration.run do |config|
|
7
|
+
# coverage_file = File.expand_path("coverage/rcov/rcov.txt", Dir.pwd)
|
8
|
+
# config.add_metric(:rcov)
|
9
|
+
# config.add_graph(:rcov)
|
10
|
+
# config.configure_metric(:rcov, {:external => coverage_file})
|
11
|
+
# end
|
12
|
+
# or
|
13
|
+
# MetricFu::Configuration.run do |config|
|
7
14
|
# config.metrics -= [ :rcov ]
|
8
15
|
# end
|
16
|
+
# you may enable running rcov manually with
|
17
|
+
# MetricFu.run_rcov
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -19,17 +19,53 @@ See `metric_fu --help` for more options
|
|
19
19
|
It is currently testing on MRI 1.8.7, 1.9.2, and 1.9.3
|
20
20
|
|
21
21
|
* The `japgolly-Saikuro` fork and `metric_fu-roodi` fork are a part of an attempt to get metric_fu working in a modern Ruby environment, specifically compatibility with Ruby 1.9 and Bundler.
|
22
|
-
* rcov may fail in ruby 1.9
|
23
22
|
* rails_best_practices is disabled in ruby 1.8
|
23
|
+
* metric_fu no longer runs rcov itself. You may still use rcov metrics as documented below
|
24
24
|
|
25
25
|
## Documentation
|
26
26
|
|
27
|
-
TBD
|
28
|
-
|
29
27
|
### Configuration
|
30
28
|
|
31
29
|
see the .metrics file
|
32
30
|
|
31
|
+
### Using Coverage Metrics
|
32
|
+
|
33
|
+
in your .metrics file add the below to run pre-generated metrics
|
34
|
+
|
35
|
+
MetricFu::Configuration.run do |config|
|
36
|
+
coverage_file = File.expand_path("coverage/rcov/rcov.txt", Dir.pwd)
|
37
|
+
config.add_metric(:rcov)
|
38
|
+
config.add_graph(:rcov)
|
39
|
+
config.configure_metric(:rcov, {:external => coverage_file})
|
40
|
+
end
|
41
|
+
|
42
|
+
if you want metric_fu to actually run rcov itself (1.8 only), just add
|
43
|
+
|
44
|
+
MetricFu.run_rcov
|
45
|
+
|
46
|
+
#### Rcov metrics with Ruby 1.8
|
47
|
+
|
48
|
+
To generate the same metrics metric_fu has been generating run from the root of your project before running metric_fu
|
49
|
+
|
50
|
+
RAILS_ENV=test rcov $(ruby -e "puts Dir['{spec,test}/**/*_{spec,test}.rb'].join(' ')") --sort coverage --no-html --text-coverage --no-color --profile --exclude-only '.*' --include-file "\Aapp,\Alib" -Ispec >> coverage/rcov/rcov.txt
|
51
|
+
|
52
|
+
#### Simplecov metrics with Ruby 1.9
|
53
|
+
|
54
|
+
Add to your Gemfile or otherwise install
|
55
|
+
|
56
|
+
gem 'simplecov'
|
57
|
+
# https://github.com/kina/simplecov-rcov-text
|
58
|
+
gem 'simplecov-rcov-text'
|
59
|
+
|
60
|
+
Modify your spec_helper as per the SimpleCov docs and run your tests before running metric_fu
|
61
|
+
|
62
|
+
#in your spec_helper
|
63
|
+
require 'simplecov'
|
64
|
+
require 'simplecov-rcov-text'
|
65
|
+
SimpleCov.formatter = SimpleCov::Formatter::RcovTextFormatter
|
66
|
+
SimpleCov.start
|
67
|
+
# SimpleCov.start 'rails'
|
68
|
+
|
33
69
|
### Historical
|
34
70
|
|
35
71
|
There is some useful-but-out-of-date documentation about configuring metric_fu at http://metric-fu.rubyforge.org/ and a change log in the the HISTORY file.
|
data/lib/metric_fu.rb
CHANGED
@@ -42,11 +42,26 @@ module MetricFu
|
|
42
42
|
end
|
43
43
|
def self.configure
|
44
44
|
MetricFu.lib_require { 'configuration' }
|
45
|
-
Dir.glob(File.join(MetricFu.metrics_dir, '**/init.rb')).
|
45
|
+
init_files = Dir.glob(File.join(MetricFu.metrics_dir, '**/init.rb')).reject do |file|
|
46
|
+
if file =~ /rcov/
|
47
|
+
MetricFu.configuration.mf_debug("rcov is not available. See README")
|
48
|
+
true
|
49
|
+
else
|
50
|
+
false
|
51
|
+
end
|
52
|
+
end
|
53
|
+
init_files.each do |file|
|
46
54
|
load file
|
47
55
|
end
|
48
56
|
MetricFu.configuration
|
49
57
|
end
|
58
|
+
def self.run_rcov
|
59
|
+
load File.join(MetricFu.metrics_dir, 'rcov/init.rb')
|
60
|
+
end
|
61
|
+
def self.skip_rcov
|
62
|
+
MetricFu.metrics -= [:rcov]
|
63
|
+
MetricFu.graphs -= [:rcov]
|
64
|
+
end
|
50
65
|
class << self
|
51
66
|
%w(scratch output _data).each do |dir|
|
52
67
|
define_method("#{dir.gsub(/[^A-Za-z0-9]/,'')}_dir") do
|
data/lib/metric_fu/cli/helper.rb
CHANGED
@@ -4,9 +4,11 @@ require 'metric_fu/cli/parser'
|
|
4
4
|
module MetricFu
|
5
5
|
module Cli
|
6
6
|
class Helper
|
7
|
+
def initialize
|
8
|
+
@metric_fu = MetricFu::Run.new
|
9
|
+
end
|
7
10
|
def run(options={})
|
8
|
-
@metric_fu
|
9
|
-
@metric_fu.run
|
11
|
+
@metric_fu.run(options)
|
10
12
|
complete
|
11
13
|
end
|
12
14
|
def version
|
data/lib/metric_fu/load_files.rb
CHANGED
@@ -23,7 +23,7 @@ Dir.glob(File.join(MetricFu.errors_dir, '**/*.rb')).each do |file|
|
|
23
23
|
require file
|
24
24
|
end
|
25
25
|
Dir.glob(File.join(MetricFu.metrics_dir, '**/*.rb')).each do |file|
|
26
|
-
require file
|
26
|
+
require(file) unless file =~ /init.rb/
|
27
27
|
end
|
28
28
|
Dir.glob(File.join(MetricFu.reporting_dir, '**/*.rb')).each do |file|
|
29
29
|
require file
|
data/lib/metric_fu/run.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
MetricFu.configure
|
2
2
|
module MetricFu
|
3
3
|
class Run
|
4
|
-
def initialize
|
4
|
+
def initialize
|
5
5
|
STDOUT.sync = true
|
6
6
|
load_user_configuration
|
7
|
-
disable_metrics(options)
|
8
7
|
end
|
9
|
-
def run
|
8
|
+
def run(options={})
|
9
|
+
disable_metrics(options)
|
10
10
|
run_reports
|
11
11
|
save_reports
|
12
12
|
save_graphs
|
data/lib/metric_fu/version.rb
CHANGED
data/metric_fu.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.summary = "A fistful of code metrics, with awesome templates and graphs"
|
11
11
|
s.email = "github@benjaminfleischer.com"
|
12
12
|
s.homepage = "http://github.com/metricfu/metric_fu"
|
13
|
-
s.description = "Code metrics from Flog, Flay,
|
13
|
+
s.description = "Code metrics from Flog, Flay, Saikuro, Churn, Reek, Roodi, Rails' stats task and Rails Best Practices, and optionally RCov"
|
14
14
|
s.authors = ["Jake Scruggs", "Sean Soper", "Andre Arko", "Petrik de Heus", "Grant McInnes", "Nick Quaranto", "Édouard Brière", "Carl Youngblood", "Richard Huang", "Dan Mayer", "Benjamin Fleischer"]
|
15
15
|
s.rubyforge_project = 'metric_fu'
|
16
16
|
s.required_ruby_version = ">= 1.8.7"
|
@@ -23,10 +23,6 @@ Gem::Specification.new do |s|
|
|
23
23
|
|
24
24
|
{
|
25
25
|
"rails_best_practices" => ["= #{MetricFu::MetricVersion.rails_best_practices}"],
|
26
|
-
"rcov" => ["#{MetricFu::MetricVersion.rcov}"],
|
27
|
-
# still using rcov in ruby 1.9 till some errors are fleshed out
|
28
|
-
# "simplecov" => [">= 0.5.4"],
|
29
|
-
# "simplecov-rcov" => [">= 0.2.3"],
|
30
26
|
"japgolly-Saikuro" => ["#{MetricFu::MetricVersion.saikuro}"],
|
31
27
|
"metric_fu-roodi" => [">= #{MetricFu::MetricVersion.roodi}"],
|
32
28
|
"flay" => ["= #{MetricFu::MetricVersion.flay}"],
|
data/spec/cli/helper_spec.rb
CHANGED
@@ -284,8 +284,6 @@ __
|
|
284
284
|
:add_coverage_percentage: 1.3
|
285
285
|
:read: 1.3
|
286
286
|
:[]: 2.70000000000001
|
287
|
-
:average_score: 27.8909176873585
|
288
|
-
:total_score: 195.23642381151
|
289
287
|
- :highest_score: 60.0573892206447
|
290
288
|
:path: lib/base/metric_analyzer.rb
|
291
289
|
:methods:
|
@@ -307,6 +305,8 @@ __
|
|
307
305
|
:==: 3.1
|
308
306
|
:to_s: 1.3
|
309
307
|
:[]: 5.40000000000001
|
308
|
+
:average_score: 27.8909176873585
|
309
|
+
:total_score: 195.23642381151
|
310
310
|
__
|
311
311
|
end
|
312
312
|
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metric_fu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 3.0.0
|
5
|
+
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jake Scruggs
|
@@ -19,7 +19,7 @@ authors:
|
|
19
19
|
autorequire:
|
20
20
|
bindir: bin
|
21
21
|
cert_chain: []
|
22
|
-
date: 2013-02-
|
22
|
+
date: 2013-02-07 00:00:00.000000000 Z
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
25
25
|
name: rails_best_practices
|
@@ -37,22 +37,6 @@ dependencies:
|
|
37
37
|
- - '='
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: 1.13.2
|
40
|
-
- !ruby/object:Gem::Dependency
|
41
|
-
name: rcov
|
42
|
-
requirement: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
|
-
requirements:
|
45
|
-
- - ~>
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0.8'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
|
-
requirements:
|
53
|
-
- - ~>
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: '0.8'
|
56
40
|
- !ruby/object:Gem::Dependency
|
57
41
|
name: japgolly-Saikuro
|
58
42
|
requirement: !ruby/object:Gem::Requirement
|
@@ -315,8 +299,8 @@ dependencies:
|
|
315
299
|
- - ! '>='
|
316
300
|
- !ruby/object:Gem::Version
|
317
301
|
version: '0'
|
318
|
-
description: Code metrics from Flog, Flay,
|
319
|
-
|
302
|
+
description: Code metrics from Flog, Flay, Saikuro, Churn, Reek, Roodi, Rails' stats
|
303
|
+
task and Rails Best Practices, and optionally RCov
|
320
304
|
email: github@benjaminfleischer.com
|
321
305
|
executables:
|
322
306
|
- metric_fu
|