metric_fu 4.11.2 → 4.11.3
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.simplecov +35 -3
- data/.travis.yml +6 -3
- data/Gemfile +0 -1
- data/HISTORY.md +6 -1
- data/Rakefile +1 -15
- data/checksum/metric_fu-4.11.2.gem.sha512 +1 -0
- data/gem_tasks/build.rake +1 -0
- data/gem_tasks/yard.rake +24 -0
- data/lib/metric_fu/metrics/reek/generator.rb +3 -3
- data/lib/metric_fu/version.rb +1 -1
- data/metric_fu.gemspec +2 -1
- data/spec/capture_warnings.rb +26 -22
- data/spec/metric_fu/configuration_spec.rb +20 -20
- data/spec/metric_fu/metrics/cane/configuration_spec.rb +8 -8
- data/spec/metric_fu/metrics/reek/generator_spec.rb +1 -1
- data/spec/metric_fu/metrics/saikuro/configuration_spec.rb +12 -12
- data/spec/metric_fu/templates/configuration_spec.rb +12 -12
- data/spec/quality_spec.rb +23 -13
- data/spec/spec_helper.rb +1 -14
- data/spec/support/usage_test.rb +1 -1
- metadata +22 -6
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86d7cdbfdb266e8b71ce314e9df37175d082cb9c
|
4
|
+
data.tar.gz: 4bf5f06e2f788fb99e0020708e1461bd70e74f46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01a4610aafa426d5aa0b4ecbab018d03ec861c39ec69fa10d2af4ce2b7ac4d9cc3dd5f3ae9a67d4fbd6ac21f5188cb73cfb7135c74be2fed6f9b368d2c8beb14
|
7
|
+
data.tar.gz: 3cb4ce3bfe160270989eb7f4aa6dc21d6a4b3161cdb2f2748fdef9bb96a02303ac3aa941868c54d2a65b4845538a5b83100719d78b0d19052185e5d9336ff6aa
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/.simplecov
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# https://github.com/colszowka/simplecov#using-simplecov-for-centralized-config
|
2
2
|
# see https://github.com/colszowka/simplecov/blob/master/lib/simplecov/defaults.rb
|
3
|
+
# vim: set ft=ruby
|
4
|
+
@minimum_coverage = ENV.fetch("COVERAGE_MINIMUM") { 87.8 }.to_f.round(2)
|
3
5
|
if SimpleCov.respond_to?(:profiles)
|
4
6
|
SimpleCov.profiles
|
5
7
|
else
|
@@ -31,12 +33,42 @@ end.define 'metric_fu' do
|
|
31
33
|
|
32
34
|
# Exclude these paths from analysis
|
33
35
|
add_filter 'bundle'
|
36
|
+
add_filter 'vendor/bundle'
|
34
37
|
add_filter 'bin'
|
35
38
|
add_filter 'lib/metric_fu/tasks'
|
39
|
+
|
40
|
+
# https://github.com/colszowka/simplecov/blob/v0.9.1/lib/simplecov/defaults.rb#L60
|
41
|
+
# minimum_coverage @minimum_coverage
|
36
42
|
end
|
37
|
-
|
38
|
-
|
39
|
-
|
43
|
+
|
44
|
+
## RUN SIMPLECOV
|
45
|
+
if defined?(@running_tests)
|
46
|
+
@running_tests = false
|
47
|
+
else
|
48
|
+
@running_tests = caller.any? {|line| line =~ /exe\/rspec/ }
|
49
|
+
end
|
50
|
+
if ENV["COVERAGE"] =~ /\Atrue\z/i
|
51
|
+
puts "[COVERAGE] Running with SimpleCov HTML Formatter"
|
52
|
+
formatters = [SimpleCov::Formatter::HTMLFormatter]
|
53
|
+
begin
|
54
|
+
puts '[COVERAGE] Running with SimpleCov HTML Formatter'
|
55
|
+
require 'metric_fu/metrics/rcov/simplecov_formatter'
|
56
|
+
formatters << SimpleCov::Formatter::MetricFu
|
57
|
+
puts '[COVERAGE] Running with SimpleCov MetricFu Formatter'
|
58
|
+
rescue LoadError
|
59
|
+
puts '[COVERAGE] SimpleCov MetricFu formatter could not be loaded'
|
40
60
|
end
|
61
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[ *formatters ]
|
62
|
+
SimpleCov.start "metric_fu" if @running_tests
|
63
|
+
else
|
64
|
+
SimpleCov.formatters = []
|
65
|
+
end
|
66
|
+
SimpleCov.at_exit do
|
41
67
|
SimpleCov.result.format!
|
68
|
+
percent = Float(SimpleCov.result.covered_percent)
|
69
|
+
if percent < @minimum_coverage
|
70
|
+
abort "Spec coverage was not high enough: #{percent.round(2)} is < #{@minimum_coverage}%"
|
71
|
+
else
|
72
|
+
puts "Nice job! Spec coverage is still above #{@minimum_coverage}%"
|
73
|
+
end
|
42
74
|
end
|
data/.travis.yml
CHANGED
@@ -1,20 +1,23 @@
|
|
1
|
+
sudo: false
|
1
2
|
language: ruby
|
2
|
-
bundler_args: --path vendor/bundle
|
3
|
+
bundler_args: --path vendor/bundle --jobs=3 --retry=3
|
3
4
|
script: bundle exec rspec
|
4
5
|
cache: bundler
|
6
|
+
|
5
7
|
before_install:
|
6
8
|
- gem install bundler
|
7
9
|
- bundle config --local without local_development yard guard
|
8
10
|
rvm:
|
9
11
|
# 2.1, not 2.1.0 until fixed https://github.com/travis-ci/travis-ci/issues/2220
|
12
|
+
- 2.2
|
10
13
|
- 2.1
|
11
14
|
- 2.0.0
|
12
|
-
- 1.9.3
|
13
15
|
- 1.9.2
|
16
|
+
- 1.9.3
|
14
17
|
- jruby
|
15
18
|
- "rbx-2"
|
16
19
|
matrix:
|
17
20
|
allow_failures:
|
18
21
|
- rvm: rbx-2
|
19
|
-
- rvm: 2.
|
22
|
+
- rvm: 2.2
|
20
23
|
fast_finish: true
|
data/Gemfile
CHANGED
data/HISTORY.md
CHANGED
@@ -4,13 +4,18 @@ Each change should fall into categories that would affect whether the release is
|
|
4
4
|
|
5
5
|
As such, a _Feature_ would map to either major (breaking change) or minor. A _bug fix_ to a patch. And _misc_ is either minor or patch, the difference being kind of fuzzy for the purposes of history. Adding tests would be patch level.
|
6
6
|
|
7
|
-
### Master [changes](https://github.com/metricfu/metric_fu/compare/v4.11.
|
7
|
+
### Master [changes](https://github.com/metricfu/metric_fu/compare/v4.11.3...master)
|
8
8
|
|
9
9
|
* Breaking Changes
|
10
10
|
* Features
|
11
11
|
* Fixes
|
12
12
|
* Misc
|
13
13
|
|
14
|
+
### [4.11.3](https://github.com/metricfu/metric_fu/compare/v4.11.2...v4.11.3)
|
15
|
+
|
16
|
+
* Fixes
|
17
|
+
* Fix incorrectly passing --config option to reek. (Martin Gotink, #243, fixes #242)
|
18
|
+
|
14
19
|
### [4.11.2](https://github.com/metricfu/metric_fu/compare/v4.11.1...v4.11.2)
|
15
20
|
|
16
21
|
* Fixes
|
data/Rakefile
CHANGED
@@ -4,6 +4,7 @@ if using_git
|
|
4
4
|
require 'bundler/setup'
|
5
5
|
end
|
6
6
|
require 'rake'
|
7
|
+
require 'simplecov'
|
7
8
|
|
8
9
|
Dir['./gem_tasks/*.rake'].each do |task|
|
9
10
|
import(task)
|
@@ -23,19 +24,4 @@ end
|
|
23
24
|
|
24
25
|
require File.expand_path File.join(File.dirname(__FILE__),'lib/metric_fu')
|
25
26
|
|
26
|
-
# Borrowed from vcr
|
27
|
-
desc "Checks the spec coverage and fails if it is less than 100%"
|
28
|
-
task :check_code_coverage do
|
29
|
-
if RUBY_VERSION.to_f < 1.9 || RUBY_ENGINE != 'ruby'
|
30
|
-
puts "Cannot check code coverage--simplecov is not supported on this platform"
|
31
|
-
else
|
32
|
-
percent = Float(File.read("./coverage/coverage_percent.txt"))
|
33
|
-
if percent < 98.0
|
34
|
-
abort "Spec coverage was not high enough: #{percent.round(2)}%"
|
35
|
-
else
|
36
|
-
puts "Nice job! Spec coverage is still above 98%"
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
27
|
task :default => :spec
|
@@ -0,0 +1 @@
|
|
1
|
+
c31f9343f44972b7b614d97cf33d457ad11518b408fb5e8e009eff8ee3c88353bd1dab14ac143a313433b7920b96f89d34753a0cd910364a70396ead3dc39980
|
data/gem_tasks/build.rake
CHANGED
data/gem_tasks/yard.rake
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
begin
|
4
|
+
require "yard"
|
5
|
+
rescue LoadError
|
6
|
+
else
|
7
|
+
namespace :yard do
|
8
|
+
YARD::Rake::YardocTask.new(:doc) do |t|
|
9
|
+
t.stats_options = ["--list-undoc"]
|
10
|
+
end
|
11
|
+
|
12
|
+
desc "start a gem server"
|
13
|
+
task :server do
|
14
|
+
sh "bundle exec yard server --gems"
|
15
|
+
end
|
16
|
+
|
17
|
+
desc "use Graphviz to generate dot graph"
|
18
|
+
task :graph do
|
19
|
+
output_file = "doc/erd.dot"
|
20
|
+
sh "bundle exec yard graph --protected --full --dependencies > #{output_file}"
|
21
|
+
puts "open doc/erd.dot if you have graphviz installed"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -105,7 +105,7 @@ module MetricFu
|
|
105
105
|
[
|
106
106
|
disable_line_number_option,
|
107
107
|
turn_off_color,
|
108
|
-
config_option,
|
108
|
+
*config_option,
|
109
109
|
*files
|
110
110
|
].reject(&:empty?)
|
111
111
|
end
|
@@ -114,9 +114,9 @@ module MetricFu
|
|
114
114
|
def config_option
|
115
115
|
config_file_pattern = options[:config_file_pattern]
|
116
116
|
if config_file_pattern.to_s.empty?
|
117
|
-
''
|
117
|
+
['']
|
118
118
|
else
|
119
|
-
|
119
|
+
['--config', config_file_pattern]
|
120
120
|
end
|
121
121
|
end
|
122
122
|
|
data/lib/metric_fu/version.rb
CHANGED
data/metric_fu.gemspec
CHANGED
@@ -62,10 +62,11 @@ Gem::Specification.new do |s|
|
|
62
62
|
# open browser support
|
63
63
|
s.add_runtime_dependency 'launchy', '~> 2.0'
|
64
64
|
|
65
|
+
s.add_development_dependency 'rspec', '~> 3.1'
|
65
66
|
# temporary filesystem to act on
|
66
67
|
s.add_development_dependency 'test_construct'
|
67
68
|
# ensure we have a JSON parser
|
68
69
|
s.add_development_dependency 'json'
|
69
|
-
s.add_development_dependency 'simplecov'
|
70
|
+
s.add_development_dependency 'simplecov', '~> 0.9'
|
70
71
|
|
71
72
|
end
|
data/spec/capture_warnings.rb
CHANGED
@@ -1,15 +1,18 @@
|
|
1
1
|
# https://raw.githubusercontent.com/metric_fu/metric_fu/master/spec/capture_warnings.rb
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
|
8
|
-
|
9
|
-
|
2
|
+
require "rubygems" if RUBY_VERSION =~ /^1\.8/
|
3
|
+
require "bundler/setup"
|
4
|
+
require "rspec/core"
|
5
|
+
require "rspec/expectations"
|
6
|
+
require "tempfile"
|
7
|
+
require "fileutils"
|
8
|
+
|
9
|
+
stderr_file = Tempfile.new("app.stderr")
|
10
|
+
app_dir = File.expand_path("../..", __FILE__)
|
11
|
+
output_dir = File.join(app_dir, "tmp")
|
12
|
+
FileUtils.mkdir_p(output_dir)
|
13
|
+
bundle_dir = File.join(app_dir, "bundle")
|
10
14
|
|
11
15
|
RSpec.configure do |config|
|
12
|
-
|
13
16
|
config.before(:suite) do
|
14
17
|
$stderr.reopen(stderr_file.path)
|
15
18
|
$VERBOSE = true
|
@@ -22,27 +25,28 @@ RSpec.configure do |config|
|
|
22
25
|
|
23
26
|
$stderr.reopen(STDERR)
|
24
27
|
|
25
|
-
|
28
|
+
app_warnings, other_warnings = lines.partition do |line|
|
29
|
+
line.include?(app_dir) && !line.include?(bundle_dir)
|
30
|
+
end
|
26
31
|
|
27
|
-
if
|
28
|
-
puts
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
if app_warnings.any?
|
33
|
+
puts <<-WARNINGS
|
34
|
+
#{'-' * 30} app warnings: #{'-' * 30}
|
35
|
+
|
36
|
+
#{app_warnings.join("\n")}
|
37
|
+
|
38
|
+
#{'-' * 75}
|
39
|
+
WARNINGS
|
35
40
|
end
|
36
41
|
|
37
42
|
if other_warnings.any?
|
38
|
-
File.
|
43
|
+
File.write(File.join(output_dir, "warnings.txt"), other_warnings.join("\n") << "\n")
|
39
44
|
puts
|
40
|
-
puts "Non-
|
45
|
+
puts "Non-app warnings written to tmp/warnings.txt"
|
41
46
|
puts
|
42
47
|
end
|
43
48
|
|
44
49
|
# fail the build...
|
45
|
-
|
50
|
+
abort "Failing build due to app warnings: #{app_warnings.inspect}" if app_warnings.any?
|
46
51
|
end
|
47
|
-
|
48
52
|
end
|
@@ -1,32 +1,32 @@
|
|
1
1
|
require "spec_helper"
|
2
|
-
require
|
2
|
+
require "shared/configured"
|
3
3
|
|
4
4
|
describe MetricFu::Configuration do
|
5
5
|
|
6
|
-
it_behaves_like
|
6
|
+
it_behaves_like "configured" do
|
7
7
|
|
8
|
-
describe "#is_cruise_control_rb?
|
8
|
+
describe "#is_cruise_control_rb?" do
|
9
9
|
|
10
10
|
before(:each) { get_new_config }
|
11
11
|
describe "when the CC_BUILD_ARTIFACTS env var is not nil" do
|
12
12
|
|
13
13
|
before(:each) do
|
14
|
-
ENV[
|
14
|
+
ENV["CC_BUILD_ARTIFACTS"] = "is set"
|
15
15
|
end
|
16
16
|
|
17
|
-
it
|
17
|
+
it "should return true" do
|
18
18
|
expect(@config.is_cruise_control_rb?).to be_truthy
|
19
19
|
end
|
20
20
|
|
21
21
|
after(:each) do
|
22
|
-
ENV[
|
23
|
-
FileUtils.rm_rf(File.join(MetricFu.root_dir,
|
22
|
+
ENV["CC_BUILD_ARTIFACTS"] = nil
|
23
|
+
FileUtils.rm_rf(File.join(MetricFu.root_dir, "is set"))
|
24
24
|
end
|
25
25
|
|
26
26
|
end
|
27
27
|
|
28
28
|
describe "when the CC_BUILD_ARTIFACTS env var is nil" do
|
29
|
-
before(:each) { ENV[
|
29
|
+
before(:each) { ENV["CC_BUILD_ARTIFACTS"] = nil }
|
30
30
|
|
31
31
|
it "should return false" do
|
32
32
|
expect(@config.is_cruise_control_rb?).to be_falsey
|
@@ -39,47 +39,47 @@ it_behaves_like 'configured' do
|
|
39
39
|
describe "when there is a CC_BUILD_ARTIFACTS environment variable" do
|
40
40
|
|
41
41
|
before do
|
42
|
-
ENV[
|
42
|
+
ENV["CC_BUILD_ARTIFACTS"] = "foo"
|
43
43
|
@config = MetricFu.configuration
|
44
44
|
@config.reset
|
45
45
|
MetricFu.configure
|
46
46
|
end
|
47
47
|
it "should return the CC_BUILD_ARTIFACTS environment variable" do
|
48
|
-
compare_paths(base_directory, ENV[
|
48
|
+
compare_paths(base_directory, ENV["CC_BUILD_ARTIFACTS"])
|
49
49
|
end
|
50
50
|
after do
|
51
|
-
ENV[
|
52
|
-
FileUtils.rm_rf(File.join(MetricFu.root_dir,
|
51
|
+
ENV["CC_BUILD_ARTIFACTS"] = nil
|
52
|
+
FileUtils.rm_rf(File.join(MetricFu.root_dir, "foo"))
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
56
|
describe "when there is no CC_BUILD_ARTIFACTS environment variable" do
|
57
57
|
|
58
58
|
before(:each) do
|
59
|
-
ENV[
|
59
|
+
ENV["CC_BUILD_ARTIFACTS"] = nil
|
60
60
|
get_new_config
|
61
61
|
end
|
62
62
|
it "should return 'tmp/metric_fu'" do
|
63
63
|
expect(base_directory).to eq(MetricFu.artifact_dir)
|
64
64
|
end
|
65
65
|
|
66
|
-
it
|
67
|
-
|
68
|
-
app_root = File.join(File.dirname(__FILE__),
|
66
|
+
it "should set @metric_fu_root_directory to the base of the "\
|
67
|
+
"metric_fu application" do
|
68
|
+
app_root = File.join(File.dirname(__FILE__), "..", "..")
|
69
69
|
app_root_absolute_path = File.expand_path(app_root)
|
70
70
|
metric_fu_absolute_path = File.expand_path(metric_fu_root)
|
71
71
|
expect(metric_fu_absolute_path).to eq(app_root_absolute_path)
|
72
72
|
expect(MetricFu.root.to_s).to eq(app_root_absolute_path)
|
73
73
|
end
|
74
74
|
|
75
|
-
it
|
76
|
-
|
75
|
+
it "should set @scratch_directory to scratch relative "\
|
76
|
+
"to @base_directory" do
|
77
77
|
scratch_dir = MetricFu.scratch_dir
|
78
78
|
expect(scratch_directory).to eq(scratch_dir)
|
79
79
|
end
|
80
80
|
|
81
|
-
it
|
82
|
-
|
81
|
+
it "should set @output_directory to output relative "\
|
82
|
+
"to @base_directory" do
|
83
83
|
output_dir = MetricFu.output_dir
|
84
84
|
expect(output_directory).to eq(output_dir)
|
85
85
|
end
|
@@ -1,15 +1,15 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "spec_helper"
|
2
|
+
require "shared/configured"
|
3
3
|
|
4
|
-
describe MetricFu::Configuration,
|
5
|
-
it_behaves_like
|
4
|
+
describe MetricFu::Configuration, "for cane" do
|
5
|
+
it_behaves_like "configured" do
|
6
6
|
if MetricFu.configuration.mri?
|
7
|
-
it
|
8
|
-
%q(:dirs_to_cane => @code_dirs, :abc_max => 15, :line_length => 80, :no_doc =>
|
9
|
-
load_metric
|
7
|
+
it "should set @cane to " +
|
8
|
+
%q(:dirs_to_cane => @code_dirs, :abc_max => 15, :line_length => 80, :no_doc => "n", :no_readme => "y") do
|
9
|
+
load_metric "cane"
|
10
10
|
expect(MetricFu::Metric.get_metric(:cane).run_options).to eq(
|
11
11
|
{
|
12
|
-
:dirs_to_cane => directory(
|
12
|
+
:dirs_to_cane => directory("code_dirs"),
|
13
13
|
:filetypes => ["rb"],
|
14
14
|
:abc_max => 15,
|
15
15
|
:line_length => 80,
|
@@ -14,7 +14,7 @@ describe MetricFu::ReekGenerator do
|
|
14
14
|
it "includes config file pattern into reek parameters when specified" do
|
15
15
|
options.merge!({:config_file_pattern => 'lib/config/*.reek' })
|
16
16
|
expect(reek).to receive(:run!) do |args|
|
17
|
-
expect(args).to include('--config lib/config/*.reek')
|
17
|
+
expect(args).to include('--config', 'lib/config/*.reek')
|
18
18
|
end.and_return('')
|
19
19
|
reek.emit
|
20
20
|
end
|
@@ -1,20 +1,20 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "spec_helper"
|
2
|
+
require "shared/configured"
|
3
3
|
|
4
|
-
describe MetricFu::Configuration,
|
5
|
-
it_behaves_like
|
4
|
+
describe MetricFu::Configuration, "for saikuro" do
|
5
|
+
it_behaves_like "configured" do
|
6
6
|
|
7
|
-
it
|
7
|
+
it "should set @saikuro to { :output_directory => @scratch_directory + '/saikuro',
|
8
8
|
:input_directory => @code_dirs,
|
9
|
-
:cyclo =>
|
10
|
-
:filter_cyclo =>
|
11
|
-
:warn_cyclo =>
|
12
|
-
:error_cyclo =>
|
13
|
-
:formater =>
|
14
|
-
load_metric
|
9
|
+
:cyclo => '',
|
10
|
+
:filter_cyclo => '0',
|
11
|
+
:warn_cyclo => '5',
|
12
|
+
:error_cyclo => '7',
|
13
|
+
:formater => 'text' }" do
|
14
|
+
load_metric "saikuro"
|
15
15
|
expect(MetricFu::Metric.get_metric(:saikuro).run_options).to eq(
|
16
16
|
{ :output_directory => "#{scratch_directory}/saikuro",
|
17
|
-
:input_directory => [
|
17
|
+
:input_directory => ["lib"],
|
18
18
|
:cyclo => "",
|
19
19
|
:filter_cyclo => "0",
|
20
20
|
:warn_cyclo => "5",
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "spec_helper"
|
2
|
+
require "shared/configured"
|
3
3
|
|
4
|
-
describe MetricFu::Configuration,
|
5
|
-
it_behaves_like
|
4
|
+
describe MetricFu::Configuration, "for templates" do
|
5
|
+
it_behaves_like "configured" do
|
6
6
|
describe "when there is no CC_BUILD_ARTIFACTS environment variable" do
|
7
7
|
|
8
8
|
before(:each) do
|
9
|
-
ENV[
|
9
|
+
ENV["CC_BUILD_ARTIFACTS"] = nil
|
10
10
|
get_new_config
|
11
11
|
end
|
12
12
|
|
13
|
-
it
|
14
|
-
|
15
|
-
expected_template_dir = MetricFu.root.join(
|
13
|
+
it "should set @template_directory to the lib/templates relative "+
|
14
|
+
"to @metric_fu_root_directory" do
|
15
|
+
expected_template_dir = MetricFu.root.join("lib","templates").to_s
|
16
16
|
expect(template_directory).to eq(expected_template_dir)
|
17
17
|
end
|
18
18
|
|
@@ -28,7 +28,7 @@ describe MetricFu::Configuration, 'for templates' do
|
|
28
28
|
|
29
29
|
@config.templates_configuration do |config|
|
30
30
|
config.template_class = DummyTemplate
|
31
|
-
config.link_prefix =
|
31
|
+
config.link_prefix = "http:/"
|
32
32
|
config.syntax_highlighting = false
|
33
33
|
config.darwin_txmt_protocol_no_thanks = false
|
34
34
|
end
|
@@ -39,15 +39,15 @@ describe MetricFu::Configuration, 'for templates' do
|
|
39
39
|
end
|
40
40
|
|
41
41
|
it "should set given link_prefix" do
|
42
|
-
expect(MetricFu::Formatter::Templates.option(
|
42
|
+
expect(MetricFu::Formatter::Templates.option("link_prefix")).to eq("http:/")
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should set given darwin_txmt_protocol_no_thanks" do
|
46
|
-
expect(MetricFu::Formatter::Templates.option(
|
46
|
+
expect(MetricFu::Formatter::Templates.option("darwin_txmt_protocol_no_thanks")).to be_falsey
|
47
47
|
end
|
48
48
|
|
49
49
|
it "should set given syntax_highlighting" do
|
50
|
-
expect(MetricFu::Formatter::Templates.option(
|
50
|
+
expect(MetricFu::Formatter::Templates.option("syntax_highlighting")).to be_falsey
|
51
51
|
end
|
52
52
|
|
53
53
|
end
|
data/spec/quality_spec.rb
CHANGED
@@ -7,40 +7,51 @@ if defined?(Encoding) && Encoding.default_external != "UTF-8"
|
|
7
7
|
Encoding.default_external = "UTF-8"
|
8
8
|
end
|
9
9
|
|
10
|
-
describe "The library itself" do
|
11
|
-
|
10
|
+
RSpec.describe "The library itself" do
|
12
11
|
def check_for_spec_defs_with_single_quotes(filename)
|
13
12
|
failing_lines = []
|
14
13
|
|
15
|
-
File.readlines(filename).each_with_index do |line,number|
|
14
|
+
File.readlines(filename).each_with_index do |line, number|
|
15
|
+
line.encode!(Encoding::UTF_8, invalid: :replace, undef: :replace, replace: "<?>")
|
16
16
|
failing_lines << number + 1 if line =~ /^ *(describe|it|context) {1}'{1}/
|
17
17
|
end
|
18
18
|
|
19
19
|
unless failing_lines.empty?
|
20
|
+
# Prevent rubocop from looping infinitely
|
21
|
+
# rubocop:disable Style/StringLiterals
|
20
22
|
"#{filename} uses inconsistent single quotes on lines #{failing_lines.join(', ')}"
|
23
|
+
# rubocop:enable Style/StringLiterals
|
21
24
|
end
|
22
25
|
end
|
23
26
|
|
24
27
|
def check_for_tab_characters(filename)
|
25
28
|
failing_lines = []
|
26
|
-
File.readlines(filename).each_with_index do |line,number|
|
29
|
+
File.readlines(filename).each_with_index do |line, number|
|
30
|
+
line.encode!(Encoding::UTF_8, invalid: :replace, undef: :replace, replace: "<?>")
|
27
31
|
failing_lines << number + 1 if line =~ /\t/
|
28
32
|
end
|
29
33
|
|
30
34
|
unless failing_lines.empty?
|
35
|
+
# Prevent rubocop from looping infinitely
|
36
|
+
# rubocop:disable Style/StringLiterals
|
31
37
|
"#{filename} has tab characters on lines #{failing_lines.join(', ')}"
|
38
|
+
# rubocop:enable Style/StringLiterals
|
32
39
|
end
|
33
40
|
end
|
34
41
|
|
35
42
|
def check_for_extra_spaces(filename)
|
36
43
|
failing_lines = []
|
37
|
-
File.readlines(filename).each_with_index do |line,number|
|
44
|
+
File.readlines(filename).each_with_index do |line, number|
|
45
|
+
line.encode!(Encoding::UTF_8, invalid: :replace, undef: :replace, replace: "<?>")
|
38
46
|
next if line =~ /^\s+#.*\s+\n$/
|
39
47
|
failing_lines << number + 1 if line =~ /\s+\n$/
|
40
48
|
end
|
41
49
|
|
42
50
|
unless failing_lines.empty?
|
51
|
+
# Prevent rubocop from looping infinitely
|
52
|
+
# rubocop:disable Style/StringLiterals
|
43
53
|
"#{filename} has spaces on the EOL on lines #{failing_lines.join(', ')}"
|
54
|
+
# rubocop:enable Style/StringLiterals
|
44
55
|
end
|
45
56
|
end
|
46
57
|
|
@@ -49,17 +60,18 @@ describe "The library itself" do
|
|
49
60
|
actual.join("\n")
|
50
61
|
end
|
51
62
|
|
52
|
-
match
|
53
|
-
actual.empty?
|
54
|
-
end
|
63
|
+
match(&:empty?)
|
55
64
|
end
|
56
65
|
|
66
|
+
WHITESPACE_OK =
|
67
|
+
/\.gitmodules|\.marshal|fixtures|ssl_certs|vendor|LICENSE|etc|reports/
|
68
|
+
|
57
69
|
it "has no malformed whitespace" do
|
58
|
-
exempt = /\.gitmodules|\.marshal|fixtures|vendor|ssl_certs|LICENSE|etc/
|
59
70
|
error_messages = []
|
60
71
|
Dir.chdir(File.expand_path("../..", __FILE__)) do
|
61
72
|
`git ls-files -z`.split("\x0").each do |filename|
|
62
|
-
next if filename
|
73
|
+
next if !File.exist?(filename)
|
74
|
+
next if filename =~ WHITESPACE_OK
|
63
75
|
error_messages << check_for_tab_characters(filename)
|
64
76
|
error_messages << check_for_extra_spaces(filename)
|
65
77
|
end
|
@@ -79,8 +91,6 @@ describe "The library itself" do
|
|
79
91
|
error_messages.compact.each do |error_message|
|
80
92
|
warn error_message
|
81
93
|
end
|
82
|
-
|
83
|
-
# expect(error_messages.compact).to be_well_formed
|
94
|
+
expect(error_messages.compact).to be_well_formed
|
84
95
|
end
|
85
|
-
|
86
96
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,19 +1,6 @@
|
|
1
1
|
# add lib to the load path just like rubygems does
|
2
2
|
$:.unshift File.expand_path("../../lib", __FILE__)
|
3
|
-
|
4
|
-
require 'simplecov'
|
5
|
-
formatters = [SimpleCov::Formatter::HTMLFormatter]
|
6
|
-
SimpleCov.start 'metric_fu'
|
7
|
-
begin
|
8
|
-
puts '[COVERAGE] Running with SimpleCov HTML Formatter'
|
9
|
-
require 'metric_fu/metrics/rcov/simplecov_formatter'
|
10
|
-
formatters << SimpleCov::Formatter::MetricFu
|
11
|
-
puts '[COVERAGE] Running with SimpleCov MetricFu Formatter'
|
12
|
-
rescue LoadError
|
13
|
-
puts '[COVERAGE] SimpleCov MetricFu formatter could not be loaded'
|
14
|
-
end
|
15
|
-
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[ *formatters ]
|
16
|
-
end
|
3
|
+
require 'simplecov'
|
17
4
|
|
18
5
|
require 'date'
|
19
6
|
require 'test_construct'
|
data/spec/support/usage_test.rb
CHANGED
@@ -81,7 +81,7 @@ SnippetRunner = Struct.new(:code, :language) do
|
|
81
81
|
test_result.success = false
|
82
82
|
test_result
|
83
83
|
rescue SystemExit => system_exit
|
84
|
-
|
84
|
+
mf_debug "I am a system exit"
|
85
85
|
test_result.captured_output = exception_message(system_exit)
|
86
86
|
test_result.success = system_exit.success?
|
87
87
|
test_result
|
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.11.
|
4
|
+
version: 4.11.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jake Scruggs
|
@@ -42,7 +42,7 @@ cert_chain:
|
|
42
42
|
lEs7ndJ1/vd/Hy0zQ1tIRWyql+ITLhqMi161Pw5flsYpQvPlRLR5pGJ4eD0/JdKE
|
43
43
|
ZG9WSFH7QcGLY65mEYc=
|
44
44
|
-----END CERTIFICATE-----
|
45
|
-
date: 2015-01-
|
45
|
+
date: 2015-01-28 00:00:00.000000000 Z
|
46
46
|
dependencies:
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: flay
|
@@ -262,6 +262,20 @@ dependencies:
|
|
262
262
|
- - "~>"
|
263
263
|
- !ruby/object:Gem::Version
|
264
264
|
version: '2.0'
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: rspec
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - "~>"
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '3.1'
|
272
|
+
type: :development
|
273
|
+
prerelease: false
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - "~>"
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '3.1'
|
265
279
|
- !ruby/object:Gem::Dependency
|
266
280
|
name: test_construct
|
267
281
|
requirement: !ruby/object:Gem::Requirement
|
@@ -294,16 +308,16 @@ dependencies:
|
|
294
308
|
name: simplecov
|
295
309
|
requirement: !ruby/object:Gem::Requirement
|
296
310
|
requirements:
|
297
|
-
- - "
|
311
|
+
- - "~>"
|
298
312
|
- !ruby/object:Gem::Version
|
299
|
-
version: '0'
|
313
|
+
version: '0.9'
|
300
314
|
type: :development
|
301
315
|
prerelease: false
|
302
316
|
version_requirements: !ruby/object:Gem::Requirement
|
303
317
|
requirements:
|
304
|
-
- - "
|
318
|
+
- - "~>"
|
305
319
|
- !ruby/object:Gem::Version
|
306
|
-
version: '0'
|
320
|
+
version: '0.9'
|
307
321
|
description: Code metrics from Flog, Flay, Saikuro, Churn, Reek, Roodi, Code Statistics,
|
308
322
|
and Rails Best Practices. (and optionally RCov)
|
309
323
|
email: github@benjaminfleischer.com
|
@@ -351,6 +365,7 @@ files:
|
|
351
365
|
- checksum/metric_fu-4.10.0.gem.sha512
|
352
366
|
- checksum/metric_fu-4.11.0.gem.sha512
|
353
367
|
- checksum/metric_fu-4.11.1.gem.sha512
|
368
|
+
- checksum/metric_fu-4.11.2.gem.sha512
|
354
369
|
- checksum/metric_fu-4.2.0.gem.sha512
|
355
370
|
- checksum/metric_fu-4.2.1.gem.sha512
|
356
371
|
- checksum/metric_fu-4.3.0.gem.sha512
|
@@ -374,6 +389,7 @@ files:
|
|
374
389
|
- config/roodi_config.yml
|
375
390
|
- gem_tasks/build.rake
|
376
391
|
- gem_tasks/usage_test.rake
|
392
|
+
- gem_tasks/yard.rake
|
377
393
|
- lib/metric_fu.rb
|
378
394
|
- lib/metric_fu/calculate.rb
|
379
395
|
- lib/metric_fu/cli/client.rb
|
metadata.gz.sig
CHANGED
Binary file
|