metric_fu 4.4.2 → 4.4.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +6 -14
- data/HISTORY.md +8 -0
- data/checksum/metric_fu-4.4.2.gem.sha512 +1 -0
- data/lib/metric_fu/configuration.rb +2 -1
- data/lib/metric_fu/io.rb +8 -4
- data/lib/metric_fu/metrics/generator.rb +11 -41
- data/lib/metric_fu/metrics/saikuro/init.rb +9 -7
- data/lib/metric_fu/version.rb +1 -1
- data/spec/metric_fu/metrics/generator_spec.rb +4 -43
- metadata +26 -25
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
ZTFlNDhmNDE1NjM1ZmMxODlmYjQ1NDZjMDI4MWE4NzBiMDFjNDc5YTBkODc2
|
10
|
-
NzZkZTA1ZTA1OWRhYjYyZmZmZDcxOGVmMGE1ODcxY2E1ZWEzMTliNDUxOTgx
|
11
|
-
NDdkYTNkNGViYTBmZmFhYWFjYzFlNTk1ZTNkZGRlOTFhY2VmNTc=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
OTY3Y2ZkMGVlZmJjNzM4MDQxZmMyNWIyNjU1OThmZTVmZDI4YTQyZjYxMDJi
|
14
|
-
MjYxMGQyYjM4YTcyNjliYTdlMjlkYzFmMjhlYjA0OTA2OTJiNDI1NzUwODM4
|
15
|
-
MzZkOTkyMzBmM2Q1N2IwYWNmMjc5MDQ2ZDJlYTFlNjhiNjkwZWI=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8b6f6cc83dd1f84b3b744197df56b2fa179390c7
|
4
|
+
data.tar.gz: 2059f5c9368c4246db6d724ed18396a0fa891b17
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 07b0c5284d8c083cb8259d529450960aa9a842d2fe835e7daa3428c38190c96b23efbc3d55f4fa39289d4c2bb24deab2b829eeabfde0023d40e9c250664b928a
|
7
|
+
data.tar.gz: 1bc9bf9f893e4f8745b30eec8e508d72245341563d208757b3540511c86ec0b5dfc17e25354027564b78029b76a8dd173366f61f497901b7bea25baa366303e7
|
data/HISTORY.md
CHANGED
@@ -10,6 +10,14 @@ As such, a _Feature_ would map to either major or minor. A _bug fix_ to a patch.
|
|
10
10
|
* Fixes
|
11
11
|
* Misc
|
12
12
|
|
13
|
+
### MetricFu [4.4.3 / 2013-09-25](https://github.com/metricfu/metric_fu/compare/v4.4.1...v4.4.3)
|
14
|
+
|
15
|
+
* Features
|
16
|
+
* Fixes
|
17
|
+
* Scratch directory no longer dependent on generator class name. Saikuro works again! (Benjamin Fleischer, #141)
|
18
|
+
* Misc
|
19
|
+
* Metric scratch directory now set via Metric `run_options[:output_directory] || MetricFu::Io::FileSystem.scratch_directory(metric)` (Benjamin Fleischer, #141)
|
20
|
+
|
13
21
|
### MetricFu [4.4.2 / 2013-09-25](https://github.com/metricfu/metric_fu/compare/v4.4.1...v4.4.2)
|
14
22
|
|
15
23
|
* Features
|
@@ -0,0 +1 @@
|
|
1
|
+
1beb22d0d940c4d5297efbfa5a2c6ad46a5f64fd68a0695bc1d81a7b3d85fdafc9004ede390272f2602a2a87f306137fccf53e8225b9dd9943e87ef5c7103c78
|
@@ -80,7 +80,7 @@ module MetricFu
|
|
80
80
|
# TODO: Remove calls to self and/or allow querying the
|
81
81
|
# template/filesystem/metric/graph/environment, etc settings
|
82
82
|
# from the configuration instance
|
83
|
-
MetricFu::Io::FileSystem.set_directories
|
83
|
+
MetricFu::Io::FileSystem.set_directories
|
84
84
|
MetricFu::Formatter::Templates.configure_template(self)
|
85
85
|
@formatters = []
|
86
86
|
@graph_engine_config = MetricFu::GraphEngine.new
|
@@ -107,6 +107,7 @@ module MetricFu
|
|
107
107
|
end
|
108
108
|
|
109
109
|
def configure_metrics
|
110
|
+
MetricFu::Io::FileSystem.set_directories
|
110
111
|
MetricFu::Metric.metrics.each do |metric|
|
111
112
|
if block_given?
|
112
113
|
yield metric
|
data/lib/metric_fu/io.rb
CHANGED
@@ -18,12 +18,16 @@ module MetricFu
|
|
18
18
|
def directory(name)
|
19
19
|
directories.fetch(name) { raise "No such directory configured: #{name}" }
|
20
20
|
end
|
21
|
+
|
22
|
+
def scratch_directory(name)
|
23
|
+
File.join(directory('scratch_directory'), name.to_s)
|
24
|
+
end
|
25
|
+
|
21
26
|
def file_globs_to_ignore
|
22
27
|
@file_globs_to_ignore ||= []
|
23
28
|
end
|
24
29
|
|
25
|
-
|
26
|
-
def set_directories(config)
|
30
|
+
def set_directories
|
27
31
|
@directories = {}
|
28
32
|
@directories['base_directory'] = MetricFu.artifact_dir
|
29
33
|
@directories['scratch_directory'] = MetricFu.scratch_dir
|
@@ -35,7 +39,7 @@ module MetricFu
|
|
35
39
|
# TODO Though this is true of the general AwesomeTemplate, it is not necessarily true of templates within each Metric. Each metric should probably know how to use AwesomeTemplate (or whatever)
|
36
40
|
@directories['template_directory'] = File.join(@directories.fetch('root_directory'), 'lib', 'templates')
|
37
41
|
@file_globs_to_ignore = []
|
38
|
-
set_code_dirs
|
42
|
+
set_code_dirs
|
39
43
|
end
|
40
44
|
|
41
45
|
def create_directories(*dirs)
|
@@ -47,7 +51,7 @@ module MetricFu
|
|
47
51
|
end
|
48
52
|
|
49
53
|
# Add the 'app' directory if we're running within rails.
|
50
|
-
def set_code_dirs
|
54
|
+
def set_code_dirs
|
51
55
|
@directories['code_dirs'] = %w(app lib).select{|dir| Dir.exists?(dir) }
|
52
56
|
end
|
53
57
|
|
@@ -24,20 +24,18 @@ module MetricFu
|
|
24
24
|
#
|
25
25
|
# Based on the class name of the concrete class implementing a
|
26
26
|
# Generator, the Generator class will create a 'metric_directory'
|
27
|
-
# named after the
|
27
|
+
# named after the metric under the scratch_directory, where
|
28
28
|
# any output from the #emit method should go.
|
29
29
|
#
|
30
|
-
# It will also create the
|
30
|
+
# It will also create the output_directory if neccessary, and
|
31
31
|
# in general setup the directory structure that the MetricFu system
|
32
32
|
# expects.
|
33
33
|
class Generator
|
34
|
+
|
34
35
|
attr_reader :result, :template, :options
|
35
36
|
|
36
37
|
def initialize(options={})
|
37
38
|
@options = options
|
38
|
-
create_metric_dir_if_missing
|
39
|
-
create_output_dir_if_missing
|
40
|
-
create_data_dir_if_missing
|
41
39
|
end
|
42
40
|
|
43
41
|
@generators = []
|
@@ -54,46 +52,18 @@ module MetricFu
|
|
54
52
|
@generators << subclass
|
55
53
|
end
|
56
54
|
|
57
|
-
# Provides the unqualified class name of an implemented concrete
|
58
|
-
# class, as a string. For example:
|
59
|
-
#
|
60
|
-
# class Flay < Generator; end
|
61
|
-
# klass = Flay.new
|
62
|
-
# klass.class_name
|
63
|
-
# > "flay"
|
64
|
-
#
|
65
|
-
# @return String
|
66
|
-
# The unqualified class name of this concrete class, returned
|
67
|
-
# as a string.
|
68
|
-
def self.class_name
|
69
|
-
self.to_s.split('::').last.downcase
|
70
|
-
end
|
71
|
-
|
72
55
|
# Returns the directory where the Generator will write any output
|
73
56
|
def self.metric_directory
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
def create_output_dir_if_missing #:nodoc:
|
84
|
-
unless File.directory?(MetricFu::Io::FileSystem.directory('output_directory'))
|
85
|
-
FileUtils.mkdir_p(MetricFu::Io::FileSystem.directory('output_directory'), :verbose => false)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
def create_data_dir_if_missing #:nodoc:
|
90
|
-
unless File.directory?(MetricFu::Io::FileSystem.directory('data_directory'))
|
91
|
-
FileUtils.mkdir_p(MetricFu::Io::FileSystem.directory('data_directory'), :verbose => false)
|
92
|
-
end
|
57
|
+
@metric_directory ||=
|
58
|
+
MetricFu::Metric.get_metric(metric).run_options[:output_directory] ||
|
59
|
+
begin
|
60
|
+
metric_directory = MetricFu::Io::FileSystem.scratch_directory(metric)
|
61
|
+
FileUtils.mkdir_p(metric_directory, :verbose => false)
|
62
|
+
end
|
93
63
|
end
|
94
64
|
|
95
|
-
# @return String
|
96
|
-
#
|
65
|
+
# @return [String]
|
66
|
+
# The path of the metric directory this class is using.
|
97
67
|
def metric_directory
|
98
68
|
self.class.metric_directory
|
99
69
|
end
|
@@ -6,13 +6,15 @@ module MetricFu
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def default_run_options
|
9
|
-
{
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
9
|
+
{
|
10
|
+
:output_directory => MetricFu::Io::FileSystem.scratch_directory(name),
|
11
|
+
:input_directory =>MetricFu::Io::FileSystem.directory('code_dirs'),
|
12
|
+
:cyclo => "",
|
13
|
+
:filter_cyclo => "0",
|
14
|
+
:warn_cyclo => "5",
|
15
|
+
:error_cyclo => "7",
|
16
|
+
:formater => "text",
|
17
|
+
}
|
16
18
|
end
|
17
19
|
|
18
20
|
def has_graph?
|
data/lib/metric_fu/version.rb
CHANGED
@@ -27,52 +27,13 @@ describe MetricFu::Generator do
|
|
27
27
|
@concrete_class = ConcreteClass.new
|
28
28
|
end
|
29
29
|
|
30
|
-
describe "ConcreteClass#class_name" do
|
31
|
-
it "should be 'concreteclass'" do
|
32
|
-
ConcreteClass.class_name.should == 'concreteclass'
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
30
|
describe "ConcreteClass#metric_directory" do
|
37
31
|
it "should be 'tmp/metric_fu/scratch/concreteclass'" do
|
32
|
+
concrete_metric = double('concrete_metric')
|
33
|
+
MetricFu::Metric.should_receive(:get_metric).with(:concrete).and_return(concrete_metric)
|
34
|
+
concrete_metric.should_receive(:run_options).and_return({})
|
38
35
|
compare_paths(ConcreteClass.metric_directory,
|
39
|
-
"tmp/metric_fu/scratch/
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe "#create_metric_dir_if_missing " do
|
44
|
-
describe "when the metric_dir exists " do
|
45
|
-
it 'should not call mkdir_p on FileUtils' do
|
46
|
-
File.stub(:directory?).and_return(true)
|
47
|
-
FileUtils.should_not_receive(:mkdir_p)
|
48
|
-
@concrete_class.create_metric_dir_if_missing
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
describe "when the metric_dir does not exist " do
|
53
|
-
it 'should call mkdir_p on FileUtils' do
|
54
|
-
File.stub(:directory?).and_return(false)
|
55
|
-
FileUtils.should_receive(:mkdir_p)
|
56
|
-
@concrete_class.create_metric_dir_if_missing
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
describe "#create_output_dir_if_missing" do
|
62
|
-
describe "when the output_dir exists " do
|
63
|
-
it 'should not call mkdir_p on FileUtils' do
|
64
|
-
File.stub(:directory?).and_return(true)
|
65
|
-
FileUtils.should_not_receive(:mkdir_p)
|
66
|
-
@concrete_class.create_output_dir_if_missing
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
describe "when the output_dir does not exist " do
|
71
|
-
it 'should call mkdir_p on FileUtils' do
|
72
|
-
File.stub(:directory?).and_return(false)
|
73
|
-
FileUtils.should_receive(:mkdir_p)
|
74
|
-
@concrete_class.create_output_dir_if_missing
|
75
|
-
end
|
36
|
+
"tmp/metric_fu/scratch/concrete")
|
76
37
|
end
|
77
38
|
end
|
78
39
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metric_fu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.4.
|
4
|
+
version: 4.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jake Scruggs
|
@@ -19,13 +19,13 @@ authors:
|
|
19
19
|
autorequire:
|
20
20
|
bindir: bin
|
21
21
|
cert_chain: []
|
22
|
-
date: 2013-09-
|
22
|
+
date: 2013-09-26 00:00:00.000000000 Z
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
25
25
|
name: flay
|
26
26
|
requirement: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
|
-
- -
|
28
|
+
- - '>='
|
29
29
|
- !ruby/object:Gem::Version
|
30
30
|
version: 2.0.1
|
31
31
|
- - ~>
|
@@ -35,7 +35,7 @@ dependencies:
|
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 2.0.1
|
41
41
|
- - ~>
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
name: flog
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|
61
61
|
requirements:
|
62
|
-
- -
|
62
|
+
- - '>='
|
63
63
|
- !ruby/object:Gem::Version
|
64
64
|
version: 4.1.1
|
65
65
|
- - ~>
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- -
|
72
|
+
- - '>='
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: 4.1.1
|
75
75
|
- - ~>
|
@@ -79,7 +79,7 @@ dependencies:
|
|
79
79
|
name: reek
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
|
-
- -
|
82
|
+
- - '>='
|
83
83
|
- !ruby/object:Gem::Version
|
84
84
|
version: 1.3.3
|
85
85
|
- - ~>
|
@@ -89,7 +89,7 @@ dependencies:
|
|
89
89
|
prerelease: false
|
90
90
|
version_requirements: !ruby/object:Gem::Requirement
|
91
91
|
requirements:
|
92
|
-
- -
|
92
|
+
- - '>='
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: 1.3.3
|
95
95
|
- - ~>
|
@@ -99,7 +99,7 @@ dependencies:
|
|
99
99
|
name: cane
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- -
|
102
|
+
- - '>='
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: 2.5.2
|
105
105
|
- - ~>
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
prerelease: false
|
110
110
|
version_requirements: !ruby/object:Gem::Requirement
|
111
111
|
requirements:
|
112
|
-
- -
|
112
|
+
- - '>='
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: 2.5.2
|
115
115
|
- - ~>
|
@@ -119,7 +119,7 @@ dependencies:
|
|
119
119
|
name: rails_best_practices
|
120
120
|
requirement: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - '>='
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: 1.14.3
|
125
125
|
- - ~>
|
@@ -129,7 +129,7 @@ dependencies:
|
|
129
129
|
prerelease: false
|
130
130
|
version_requirements: !ruby/object:Gem::Requirement
|
131
131
|
requirements:
|
132
|
-
- -
|
132
|
+
- - '>='
|
133
133
|
- !ruby/object:Gem::Version
|
134
134
|
version: 1.14.3
|
135
135
|
- - ~>
|
@@ -139,14 +139,14 @@ dependencies:
|
|
139
139
|
name: metric_fu-Saikuro
|
140
140
|
requirement: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
|
-
- -
|
142
|
+
- - '>='
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: 1.1.1.0
|
145
145
|
type: :runtime
|
146
146
|
prerelease: false
|
147
147
|
version_requirements: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
|
-
- -
|
149
|
+
- - '>='
|
150
150
|
- !ruby/object:Gem::Version
|
151
151
|
version: 1.1.1.0
|
152
152
|
- !ruby/object:Gem::Dependency
|
@@ -181,56 +181,56 @@ dependencies:
|
|
181
181
|
name: redcard
|
182
182
|
requirement: !ruby/object:Gem::Requirement
|
183
183
|
requirements:
|
184
|
-
- -
|
184
|
+
- - '>='
|
185
185
|
- !ruby/object:Gem::Version
|
186
186
|
version: '0'
|
187
187
|
type: :runtime
|
188
188
|
prerelease: false
|
189
189
|
version_requirements: !ruby/object:Gem::Requirement
|
190
190
|
requirements:
|
191
|
-
- -
|
191
|
+
- - '>='
|
192
192
|
- !ruby/object:Gem::Version
|
193
193
|
version: '0'
|
194
194
|
- !ruby/object:Gem::Dependency
|
195
195
|
name: coderay
|
196
196
|
requirement: !ruby/object:Gem::Requirement
|
197
197
|
requirements:
|
198
|
-
- -
|
198
|
+
- - '>='
|
199
199
|
- !ruby/object:Gem::Version
|
200
200
|
version: '0'
|
201
201
|
type: :runtime
|
202
202
|
prerelease: false
|
203
203
|
version_requirements: !ruby/object:Gem::Requirement
|
204
204
|
requirements:
|
205
|
-
- -
|
205
|
+
- - '>='
|
206
206
|
- !ruby/object:Gem::Version
|
207
207
|
version: '0'
|
208
208
|
- !ruby/object:Gem::Dependency
|
209
209
|
name: bluff
|
210
210
|
requirement: !ruby/object:Gem::Requirement
|
211
211
|
requirements:
|
212
|
-
- -
|
212
|
+
- - '>='
|
213
213
|
- !ruby/object:Gem::Version
|
214
214
|
version: '0'
|
215
215
|
type: :runtime
|
216
216
|
prerelease: false
|
217
217
|
version_requirements: !ruby/object:Gem::Requirement
|
218
218
|
requirements:
|
219
|
-
- -
|
219
|
+
- - '>='
|
220
220
|
- !ruby/object:Gem::Version
|
221
221
|
version: '0'
|
222
222
|
- !ruby/object:Gem::Dependency
|
223
223
|
name: multi_json
|
224
224
|
requirement: !ruby/object:Gem::Requirement
|
225
225
|
requirements:
|
226
|
-
- -
|
226
|
+
- - '>='
|
227
227
|
- !ruby/object:Gem::Version
|
228
228
|
version: '0'
|
229
229
|
type: :runtime
|
230
230
|
prerelease: false
|
231
231
|
version_requirements: !ruby/object:Gem::Requirement
|
232
232
|
requirements:
|
233
|
-
- -
|
233
|
+
- - '>='
|
234
234
|
- !ruby/object:Gem::Version
|
235
235
|
version: '0'
|
236
236
|
description: Code metrics from Flog, Flay, Saikuro, Churn, Reek, Roodi, Code Statistics,
|
@@ -279,6 +279,7 @@ files:
|
|
279
279
|
- checksum/metric_fu-4.3.1.gem.sha512
|
280
280
|
- checksum/metric_fu-4.4.0.gem.sha512
|
281
281
|
- checksum/metric_fu-4.4.1.gem.sha512
|
282
|
+
- checksum/metric_fu-4.4.2.gem.sha512
|
282
283
|
- config/roodi_config.yml
|
283
284
|
- gem_tasks/build.rake
|
284
285
|
- gemfiles/Gemfile.travis
|
@@ -488,17 +489,17 @@ require_paths:
|
|
488
489
|
- lib
|
489
490
|
required_ruby_version: !ruby/object:Gem::Requirement
|
490
491
|
requirements:
|
491
|
-
- -
|
492
|
+
- - '>='
|
492
493
|
- !ruby/object:Gem::Version
|
493
494
|
version: 1.9.0
|
494
495
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
495
496
|
requirements:
|
496
|
-
- -
|
497
|
+
- - '>='
|
497
498
|
- !ruby/object:Gem::Version
|
498
499
|
version: 1.3.6
|
499
500
|
requirements: []
|
500
501
|
rubyforge_project: metric_fu
|
501
|
-
rubygems_version: 2.0.
|
502
|
+
rubygems_version: 2.0.3
|
502
503
|
signing_key:
|
503
504
|
specification_version: 4
|
504
505
|
summary: A fistful of code metrics, with awesome templates and graphs
|