p8-metric_fu 0.8.4.13 → 0.8.4.14
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/README +13 -14
- data/Rakefile +0 -4
- data/lib/metric_fu/base.rb +2 -3
- data/lib/tasks/flog.rake +1 -1
- data/spec/config_spec.rb +6 -6
- metadata +1 -1
data/README
CHANGED
@@ -49,11 +49,11 @@ Which will check for updates every 24 hours and run all the metrics rake tasks (
|
|
49
49
|
|
50
50
|
****Notes on configuration****
|
51
51
|
|
52
|
+
Metric_fu can be customized to your liking by adding the following to your Rakefile
|
53
|
+
|
52
54
|
MetricFu::Configuration.run do |config|
|
53
55
|
#define which metrics you want to use
|
54
|
-
config.metrics
|
55
|
-
# Don't open reports in the browser on a mac
|
56
|
-
config.open_in_browser = false
|
56
|
+
config.metrics = [:coverage, :flog]
|
57
57
|
config.churn_options = { :start_date => lambda{ 3.months.ago } }
|
58
58
|
config.coverage_options = { :test_files => ['test/**/test_*.rb'] }
|
59
59
|
config.flog_options = { :dirs_to_flog => ['cms/app', 'cms/lib'] }
|
@@ -66,39 +66,38 @@ end
|
|
66
66
|
|
67
67
|
When creating a coverage report, metric_fu runs all the tests in the test folder and specs in spec folder using Rcov.
|
68
68
|
You can configure the coverage test files pattern:
|
69
|
-
config.
|
69
|
+
config.coverage_options[:test_files] = ['test/**/test_*.rb']
|
70
70
|
|
71
71
|
The default value is ['test/**/*_test.rb', 'spec/**/*_spec.rb']
|
72
72
|
|
73
73
|
|
74
74
|
****Notes on metrics:saikuro****
|
75
75
|
|
76
|
-
Saikuro is bundled with metric_fu so you don't have to install it. Look at the SAIKURO_README (or the internet) for more documentation on Saikuro. If you wish to change the options Saikuro is run with, then set this constant in your
|
76
|
+
Saikuro is bundled with metric_fu so you don't have to install it. Look at the SAIKURO_README (or the internet) for more documentation on Saikuro. If you wish to change the options Saikuro is run with, then set this constant in your configuration:
|
77
77
|
|
78
78
|
config.saikuro_options = { "--warn_cyclo" => "3", "--error_cyclo" => "4" }
|
79
79
|
|
80
80
|
saikuro_options is a hash that gets merged with the default options hash. The above example will set the warn_cyclo to 3 and the error_cyclo to 4 (which is way too low -- it's just an example) instructing Saikuro to flag methods with a higher cyclomatic complexity in it's report.
|
81
81
|
|
82
|
-
If you want to have Saikuro look at multiple folders you can put something like this in your
|
82
|
+
If you want to have Saikuro look at multiple folders you can put something like this in your configuration:
|
83
83
|
|
84
84
|
config.saikuro_options = {"--input_directory" => '"cms/app | cms/lib"'}
|
85
85
|
|
86
86
|
|
87
87
|
****Notes on metrics:flay****
|
88
88
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
89
|
+
Flay analyzes ruby code for structural similarities.
|
90
|
+
You can configure which directories need to be flayed.
|
91
|
+
The defaults are 'lib' for non Rails projects and ['app', 'lib'] for Rails projects.
|
93
92
|
config.flay_options[:dirs_to_flay] = ['cms/app', 'cms/lib']
|
94
93
|
|
95
94
|
****Notes on metrics:flog****
|
96
95
|
|
97
|
-
|
98
|
-
|
99
|
-
|
96
|
+
Flog is another way of measuring complexity (or tortured code as the Flog authors like to put it). You should check out the awesome, and a little scary, Flog website for more info.
|
97
|
+
'rake metrics:flog:custom' allows you to specify a custom set of directories to Flog (in your configuration).
|
98
|
+
The defaults are 'lib' for non Rails projects and ['app', 'lib'] for Rails projects.
|
100
99
|
|
101
|
-
|
100
|
+
config.flog_options[:dirs_to_flog] = ['cms/app', 'cms/lib']
|
102
101
|
|
103
102
|
|
104
103
|
****Notes on metrics:stats****
|
data/Rakefile
CHANGED
data/lib/metric_fu/base.rb
CHANGED
@@ -103,7 +103,7 @@ module MetricFu
|
|
103
103
|
end
|
104
104
|
|
105
105
|
def open_in_browser?
|
106
|
-
PLATFORM['darwin'] &&
|
106
|
+
PLATFORM['darwin'] && !ENV['CC_BUILD_ARTIFACTS']
|
107
107
|
end
|
108
108
|
|
109
109
|
def saikuro_options
|
@@ -113,7 +113,7 @@ module MetricFu
|
|
113
113
|
end
|
114
114
|
|
115
115
|
class Configuration
|
116
|
-
attr_accessor :churn_options, :coverage_options, :flay_options, :flog_options, :metrics, :
|
116
|
+
attr_accessor :churn_options, :coverage_options, :flay_options, :flog_options, :metrics, :saikuro_options
|
117
117
|
def initialize
|
118
118
|
raise "Use config.churn_options instead of MetricFu::CHURN_OPTIONS" if defined? ::MetricFu::CHURN_OPTIONS
|
119
119
|
raise "Use config.flog_options[:dirs_to_flog] instead of MetricFu::DIRECTORIES_TO_FLOG" if defined? ::MetricFu::DIRECTORIES_TO_FLOG
|
@@ -131,7 +131,6 @@ module MetricFu
|
|
131
131
|
@flay_options = { :dirs_to_flay => CODE_DIRS}
|
132
132
|
@flog_options = { :dirs_to_flog => CODE_DIRS}
|
133
133
|
@metrics = DEFAULT_METRICS
|
134
|
-
@open_in_browser = true
|
135
134
|
@saikuro_options = {}
|
136
135
|
end
|
137
136
|
|
data/lib/tasks/flog.rake
CHANGED
@@ -4,7 +4,7 @@ begin
|
|
4
4
|
Dir.glob("#{directory}/**/*.rb").each do |filename|
|
5
5
|
output_dir = "#{MetricFu::FLOG_DIR}/#{filename.split("/")[0..-2].join("/")}"
|
6
6
|
mkdir_p(output_dir, :verbose => false) unless File.directory?(output_dir)
|
7
|
-
|
7
|
+
`flog #{filename} > #{MetricFu::FLOG_DIR}/#{filename.split('.')[0]}.txt` if MetricFu::MD5Tracker.file_changed?(filename, MetricFu::FLOG_DIR)
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
data/spec/config_spec.rb
CHANGED
@@ -4,15 +4,15 @@ describe MetricFu::Configuration do
|
|
4
4
|
before do
|
5
5
|
MetricFu.configuration.reset
|
6
6
|
end
|
7
|
+
after do
|
8
|
+
ENV['CC_BUILD_ARTIFACTS'] = nil
|
9
|
+
end
|
7
10
|
describe "open_in_browser" do
|
8
|
-
it "should
|
11
|
+
it "should return false if running in cruise" do
|
9
12
|
MetricFu.open_in_browser?.should == !!PLATFORM['darwin']
|
10
|
-
|
11
|
-
config.open_in_browser = false
|
12
|
-
end
|
13
|
-
MetricFu.configuration.open_in_browser.should == false
|
13
|
+
ENV['CC_BUILD_ARTIFACTS'] = ''
|
14
14
|
MetricFu.open_in_browser?.should == false
|
15
|
-
end
|
15
|
+
end
|
16
16
|
end
|
17
17
|
|
18
18
|
describe "metrics" do
|